NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
nvpkcs11_public_defs.h File Reference

Detailed Description

NVIDIA PKCS11 Public definitions header file.

This header file contains the NVIDIA definitions for crypto operation limitations with respect to hardware and software configuration

Definition in file nvpkcs11_public_defs.h.

Go to the source code of this file.

Data Structures

struct  ecParameters_t
 ecParameters_t Holds EC parameters. More...
 
struct  uncompressed32BytePoint_t
 uncompressed32BytePoint_t Holds an uncompressed value for point data. More...
 
struct  compressed32BytePoint_t
 compressed32BytePoint_t Holds a compressed value for point data. More...
 

Macros

#define NVPKCS11_AES_CBC_BLOCK_SIZE   16UL
 Block size required for AES Encryption, Input data for Encryption operations needs to be multiple of this value. More...
 
#define NVPKCS11_AES_CBC_IV_LEN   16UL
 Defines the length of the AES Initial Vector as well as the AES counter. More...
 
#define NVPKCS11_AES_CTR_COUNTER_SIZE   32U
 Defines the AES_CTR counter size in bits. More...
 
#define NVPKCS11_MAX_KEY_ID_SIZE   32U
 Maximum Key size for use in C_DeriveKey operations. More...
 
#define NVPKCS11_MAX_CKA_LABEL_SIZE   32U
 Maximum CKA Label size. More...
 
#define NVPKCS11_MAX_GDO_CKA_APPLICATION_SIZE   32U
 Maximum CKA_APPLICATION size for Data Objects. More...
 
#define NVPKCS11_MAX_GDO_CKA_OBJECT_ID_SIZE   64U
 Maximum CKA_OBJECT_ID size for Data Objects. More...
 
#define NVPKCS11_MAX_GDO_CKA_VALUE_SIZE   3616U
 Maximum CKA_VALUE size for Data Objects. More...
 
#define NVPKCS11_RANDOM_DATA_MAXLENGTH   1024U
 Maximum Random Number length supported for C_GenerateRandom Operation. More...
 
#define NVPKCS11_RANDOM_DATA_MINLENGTH   1U
 Minimum Random Number length supported for C_GenerateRandom Operation. More...
 
#define NVPKCS11_AES_CMAC_SIGNATURE_SIZE   16U
 Defines the maximum signature size parameter for AES_CMAC mechanism. More...
 
#define NVPKCS11_MAX_KEY_MODULUS   512U
 Maximum size of Modulus for Public Key Objects. More...
 
#define NVPKCS11_MIN_KEY_MODULUS   384U
 Minimum size of Modulus for Public Key Objects. More...
 
#define NVPKCS11_RSA_2K_KEY_MODULUS   256U
 Modulus size for RSA 2K Public Key Objects. More...
 
#define NVPKCS11_MAX_KEY_EXPONENT   4U
 Maximum size of Exponent for Public Key Objects. More...
 
#define NVPKCS11_MIN_KEY_EXPONENT   4U
 Minimum size of Exponent for Public Key Objects. More...
 
#define NVPKCS11_SHA256_DIGEST_SIZE   32U
 SHA256 Digest Size. More...
 
#define NVPKCS11_SHA384_DIGEST_SIZE   48U
 SHA384 Digest Size. More...
 
#define NVPKCS11_SHA512_DIGEST_SIZE   64U
 SHA512 Digest Size. More...
 
#define NVPKCS11_MAX_SHA_DIGEST_SIZE   NVPKCS11_SHA512_DIGEST_SIZE
 Max allowed SHA digest size. More...
 
#define NVPKCS11_ECDSA_SECP256R1_STRING   "secp256r1"
 ECDSA curve type identifier. More...
 
#define NVPKCS11_EDDSA_ED25519_STRING   "edwards25519"
 EDDSA curve type identifier. More...
 
#define NVPKCS11_EC_MONTGOMERY_25519_STRING   "curve25519"
 EC MONTGOMERY curve type identifier. More...
 
#define NVPKCS11_ECDSA_X962_UNCOMP_ID   0x04U
 X9.62 Uncompressed point identifier. More...
 
