Craton HSM

Compatibility Matrix

Compatibility Matrix

This page is the authoritative reference for which combinations of Craton HSM Core, Craton HSM Enterprise, crypto backends, PKCS#11 vendor libraries, and hardware SDKs are supported. It complements tested-platforms, which covers OS and toolchain coverage.

Versions on this page track craton-hsm-core 0.9.1 and craton-hsm-enterprise 0.1.1. The matrix applies to the latest 0.1.x Enterprise release only; see the Enterprise support policy for the full statement.

Status labels (Tested, Supported, Best-effort, Unsupported) are defined in tested-platforms.

Core and Enterprise Version Pairing

Enterprise crates are built against a pinned Core version and do not support mixing across minor releases.

CoreEnterpriseStatusNotes
0.9.10.1.1TestedCurrent supported pair.
0.9.00.1.0SupportedPrior pair; upgrade path documented in the Enterprise MIGRATION.md.
0.9.00.1.1Unsupported0.1.1 Cluster adds HMAC replay protection incompatible with 0.1.0 peers.
0.8.xany 0.1.xUnsupportedEnterprise requires the 0.9.x CryptoBackend trait surface.
any 0.9.xCore alone (no Enterprise)TestedCore is fully standalone; the Enterprise crates are additive.

Mixing 0.1.0 and 0.1.1 nodes in the same craton-hsm-cluster is unsupported because the HMAC replay-protection addition in 0.1.1 changed the wire format.

Crypto Backends

Craton HSM exposes a CryptoBackend trait with three in-tree implementations. Each is tied to a specific use case and a specific minimum platform surface.

BackendCrateLibraryPinned versionPrimary useStatus
RustCryptocraton-hsm-core (default)pure RustworkspaceDefault, no system depsTested
aws-lc-rscraton-hsm-awslcaws-lc-rs=1.16.2FIPS mode, CMVP trackTested
OpenSSLcraton-hsm-opensslsystem OpenSSL 3.0.x / 3.2.xruntime-linkedOps integration with existing OpenSSL deploymentsTested on Ubuntu 22.04 / 24.04
OpenSSLcraton-hsm-opensslOpenSSL 1.1.1runtime-linkedLegacy onlyBest-effort (upstream EOL)
Windows CNGcraton-hsm-cngWindows BCryptOS-providedWindows-native deploymentsTested on Windows Server 2022

See the FAQ entry on OpenSSL 1.1 before wiring the OpenSSL backend to a 1.1.1 system library.

Backend × Operating System

BackendLinux (glibc)Linux (musl)WindowsmacOS
RustCrypto (default)TestedSupportedTestedDev only
aws-lc-rsTestedBest-effort (needs cmake, gcc)Supported (needs LLVM)Dev only
OpenSSL 3.xTestedBest-effortBest-effortUnsupported
Windows CNGUnsupportedUnsupportedTestedUnsupported

craton-hsm-nxp and craton-hsm-infineon build as software stubs on any platform supported by the rest of the workspace when the hw feature is off. With hw enabled they are Linux-only and require vendor SDKs (see below).

FIPS Mode

FIPS mode is a property of the deployed backend, not a cross-cutting switch. The certified build artefacts and approved-algorithm enforcement live in craton-hsm-certified.

BackendFIPS 140-3 Level 1 scopeStatus
aws-lc-rs (fips feature)Validated crypto primitives + Craton FSM, POST, zeroization, integrity checkDesign-complete; module not yet submitted to a CMVP lab. See ../fips/overview.
Windows CNG (new_fips ctor)Delegates to BCrypt FIPS provider; requires Windows FIPS mode enabled via Group PolicyDesign-complete; OS-gated
RustCryptoNot in scopeN/A — not a submission target
OpenSSL 3.xNot in scopeN/A — not a submission target

PKCS#11 Vendor Libraries (craton-hsm-pkcs11)

The passthrough crate has no version gate of its own; compatibility is against the vendor library's conformance to PKCS#11 v2.40 or v3.0.

Vendor / LibraryVersionStatusNotes
SoftHSM2.6.0+TestedDefault PKCS#11 fixture in CI
SoftHSM2.5.xBest-effort
YubiHSM2 SDK2023.08+SupportedRequires yubihsm-connector running
Thales Luna Client10.xSupportedHSM firmware 7.x series; mTLS to appliance
Utimaco CryptoServerSe-Series (CP5)SupportedCryptoServer SDK 4.40+
nCipher nShieldSecurity World 13.xBest-effortRequires hardserver
AWS CloudHSMClient 5.xBest-effort

