QNSP

Build Pattern · CLI

Bring Your Own HSM Into QNSP

Plug a customer-controlled Thales / Entrust / Utimaco / AWS CloudHSM into QNSP KMS as the root of trust.

Use a customer-managed HSM (Thales Luna, Entrust nShield, Utimaco u.trust, AWS CloudHSM, Azure Dedicated HSM, Google Cloud HSM, IBM Cloud HSM, or Marvell LiquidSecurity) as the root of trust for QNSP KMS. Sign/wrap operations stay inside the customer HSM boundary; QNSP never holds the root.

60 minTime to first PQC
CLIPrimary SDK
3Services used

QNSP services used

Stack

Code

Real code, real SDK calls

Snippets reference the published @cuilabs/qnsp SDK surface (TypeScript, Python, Go, Rust mirror byte-for-byte).

Register a Thales Luna PCIe HSM as the root of trustbash
# 1. Install the QNSP CLI
brew install cuilabs/tap/qnsp

# 2. Authenticate
qnsp auth login

# 3. Register the HSM (PKCS#11 module + slot)
qnsp hsm register \
  --vendor thales-luna \
  --pkcs11-module /usr/safenet/lunaclient/lib/libCryptoki2_64.so \
  --slot 0 \
  --label "prod-root-of-trust"

# 4. Generate an ML-DSA-87 root key inside the HSM (never exits)
qnsp hsm key-gen \
  --hsm prod-root-of-trust \
  --algorithm ml-dsa-87 \
  --label "qnsp-root-key-v1"

# 5. Tie the QNSP tenant root to that HSM key
qnsp tenant set-root-key --hsm-key qnsp-root-key-v1

Ship it

Get an API key and start building