#define NVPKCS11_DER_PRINTABLE_IDENTIFIER   0x13U
 ASN1 Identifier for PrintableString. More...
 
#define NVPKCS11_DER_OCTET_IDENTIFIER   0x04U
 ASN1 DER Identifier for uncompressed OCTET STRING. More...
 
#define NVPKCS11_DER_MAX_SIZE   127U
 Maximum allowed size of ASN.1 DER format strings. More...
 
#define NVPKCS11_MAX_EC_STRING_SIZE   NVPKCS11_DER_MAX_SIZE
 Max allowed length for EC Params string. More...
 
#define NVPKCS11_EC_256_POINT_SIZE   32U
 Size for EC point values. More...
 
#define NVPKCS11_ECC_PRIVATE_KEY_SIZE   32U
 Max allowed Key size for ECC private key type. More...
 
#define NVPKCS11_EDDSA_SIGNATURE_SIZE   64U
 EDDSA signature size. More...
 
#define NVPKCS11_MAX_ECDSA_SECP256R1_SIGNATURE_SIZE   72U
 Max ECDSA signature size with curve SECP256R1. More...
 
#define NVPKCS11_SECRET_KEY_LENGTH_IN_BYTES   16U
 Secret key size. More...
 
#define NVPKCS11_LONG_SECRET_KEY_LENGTH_IN_BYTES   32U
 Double length secret key size. More...
 
#define NVPKCS11_TLS_MASTER_SECRET_KEY_LENGTH_IN_BYTES   48U
 TLS Master secret key size. More...
 
#define NVPKCS11_TLS_HANDSHAKE_RANDOM_LENGTH_IN_BYTES   32U
 Length of client and server random values for TLS handshake. More...
 
#define NVPKCS11_TLS12_MASTER_KEY_DERIVE_LABEL_LENGTH_IN_BYTES   13U
 Length of label used to derive the TLS master key. More...
 
#define NVPKCS11_TLS12_KEY_AND_MAC_DERIVE_LABEL_LENGTH_IN_BYTES   13U
 Length of label used to derive the TLS session keys. More...
 
#define NVPKCS11_AES_CBC_KEY_DATA_WRAP_MAX_DATA_LENGTH_IN_BYTES   32U
 Maximum length of the data field for CKM_NVIDIA_AES_CBC_KEY_DATA_WRAP. More...
 
#define NVPKCS11_SP800_56A_ONE_STEP_KDF_MAX_INFO_LENGTH_IN_BYTES   96U
 Maximum length of the pInfo field for CKM_NVIDIA_SP800_56A_ONE_STEP_KDF. More...
 
#define NVPKCS11_AES_KEY_WRAP_IV_LENGTH   8U
 The length of the AES KEY WRAP Initial Vector. More...
 
#define NVPKCS11_MAX_PSC_CMAC_DATA_LEN   1500U
 Max data length for CKM_NVIDIA_PSC_AES_CMAC. More...
 
#define NVPKCS11_NVIDIA_OX5B_SHA256_UID_LENGTH   6U
 The length of the UID for CKM_NVIDIA_OX5B_SHA256_KEY_DERIVATION. More...
 
#define NVPKCS11_NVIDIA_OX5B_SHA256_NONCE_LENGTH   16U
 The length of the Nonce for CKM_NVIDIA_OX5B_SHA256_KEY_DERIVATION. More...
 
#define NVPKCS11_MAX_ENTRIES_PER_CMAC_SIGN_VERIFY_BATCH   32U
 Max allowed entries per CMAC sign or verify batch. More...
 
#define NVPKCS11_GETINFO_CRYPTOKIVERSION_MAJOR   0x03U
 GetInfo major PKCS11 API version. More...
 
#define NVPKCS11_GETINFO_CRYPTOKIVERSION_MINOR   0x00U
 GetInfo minor PKCS11 API version. More...
 
#define NVPKCS11_GETINFO_MANF_ID   "NVIDIA"
 GetInfo manufacturer name. More...
 
