> ## 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)

> Step-by-step installation of FXPKCS11 on the application host for HSM integration.

<Note>
  Install FXPKCS11 on the same computer as the application that integrates with the HSM.
</Note>

Perform the following steps to install Futurex PKCS #11:

<Steps>
  <Step>
    For a Linux Environment, download the tarball of the PKCS #11 binaries from the Futurex Portal.
  </Step>

  <Step>
    Extract the `.tar` file locally where you want to install the application on your file system.

    <Note>
      For the Futurex PKCS #11 module to be accessible system-wide, an administrative user must place it to `/usr/local/lib`. If only the current user needs to use the module, then installing it to `$HOME/lib`is appropriate.
    </Note>
  </Step>

  <Step>
    The extracted content of the `.tar` file is a single `fxpkcs11` directory. This directory contains the following files and directories (only the files and folders relevant to the installation process are included in this list):

    <table>
      <thead>
        <tr>
          <th><em><strong>File name or directory</strong></em></th>
          <th><em>Description</em></th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td><code>fxpkcs11.cfg</code></td>
          <td>PKCS #11 configuration file to use for HSM integrations.</td>
        </tr>

        <tr>
          <td><code>fxpkcs11-kms.cfg</code></td>
          <td>(You might not use this file.) PKCS #11 configuration file to use for KMES Series 3 integrations.</td>
        </tr>

        <tr>
          <td><code>x86/</code></td>
          <td>This folder contains the module files for the 32-bit architecture.</td>
        </tr>

        <tr>
          <td><code>x64/</code></td>
          <td>This folder contains the module files for the 64-bit architecture.</td>
        </tr>
      </tbody>
    </table>
  </Step>

  <Step>
    The `x86` and `x64` directories contain multiple directories named for the specific OpenSSL versions. These OpenSSL directories contain the PKCS #11 module files built with the respective OpenSSL versions.

    <Note>
      As of July 2025, Futurex doesn't support OpenSSL 3.x on x84 (32-bit) systems.
    </Note>

    <table>
      <thead>
        <tr>
          <th><em><strong>File name</strong></em></th>
          <th><em><strong>Description</strong></em></th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td><code>configTest</code></td>
          <td>Program to test the configuration and connection to the HSM.</td>
        </tr>

        <tr>
          <td><code>libfxpkcs11.so</code></td>
          <td>PKCS #11 Library file.</td>
        </tr>

        <tr>
          <td><code>PKCS11Manager</code></td>
          <td>Program to test the connection and manage the HSM through the PKCS #11 library.</td>
        </tr>
      </tbody>
    </table>
  </Step>

  <Step>
    The **configTest** and **PKCS11Manager** programs look for the PKCS #11 configuration file in the `/etc` directory. You must either move the file from the `/usr/local/lib/fxpkcs11` directory to the `/etc` directory or set the **FXPKCS11\_CFG** environment variable to point to it.
  </Step>
</Steps>

## Java and OpenSSL

If Java and OpenSSL are planned on being installed on the same sytem, please reference [**Using OpenSSL and Java**](../Appendices/Using_OpenSSL_and_Java)
