Generating an attestation bundle

An attestation bundle can be generated for a key as follows.

$ nfkmattest bundle [OPTIONS] APPNAME IDENT

The set of certificates and relevant data fields is returned in a JSON-formatted file key_APPNAME_IDENT.att. An alternative output file path can be specified with the option --output PATH. If the HSM warrant is stored in a non-default directory, its path can be specified with the option --warrants DIR. If no HSM warrant is found, see Getting missing warrant.

When generating keys, the APPNAME is the section of the key file name as it appears in the opt/nfast/kmdata/local (Linux) or C:\ProgramData\nCipher\Key Management Data\local (Windows) filesystem, and the IDENT is the last section of the key file name as it appears on the local filesystem. If you generate a pkcs11, custom, or embed key, the IDENT is different to that of a plainname key generated with generatekey. Key file output examples include:

key_custom_0140c376b9dd2655ae75c99d940e3477408aef14 key_embed_5fe6c9e346b4dd2ea35e1de9049861fe97888b5c key_pkcs11_ua5fe6c9e346b4dd2ea35e1de9049861fe97888b5c

Bundle generation is supported for asymmetric (public/private) key pairs only. Symmetric keys are not supported for bundle generation.

Bundle details

The possible bundle fields are outlined below.

Field Presence Description

pubkeydata

Always

Public key material in nCore format (including any domain parameters)

kcmsg

Always

The key generation certificate body

kcsig

Always

The signature on the key generation certificate under KML

modstatemsg

Always

A module state certificate

modstatesig

Always

The signature on the module state certificate under KLF2.

warrant

Always

The D3S encoding of the generating HSM’s warrant.

root

Always

The name of the warranting root used in this certificate. This will always be KWARN-1 for nShield HSMs.

knsopub

Persistent keys

KNSO public key

hkre

Recoverable keys

Hash of KRE

hkra

Recoverable keys

Hash of KRA

hkfips

Persistent keys in FIPS worlds

Hash of KFIPS

hkmc

Persistent keys

Hash of KMC

hkm

Persistent keys

Hash of KM

CertKMaKMCbKNSO

Persistent keys in non-FIPS worlds

Signature on world binding cert

CertKMaKMCaKFIPSbKNSO

Persistent keys in FIPS worlds

Signature on world binding cert

CertKREaKRAbKNSO

Recoverable keys

Signature on world binding cert

ciphersuite

Persistent keys

Ciphersuite name for security world from the NFKM_CipherSuite enumeration (e.g. DLf3072s256mAEScSP800131Ar1)