#define NVPKCS11_GETINFO_FLAGS   0x00U
 GetInfo flags value. More...
 
#define NVPKCS11_GETINFO_LIBRARY_DESC   "HPSE_Library"
 GetInfo library description. More...
 
#define NVPKCS11_GETINFO_LIBRARYVERSION_MAJOR   0x46U
 GetInfo major library implementation version. More...
 
#define NVPKCS11_GETINFO_LIBRARYVERSION_MINOR   0x02U
 GetInfo minor library implementation version. More...
 
#define NVPKCS11_FSI_DYNAMIC_1_MODEL_NAME   "FSI_DYN_1 "
 FSI token is for management purposes only, no safety token required. More...
 
#define NVPKCS11_CCPLEX_SAFETY_2_MODEL_NAME   "CCPLEX_SAFE_2 "
 CCPLEX_SAFETY_2 model name. More...
 
#define NVPKCS11_CCPLEX_DYNAMIC_2_MODEL_NAME   "CCPLEX_DYN_2 "
 CCPLEX_DYNAMIC_2 model name. More...
 
#define NVPKCS11_TSEC_SAFETY_3_MODEL_NAME   "TSEC_SAFE_3 "
 TSEC_SAFETY_3 model name. More...
 
#define NVPKCS11_TSEC_DYNAMIC_3_MODEL_NAME   "TSEC_DYN_3 "
 TSEC_DYNAMIC_3 model name. More...
 
#define NVPKCS11_CCPLEX_SAFETY_4_MODEL_NAME   "CCPLEX_SAFE_4 "
 CCPLEX_SAFETY_4 model name. More...
 
#define NVPKCS11_CCPLEX_DYNAMIC_4_MODEL_NAME   "CCPLEX_DYN_4 "
 CCPLEX_DYNAMIC_4 model name. More...
 
#define NVPKCS11_CCPLEX_SAFETY_5_MODEL_NAME   "CCPLEX_SAFE_5 "
 CCPLEX_SAFETY_5 model name. More...
 
#define NVPKCS11_CCPLEX_DYNAMIC_5_MODEL_NAME   "CCPLEX_DYN_5 "
 CCPLEX_DYNAMIC_5 model name. More...
 
#define NVPKCS11_CCPLEX_SAFETY_6_MODEL_NAME   "CCPLEX_SAFE_6 "
 CCPLEX_SAFETY_6 model name. More...
 
#define NVPKCS11_CCPLEX_DYNAMIC_6_MODEL_NAME   "CCPLEX_DYN_6 "
 CCPLEX_DYNAMIC_6 model name. More...
 
#define NVPKCS11_CCPLEX_SAFETY_7_MODEL_NAME   "CCPLEX_SAFE_7 "
 CCPLEX_SAFETY_7 model name. More...
 
#define NVPKCS11_CCPLEX_DYNAMIC_7_MODEL_NAME   "CCPLEX_DYN_7 "
 CCPLEX_DYNAMIC_7 model name. More...
 
#define NVPKCS11_CCPLEX_SAFETY_8_MODEL_NAME   "CCPLEX_SAFE_8 "
 CCPLEX_SAFETY_8 model name. More...
 
#define NVPKCS11_CCPLEX_DYNAMIC_8_MODEL_NAME   "CCPLEX_DYN_8 "
 CCPLEX_DYNAMIC_8 model name. More...
 
#define NVPKCS11_CCPLEX_SAFETY_9_MODEL_NAME   "CCPLEX_SAFE_9 "
 CCPLEX_SAFETY_9 model name. More...
 
#define NVPKCS11_CCPLEX_DYNAMIC_9_MODEL_NAME   "CCPLEX_DYN_9 "
 CCPLEX_DYNAMIC_9 model name. More...
 
#define NVPKCS11_CCPLEX_SAFETY_10_MODEL_NAME   "CCPLEX_SAFE_10 "
 CCPLEX_SAFETY_10 model name. More...
 
