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

> Platform-specific installation steps for the FXPKCS11 library.

<Note>
  Install FXPKCS11 on the same computer as the application for the integration.
</Note>

Select your operating system and perform the following steps to install Futurex PKCS #11:

## Windows

Perform the following steps to install Futurex PKCS #11 in Windows:

<Steps>
  <Step>
    In a Windows environment, the easiest way to install the Futurex PKCS #11 module is to download **FXTools** from the Futurex portal and install it.
  </Step>

  <Step>
    After you download **FXTools**, run the installer as an administrator.
  </Step>

  <Step>
    By default, the system installs all tools. You can overwrite and choose not to install the following modules:

    <table>
      <thead>
        <tr>
          <th><em><strong>Module</strong></em></th>
          <th><em><strong>Description</strong></em></th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td><strong>Futurex Client Tools</strong></td>
          <td>Command Line Interface (CLI) and associated SDK for both Java and C.</td>
        </tr>

        <tr>
          <td><strong>Futurex CNG Module</strong></td>
          <td>The Microsoft Next Generation Cryptographic Library.</td>
        </tr>

        <tr>
          <td><strong>Futurex Cryptographic Service Provider (CSP)</strong></td>
          <td>The Legacy Microsoft Cryptographic Library.</td>
        </tr>

        <tr>
          <td><strong>Futurex EKM Module</strong></td>
          <td>The Microsoft Enterprise Key Management library.</td>
        </tr>

        <tr>
          <td><strong>Futurex PKCS #11 Module</strong></td>
          <td>The Futurex PKCS #11 library and associated tools.</td>
        </tr>

        <tr>
          <td><strong>Futurex Secure Access Client</strong></td>
          <td>The Client that connects a Futurex Excrypt Touch to a local laptop with a USB or to a remote Futurex device.</td>
        </tr>
      </tbody>
    </table>
  </Step>

  <Step>
    After starting the installation, the system installs all noted services. If you selected the Futurex Secure Access Client, the Excrypt Touch driver is also installed and might start minimized or in the background.

    <Check>
      The installation installs all services in the `C:\Program Files\Futurex` directory. The CNG Module, CSP Module, EKM Module, and PKCS #11 Module all require configuration files, located in their corresponding directory with a `.cfg` extension.
    </Check>
  </Step>
</Steps>

## Linux

Perform the following steps to install Futurex PKCS #11 in Linux:

<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 in `/usr/local/bin`. If only the current user needs to use the module, then installing into `$HOME/bin` 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><strong>Description</strong></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 need 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 32-bit architecture.</td>
        </tr>

        <tr>
          <td><code>x64/</code></td>
          <td>This folder contains the module files for 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.

    <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/bin/fxpkcs11` directory to the `/etc` directory or set the **FXPKCS11\_CFG** environment variable to point to it.
  </Step>
</Steps>
