Skip to main content
Before configuring a tunnel, confirm charon can reach the CryptoHub-resident private key through the Futurex module. This isolates the HSM integration from any later connection-configuration problem.

Install the certificates

Shell

Create a credential-only swanctl.conf

This configuration has no connections. It loads the token credential and nothing else.
Shell
Replace REPLACE_WITH_PKCS11_PIN with the PKCS #11 PIN you copied from the CRYPTO-OPR-PASS parameter in fxpkcs11.cfg.
This file now contains the PKCS #11 PIN in cleartext. Set the mode to 600 and owner to root:root as shown above, and exclude the file from configuration backups that are not themselves protected.
The fields map to the objects you created:
  • module = futurex — the module name registered in strongswan.conf.
  • handle = 02 — the object ID of the responder private key.
  • pin — the PKCS #11 PIN for the endpoint.

Load the credentials

Shell
The output includes load-token reply {success=yes id=...} along with load-cert reply {success=yes} for each certificate.
If the reply is success=no with loading private key from token failed, charon reached the module but could not use the key. See Troubleshooting.

Confirm with the charon log

Shell
The log shows the following sequence:
loaded RSA private key from token is the confirmation that charon can authenticate with a key that never leaves the CryptoHub.