#define NVPKCS11_CCPLEX_DYNAMIC_10_MODEL_NAME   "CCPLEX_DYN_10 "
 CCPLEX_DYNAMIC_10 model name. More...
 
#define NVPKCS11_CCPLEX_SAFETY_11_MODEL_NAME   "CCPLEX_SAFE_11 "
 CCPLEX_SAFETY_11 model name. More...
 
#define NVPKCS11_CCPLEX_DYNAMIC_11_MODEL_NAME   "CCPLEX_DYN_11 "
 CCPLEX_DYNAMIC_11 model name. More...
 
#define NVPKCS11_CCPLEX_SAFETY_12_MODEL_NAME   "CCPLEX_SAFE_12 "
 CCPLEX_SAFETY_12 model name. More...
 
#define NVPKCS11_CCPLEX_DYNAMIC_12_MODEL_NAME   "CCPLEX_DYN_12 "
 CCPLEX_DYNAMIC_12 model name. More...
 
#define NVPKCS11_CCPLEX_SAFETY_13_MODEL_NAME   "CCPLEX_SAFE_13 "
 CCPLEX_SAFETY_13 model name. More...
 
#define NVPKCS11_CCPLEX_DYNAMIC_13_MODEL_NAME   "CCPLEX_DYN_13 "
 CCPLEX_DYNAMIC_13 model name. More...
 
#define NVPKCS11_CCPLEX_SAFETY_14_MODEL_NAME   "CCPLEX_SAFE_14 "
 CCPLEX_SAFETY_14 model name. More...
 
#define NVPKCS11_CCPLEX_DYNAMIC_14_MODEL_NAME   "CCPLEX_DYN_14 "
 CCPLEX_DYNAMIC_14 model name. More...
 
#define NVPKCS11_TSECRADAR_SAFETY_15_MODEL_NAME   "TSECRADAR_SAFE15"
 TSECRADAR_SAFETY_15 model name. More...
 
#define NVPKCS11_TSECRADAR_DYNAMIC_15_MODEL_NAME   "TSECRADAR_DYN15 "
 TSECRADAR_DYNAMIC_15 model name. More...
 
#define NVPKCS11_TOKEN_COUNT   29U
 Number of supported tokens. More...
 
#define NVPKCS11_MAX_SESSIONS   256U
 The number of PKCS#11 sessions that can be opened. More...
 
#define NVPKCS11_ECDSA_256_KEY_SIZE   NVPKCS11_EC_256_POINT_SIZE
 Max allowed key size for ECDSA key type (Legacy) More...
 
#define NVPKCS11_EDDSA_256_KEY_SIZE   NVPKCS11_EC_256_POINT_SIZE
 Max allowed key size for EDDSA key type (Legacy) More...
 
#define NVPKCS11_SHA_MAX_DATA_SIZE   (256UL * 0x100000UL)
 Max input buffer size for SHA operation 256 x 1MB (Legacy) More...
 
#define NVPKCS11_AES_BUFFER_LIMIT   (1U * 0x100000UL)
 Maximum input buffer size for AES encrypt/decrypt operation 1MB (Legacy) More...
 
#define PKCS11_INTERFACE_NAME   "PKCS 11"
 PKCS11 interface name. More...
 
#define NVIDIA_INTERFACE_NAME   "Vendor NVIDIA"
 NVIDIA PKCS11 extensions interface name. More...
 

Typedefs

typedef struct ecParameters_t ecParameters_t
 ecParameters_t Holds EC parameters. More...
 
typedef struct uncompressed32BytePoint_t uncompressed32BytePoint_t
 uncompressed32BytePoint_t Holds an uncompressed value for point data. More...
 
typedef struct compressed32BytePoint_t compressed32BytePoint_t
 compressed32BytePoint_t Holds a compressed value for point data. More...
 
typedef compressed32BytePoint_t eddsaPoint_t
 eddsaPoint_t is a legacy alias type that holds a generic compressed point value. More...
 
typedef uncompressed32BytePoint_t ecdsaPoint_t
 ecdsaPoint_t is a legacy alias type that holds a generic uncompressed point value. More...