NVIDIA DRIVE OS Linux SDK API Reference

5.2.6 Release
For Test and Development only
nv_te_cryptographic_constants.h File Reference

Detailed Description

GlobalPlatform: NV Cryptographic Constants

Description: Describes NV cryptographic constants.

Definition in file nv_te_cryptographic_constants.h.

Go to the source code of this file.

Typedefs

typedef uint32_t KeySlotHandle
 This type is used to define key slot handle to hold the key slot. More...
 

Enumerations

enum  NV_TE_CryptoAlgorithm {
  AES_CBC = 1,
  AES_CBC_NOPAD = 2,
  AES_ECB = 3,
  AES_ECB_NOPAD = 4,
  AES_CTS = 5,
  AES_CTR_128 = 6,
  AES_CTR_256 = 7,
  AES_CBC_256 = 8,
  AES_CBC_256_NOPAD = 9
}
 This set of operation constants are used by NV-maintained TAs. More...
 
enum  NV_TE_CryptoServiceOperation {
  CRYPTO_SERVICE_PING = 0x00000000,
  CRYPTO_SERVICE_ENCRYPT = 0x00000001,
  CRYPTO_SERVICE_DECRYPT = 0x00000002,
  CRYPTO_SERVICE_DERIVE_KEK = 0x00000003,
  CRYPTO_SERVICE_DIGEST_INIT = 0x00000004,
  CRYPTO_SERVICE_DIGEST_UPDATE = 0x00000005,
  CRYPTO_SERVICE_DIGEST_DO_FINAL = 0x00000006,
  CRYPTO_SERVICE_DIGEST_FREE = 0x00000007,
  CRYPTO_SERVICE_AES_INIT = 0x00000008,
  CRYPTO_SERVICE_AES_UPDATE = 0x00000009,
  CRYPTO_SERVICE_AES_DO_FINAL = 0x0000000A,
  CRYPTO_SERVICE_AES_FREE = 0x0000000B,
  CRYPTO_SERVICE_MAC_INIT = 0x0000000C,
  CRYPTO_SERVICE_MAC_UPDATE = 0x0000000D,
  CRYPTO_SERVICE_MAC_DO_FINAL = 0x0000000E,
  CRYPTO_SERVICE_MAC_FREE = 0x0000000F,
  CRYPTO_SERVICE_RSA_HANDLE_REQUEST = 0x00000011,
  CRYPTO_SERVICE_DRBG_GENERATE = 0x00000013,
  CRYPTO_SERVICE_REQUEST_SE_KEYSLOT = 0x00000014,
  CRYPTO_SERVICE_UPDATE_SE_KEYSLOT = 0x00000015,
  CRYPTO_SERVICE_RELEASE_SE_KEYSLOT = 0x00000016,
  CRYPTO_SERVICE_UNWRAP_KEY = 0x00000017,
  CRYPTO_SERVICE_AES_CCM_INIT = 0x00000019,
  CRYPTO_SERVICE_CCM_HANDLE_REQUEST = 0x0000001A,
  CRYPTO_SERVICE_CCM_FREE = 0x0000001B,
  CRYPTO_SERVICE_ECDSA_INIT = 0x0000001C,
  CRYPTO_SERVICE_ECDSA_SET_KEY = 0x0000001D,
  CRYPTO_SERVICE_ECDSA_DO_FINAL = 0x0000001E,
  CRYPTO_SERVICE_ECDSA_FREE = 0x0000001F,
  CRYPTO_SERVICE_ED25519_INIT = 0x00000020,
  CRYPTO_SERVICE_ED25519_SET_KEY = 0x00000021,
  CRYPTO_SERVICE_ED25519_DO_FINAL = 0x00000022,
  CRYPTO_SERVICE_ED25519_FREE = 0x00000023,
  CRYPTO_SERVICE_DERIVE_KEY = 0x00000024,
  CRYPTO_SERVICE_SET_KEYSLOT_OIV = 0x00000025,
  CRYPTO_SERVICE_DERIVE_KEK2 = 0x00000027,
  CRYPTO_SERVICE_GENERATE_AES_KEY = 0x00000028,
  CRYPTO_SERVICE_DERIVE_KEY_NIST_SP800_108 = 0x00000029,
  CRYPTO_SERVICE_WRAP_KEK0_DERIVATION = 0x00000030,
  CRYPTO_SERVICE_WRAP_KEK2_DERIVATION = 0x00000031,
  CRYPTO_SERVICE_NIST_SP800_108_DERIVE_FROM_KEK0 = 0x00000032,
  CRYPTO_SERVICE_NIST_SP800_108_DERIVE_FROM_KEK2 = 0x00000033,
  CRYPTO_SERVICE_CCM_UNWRAP_CBC_WRAP_INIT_CCM = 0x00000034,
  CRYPTO_SERVICE_CCM_UNWRAP_CBC_WRAP_INIT_CBC = 0x00000035,
  CRYPTO_SERVICE_CCM_UNWRAP_CBC_WRAP_HANDLE_OPERATION = 0x00000036,
  CRYPTO_SERVICE_CCM_UNWRAP_CBC_WRAP_FREE = 0x00000037,
  CRYPTO_SERVICE_REWRAP_DERIVED_KEY_INIT = 0x00000038,
  CRYPTO_SERVICE_REWRAP_DERIVE_KEY_HANDLE_OPERATION = 0x00000039,
  CRYPTO_SERVICE_REWRAP_DERIVE_KEY_FREE = 0x00000040,
  CRYPTO_SERVICE_WRAP_KEK_NISTKDF_DERIVATION_INIT = 0X00000041,
  CRYPTO_SERVICE_WRAP_KEK_NISTKDF_DERIVATION_HANDLE_OPERATION = 0x00000042,
  CRYPTO_SERVICE_WRAP_KEK_NISTKDF_DERIVATION_FREE = 0X00000043,
  CRYPTO_SERVICE_ECC_SET_KEYSLOT = 0x00000044,
  CRYPTO_SERVICE_KEY_VALIDATE_KCV = 0x00000045
}
 This type is used to contain Crypto-Service commands. More...
 
