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) |