> ## Documentation Index
> Fetch the complete documentation index at: https://docs.futurex.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Install Futurex PKCS #11 (FXPKCS11)

> Install the Futurex PKCS #11 library on the ADSS Server host.

*Install the Futurex PKCS #11 shared library on the ADSS Server host.*

## Linux

<Steps>
  <Step title="Download the Futurex PKCS #11 package">
    Obtain the Futurex PKCS #11 package from FXTools for your platform architecture and OpenSSL version.
  </Step>

  <Step title="Extract the package">
    Extract the archive. It contains the following files:

    | File           | Description                     |
    | -------------- | ------------------------------- |
    | libfxpkcs11.so | Futurex PKCS #11 shared library |
    | fxpkcs11.cfg   | PKCS #11 configuration file     |
    | PKCS11Manager  | PKCS #11 management utility     |
    | configTest     | Configuration test utility      |
  </Step>

  <Step title="Copy the library to the installation directory">
    Copy the library files to the system-wide installation path:

    ```shell title="Shell" theme={null}
    sudo mkdir -p /usr/local/lib/fxpkcs11
    sudo cp libfxpkcs11.so /usr/local/lib/fxpkcs11/
    sudo cp PKCS11Manager configTest /usr/local/lib/fxpkcs11/
    ```
  </Step>

  <Step title="Place the configuration file">
    Copy the configuration file to `/etc`:

    ```shell title="Shell" theme={null}
    sudo cp fxpkcs11.cfg /etc/fxpkcs11.cfg
    ```

    <Warning>
      By default, the Futurex PKCS #11 library looks for the configuration file at `/etc/fxpkcs11.cfg`. To use a custom location, set the `FXPKCS11_CFG` environment variable to the full path of the configuration file.
    </Warning>
  </Step>

  <Step title="Verify the library is accessible">
    Confirm the library file is readable by the user running ADSS Server (typically `root`):

    ```shell title="Shell" theme={null}
    ls -la /usr/local/lib/fxpkcs11/libfxpkcs11.so
    ```

    <Check>
      The library file exists and has read permissions for the ADSS Server process user.
    </Check>

    <Note>
      The PKCS #11 library logs operations to `/tmp/fxpkcs11.log` by default. This log is useful for verifying HSM calls during testing.
    </Note>
  </Step>
</Steps>