enum  NV_TE_OperationAlgorithm {
  NV_TE_ALG_AES_ECB = 0x10000510,
  NV_TE_ALG_AES_CBC = 0x10000610,
  NV_TE_ALG_AES_CBC_256 = 0x10000710,
  NV_TE_ALG_AES_CBC_256_NOPAD = 0x10000810,
  NV_TE_ALG_AES_CMAC_128 = 0x20000110,
  NV_TE_ALG_AES_CMAC_256 = 0x20000130,
  NV_TE_ALG_ED25519PH = 0x70006050,
  NV_TE_ALG_AES_CMAC_192 = 0x20000120
}
 This type is used to contain operation algorithms. More...
 
enum  NV_TE_SeDiagServiceOperation {
  SE_DIAG_SERVICE_SE_VERIFY_CONFIG = 0x00000201,
  SE_DIAG_SERVICE_SE_ERROR_INJECT = 0x00000202
}
 This type is used to contain SeDiag-Service commands. More...
 
enum  NV_TE_KeystoreServiceOperation {
  KEYSTORE_SERVICE_PING = 0x00000000,
  KEYSTORE_SERVICE_GET_KEY = 0x00000001,
  KEYSTORE_SERVICE_GET_KEY_ATTRIBUTE = 0x00000002,
  KEYSTORE_SERVICE_PKCS11_LOAD_AES_KEY = 0x00000003,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_LOAD_AES_KEY = 0x00000103,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_RELEASE_AES_KEYSLOT = 0x00000104,
  KEYSTORE_SERVICE_PKCS11_RELEASE_AES_KEYSLOT = 0x00000004,
  KEYSTORE_SERVICE_PKCS11_GET_KEY_OBJ_METADATA = 0x00000006,
  KEYSTORE_SERVICE_PKCS11_GENERATE_AES_KEY = 0x00000007,
  KEYSTORE_SERVICE_PKCS11_DELETE_KEY = 0x00000008,
  KEYSTORE_SERVICE_PKCS11_DERIVE_AES_KEY = 0x00000009,
  KEYSTORE_SERVICE_PKCS11_UNWRAP_AES_KEY = 0x0000000C,
  KEYSTORE_SERVICE_PKCS11_COPY_AES_KEY = 0x00000018,
  KEYSTORE_SERVICE_PKCS11_SET_KEY_OBJ_ID = 0x0000000E,
  KEYSTORE_SERVICE_PKCS11_SET_KEY_OBJ_LABEL = 0x0000000F,
  KEYSTORE_SERVICE_PKCS11_SECURE_STORAGE_GET_STATE = 0x00000010,
  KEYSTORE_SERVICE_PKCS11_SECURE_STORAGE_RESET_FILESYSTEM = 0x00000011,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_UNWRAP_AES_KEY = 0x00000012,
  KEYSTORE_SERVICE_PKCS11_CREATE_RSA_PUB_KEY = 0x00000020,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_LOOKUP_KEY = 0x000000013,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_GET_KEY_OBJ_METADATA = 0x00000014,
  KEYSTORE_SERVICE_PKCS11_LOOKUP_KEY = 0x00000021,
  KEYSTORE_SERVICE_PKCS11_LOAD_RSA_PUB_KEY = 0x00000022,
  KEYSTORE_SERVICE_PKCS11_RELEASE_RSA_KEYSLOT = 0x00000023,
  KEYSTORE_SERVICE_PKCS11_COPY_RSA_PUB_KEY = 0x000000024,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_LOAD_RSA_PUB_KEY = 0x00000122,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_RELEASE_RSA_KEYSLOT = 0x00000123,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_COPY_RSA_PUB_KEY = 0x000000124,
  KEYSTORE_SERVICE_PKCS11_CREATE_ECC_PUB_KEY = 0x00000030,
  KEYSTORE_SERVICE_PKCS11_LOAD_ECC_PUB_KEY = 0x00000031,
  KEYSTORE_SERVICE_PKCS11_RELEASE_ECC_KEYSLOT = 0x00000032,
  KEYSTORE_SERVICE_PKCS11_COPY_ECC_PUB_KEY = 0x000000033,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_COPY_ECC_PUB_KEY = 0x000000133,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_LOAD_ECC_PUB_KEY = 0x00000131,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_RELEASE_ECC_KEYSLOT = 0x00000132,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_GENERATE_AES_KEY = 0x000000015,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_SET_KEY_OBJ_ID = 0x00000016,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_SET_KEY_OBJ_LABEL = 0x00000017,
  KEYSTORE_SERVICE_PKCS11_INIT_KEYSTORE = 0x00000034,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_COPY_AES_KEY = 0x00000019,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_DELETE_KEY = 0x0000001A,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_REQUEST_RW_ACCESS = 0x0000001B,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_RELINQUISH_RW_ACCESS = 0x0000001C,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_REQUEST_RO_ACCESS = 0x0000001D,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_RELINQUISH_RO_ACCESS = 0x0000001E,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_UNWRAP_RSA_PUB_KEY = 0x00000127,
  KEYSTORE_SERVICE_PKCS11_UNWRAP_RSA_PUB_KEY = 0x00000027,
  KEYSTORE_SERVICE_PKCS11_PERSISTENT_UNWRAP_ECC_PUB_KEY = 0x00000128,
  KEYSTORE_SERVICE_PKCS11_UNWRAP_ECC_PUB_KEY = 0x00000028
}
 Defines TOS OEM Keystore Service trusted application commandIDs available to clients. More...
 
