Skip to main content
This guide installs the FXCL C++ and Java APIs and establishes an authenticated TLS connection to CryptoHub.

What you’ll build

You will configure an application host with:
  • The FXCL native library and C++ headers
  • The FXCL Java archive and JNI path
  • Strict TLS trust for the CryptoHub production endpoint
  • A Client Application API-key login for key and profile operations

Before you begin

You need:
  • CryptoHub 7.2.0.x with port 2001 reachable. FXCL uses the Native Host API, not the CryptoHub v2 REST transport.
  • The CryptoHub production CA and expected TLS server name. The client must verify CryptoHub before it sends credentials or application data.
  • A Client Application identity assigned to a non-management partition. Enable the Excrypt port and grant only the key-store, crypto, and token-profile operations the application uses.
  • The FXCL package for the host architecture and OpenSSL family. The native package is ABI-specific. Do not install an OpenSSL 1.1 package on an OpenSSL 3 host.
For the workflows in this guide, enable these Host API commands as applicable:
RKLO authenticates the application. The RK* commands manage and use key stores. TKG* manages tokenization profiles. TOKA and TOKG perform remote tokenization and detokenization.

Install the Linux packages

1

Select the OpenSSL 3 packages

Obtain the FXCL 1.9.5 AMD64 OpenSSL 3 packages from the Futurex software distribution channel:
The development package installs libfxcl.so, the C++ headers, and C++ examples. The Java package installs fxcl-java.jar.
2

Install the packages

You should see both packages finish with Setting up and no dependency error.
3

Confirm the installed files

Each command must exit with status 0.

Configure TLS in C++

Load the production CA, set the expected server name, and connect to port 2001:
setAnonymous(true) means the TLS connection does not send a client certificate. It does not disable server verification when a trusted CA and server name are configured.

Authenticate in C++

Keep the API key outside source code and command arguments. Load it from a protected environment or secret provider:
The second argument identifies the token as a Client Application API key rather than a JWT.

Configure and authenticate Java

The Java binding uses KeyServer, Config, and Credential. Connect with the DNS name in the CryptoHub production certificate:
Some partitions require a separate LN1 request after API-key authentication. Do not replace or rotate a valid API key only because the first response reports LN=0.

Verify it works

Compile and run a connection check before you create keys:
A successful check must establish TLS, return AN=Y from RKLO, and complete any required LN1 finalization with LN=1.

Troubleshooting

Version and scope

These steps were validated with FXCL 1.9.5, CryptoHub 7.2.0.7, Ubuntu 22.04, GCC 11, OpenSSL 3, and OpenJDK 17.