Only SoftHSM is exercised by CI. Other vendor libraries are validated pre-release against the listed versions; regression risk between our releases is low but not zero.

Hardware Vendor SDKs

The craton-hsm-nxp and craton-hsm-infineon crates ship as software stubs by default. The hw feature enables the hardware path and brings in the vendor SDK dependency.

CrateVendorHardwareSDK / FirmwareStatus
craton-hsm-nxpNXPS32G2 (S32G274A, GoldBox)HSE firmware 1.xSupported with hw
craton-hsm-nxpNXPS32G3 (S32G399A)HSE firmware 1.xSupported with hw
craton-hsm-nxpNXPS32K3 (S32K344, S32K358)HSE firmware 1.xSupported with hw
craton-hsm-nxpNXPS32G1, legacy S32KUnsupported
craton-hsm-infineonInfineonSLB 9670 (discrete TPM 2.0)tpm2-tss 4.0+Supported with hw
craton-hsm-infineonInfineonSLB 9672 (firmware TPM 2.0)tpm2-tss 4.0+Supported with hw
craton-hsm-infineonInfineonOPTIGA Trust Mvendor SDKSupported with hw
craton-hsm-infineonInfineonSLB 9665 (TPM 1.2)Unsupported (TPM 1.2 out of scope)

With hw enabled, these crates are Linux-only. On Windows/macOS with hw they will fail to build.

KMIP Protocol (craton-hsm-kmip)

SpecVersionStatus
OASIS KMIP2.1Tested; default protocol version in responses
OASIS KMIP1.4Best-effort (subset of operations)
OASIS KMIP3.0Unsupported in 0.1.x

Implemented operations: Create, Register, Get, GetAttributes, Activate, Revoke, Destroy, Locate, Query. Split keys, PGP, and certificate-chain profiles are on the Enterprise roadmap for KMIP 2.1 — see ../project/roadmap.

Authentication Providers (craton-hsm-auth)

ProviderRequirementStatus
LDAP / LDAPSLDAPv3, TLS 1.2+Supported (ldap-auth feature)
OIDCOIDC Core 1.0; RS256/384/512, ES256/384Supported (oidc-auth feature)
X.509 certificatePKCS#7 / PEM / DER, static CRLSupported (cert-auth feature)
TOTP (MFA)RFC 6238; SHA-1 and SHA-256Supported
Local PIN storeDev/test only; not supported in production

OCSP and HTTP CRL-distribution-point fetching are not implemented in 0.1.x. Operators must refresh CRLs out-of-band. See the Enterprise SECURITY.md and faq.

Cluster (craton-hsm-cluster)

ComponentRequirement
Raft peersMinimum 3 for fault tolerance; odd counts recommended
Message integrityHMAC-SHA256 (mandatory unless allow_insecure: true)
Wire encryptionOut of scope; deploy on isolated network or tunnel via mTLS
Clock skew tolerance±30 s default (configurable via max_message_age_ms)

Cluster cluster_secret is required in all release builds. The insecure-no-cluster-secret feature exists for tests and demos only and will refuse to compile a release binary without it.

Cloud Integrations (craton-hsm-cloud)

IntegrationAPI versionStatus
Kubernetes CSICSI v1.8+Supported
AWS KMS shimAWS SDK for RustShim only; no production validation
Azure Key Vault shimAzure SDK for RustShim only; no production validation
HashiCorp Vault shimKV v2, TransitShim only; no production validation

Mock implementations are gated behind mock-insecure-do-not-ship and additionally require CRATON_HSM_ALLOW_MOCK=1 in the environment. They are not for production use.

Language and Runtime Clients

ClientVersionStatusNotes
Java SunPKCS11JDK 17, JDK 21TestedInterop script in tests/interop/java_sunpkcs11.sh
OpenSSL pkcs11 engine / provider1.1.1, 3.0+, 3.2+Tested (3.x)See faq
GnuTLS p11tool3.7+Supported
OpenSC pkcs11-tool0.21+Tested
ssh-agent via PKCS#11OpenSSH 8.x, 9.xSupportedDocumented in the installation guide

Container and Orchestrator Targets

PlatformVersionsStatus
Docker Engine24.x, 25.xSupported
Podman4.x, 5.xBest-effort
Kubernetes1.28 – 1.31Supported
Kubernetes≤ 1.27Unsupported (upstream EOL)
OpenShift4.14+Best-effort

What "Unsupported" Means

Issues filed against Unsupported configurations are closed with a pointer to this document. Commercial support contracts (support@craton.io) can, case-by-case, expand the supported set for a specific customer environment.