enum  NV_TE_KeystoreKeyAttribute {
  KEYSTORE_KEY_ATTRIBUTE_SIZE = 0x00000000,
  KEYSTORE_KEY_ATTRIBUTE_ALGO = 0x00000001,
  KEYSTORE_KEY_ATTRIBUTE_IV = 0x00000002
}
 Defines various key attribute types supported by TOS OEM Keystore Service. More...
 
enum  NV_TE_KeystoreLookupType {
  KEYSTORE_LOOKUP_TYPE_ABSOLUTE = 0x00000001,
  KEYSTORE_LOOKUP_TYPE_RELATIVE = 0x00000002,
  KEYSTORE_LOOKUP_TYPE_BY_ID = 0x00000003
}
 Defines various key lookup schemes supported by TOS OEM Keystore Service. More...
 
enum  KeySlotUsageInfo {
  KEYSLOT_USAGE_SIGN = 1U,
  KEYSLOT_USAGE_VERIFY,
  KEYSLOT_USAGE_ENCRYPT,
  KEYSLOT_USAGE_DECRYPT,
  KEYSLOT_USAGE_MAC,
  KEYSLOT_USAGE_DERIVE,
  KEYSLOT_USAGE_DUAL_CRYPTO,
  KEYSLOT_USAGE_WRAPPING
}
 This type enumerates key usage metadata types. More...
 
enum  KeySlotType {
  KEYSLOT_TYPE_AES = 1U,
  KEYSLOT_TYPE_RSA,
  KEYSLOT_TYPE_PKA1
}
 This type is used to define key slot type. More...
 
enum  CmacIntent {
  CMAC_VERIFY = 0x0000FFFFU,
  CMAC_GENERATE = 0xFFFF0000U
}
 This type is used to define the intent of invoking the AES-CMAC operation. More...
 
enum  FuseKeySlot {
  CRYPTO_KEK0_KEYSLOT = 0U,
  CRYPTO_KEK2_KEYSLOT = 2U
}
 This type is used to define the fuse key slots which Crypto Service uses. More...
 

Enumeration Type Documentation

◆ NV_TE_CryptoAlgorithm

This set of operation constants are used by NV-maintained TAs.

Enumerator
AES_CBC 

AES-128-CBC with PKCS#7 padding.

AES_CBC_NOPAD 

AES-128-CBC no padding.

AES_ECB 

AES-128-ECB with PKCS#7 padding.

AES_ECB_NOPAD 

AES-128-ECB no padding.

AES_CTS 

AES-128-CTS.

AES_CTR_128 

AES-128-CTR.

AES_CTR_256 

AES-256-CTR.

AES_CBC_256 

AES-256-CBC with PKCS#7 padding.

AES_CBC_256_NOPAD 

AES-256-CBC no padding.

Definition at line 27 of file nv_te_cryptographic_constants.h.