259 #ifndef HSMBAREMETAL_H 260 #define HSMBAREMETAL_H 276 #define HSMBAREMETAL_STATUS_SUCCESS ((int_fast16_t)0) 284 #define HSMBAREMETAL_STATUS_ERROR ((int_fast16_t)-1) 290 #define HSMBAREMETAL_STATUS_HSM_NOT_INITIALIZED ((int_fast16_t)-2) 297 #define HSMBAREMETAL_STATUS_HW_ERROR ((int_fast16_t)-3) 302 #define HSMBAREMETAL_STATUS_HSM_ALREADY_INITIALIZED ((int_fast16_t)-4) 312 #define HSMBAREMETAL_STATUS_INVALID_MAC ((int_fast16_t)-5) 317 #define HSMBAREMETAL_STATUS_INVALID_INPUT_PARAMETERS ((int_fast16_t)-6) 322 #define HSMBAREMETAL_STATUS_NRBG_ALREADY_IN_MODE ((int_fast16_t)-7) 327 #define HSMBAREMETAL_STATUS_INVALID_PRIVATE_KEY_SIZE ((int_fast16_t)-8) 332 #define HSMBAREMETAL_STATUS_INVALID_PUBLIC_KEY_SIZE ((int_fast16_t)-9) 337 #define HSMBAREMETAL_STATUS_INVALID_PUBLIC_KEY_OCTET_VALUE ((int_fast16_t)-10) 342 #define HSMBAREMETAL_STATUS_INVALID_SHARED_SECRET_KEY_SIZE ((int_fast16_t)-11) 347 #define HSMBAREMETAL_STATUS_HUK_ALREADY_PROVISIONED ((int_fast16_t)-12) 352 #define HSMBAREMETAL_STATUS_FEATURE_NOT_SUPPORTED ((int_fast16_t)-13) 357 #define HSMBAREMETAL_STATUS_INVALID_INPUT_DATA_LENGTH ((int_fast16_t)-14) 362 #define HSMBAREMETAL_STATUS_INVALID_MAC_LENGTH ((int_fast16_t)-15) 367 #define HSMBareMetal_WAIT_FOREVER ~(0) 372 #define HSMBAREMETAL_HUK_ASSET_NUMBER 0x61 377 #define HSMBAREMETAL_AES_BLOCK_SIZE 16 383 #define HSMBAREMETAL_PRIVATE_KEY_VHEADER_SIZE 4 390 #define HSMBAREMEATL_KEYBLOB_ELEM_SIZE(keyLength) (HSMBAREMETAL_AES_BLOCK_SIZE + keyLength) 400 #define HSMBAREMETAL_GET_KEYBLOB_BUF_SIZE(keyLength, direction) \ 401 ((direction) == HSMBareMetal_OPERATION_DIR_ENC_GEN_AND_DEC_VRFY ? (2 * HSMBAREMEATL_KEYBLOB_ELEM_SIZE(keyLength)) \ 402 : HSMBAREMEATL_KEYBLOB_ELEM_SIZE(keyLength)) 404 #define HSMBAREMETAL_GET_PRIVATE_KEY_KEYBLOB_BUF_SIZE(keyLength) \ 405 HSMBAREMEATL_KEYBLOB_ELEM_SIZE((HSMBAREMETAL_PRIVATE_KEY_VHEADER_SIZE + keyLength)) 413 ENTROPY_TYPE_DRBG = 0x0000,
414 ENTROPY_TYPE_CRNG = 0x7264,
415 ENTROPY_TYPE_TRNG = 0x5244,
436 HSMBareMetal_OPERATION_ALGO_AES = 1,
437 HSMBareMetal_OPERATION_ALGO_MAC = 2,
438 HSMBareMetal_OPERATION_ALGO_HASH = 3,
439 HSMBareMetal_OPERATION_ALGO_ECC = 4,
449 HSMBareMetal_OPERATION_DIR_ENC_GEN_AND_DEC_VRFY = 0,
450 HSMBareMetal_OPERATION_DIR_ENC_GEN = 1,
451 HSMBareMetal_OPERATION_DIR_DEC_VRFY = 2,
459 HSMBareMetal_AES_MODE_ECB = 0,
460 HSMBareMetal_AES_MODE_CBC = 1,
461 HSMBareMetal_AES_MODE_CTR = 2,
462 HSMBareMetal_AES_MODE_CCM = 5,
463 HSMBareMetal_AES_MODE_GCM = 7,
471 HSMBareMetal_MAC_MODE_HMAC_224 = 2,
472 HSMBareMetal_MAC_MODE_HMAC_256 = 3,
473 HSMBareMetal_MAC_MODE_HMAC_384 = 4,
474 HSMBareMetal_MAC_MODE_HMAC_512 = 5,
475 HSMBareMetal_MAC_MODE_CMAC = 8,
476 HSMBareMetal_MAC_MODE_CBC_MAC = 9,
484 HSMBareMetal_HASH_MODE_SHA2_224 = 2,
485 HSMBareMetal_HASH_MODE_SHA2_256 = 3,
486 HSMBareMetal_HASH_MODE_SHA2_384 = 4,
487 HSMBareMetal_HASH_MODE_SHA2_512 = 5,
495 HSMBareMetal_HASH_TYPE_INIT_TO_FINAL = 0,
496 HSMBareMetal_HASH_TYPE_CONT_TO_FINAL = 1,
497 HSMBareMetal_HASH_TYPE_INIT_TO_CONT = 2,
498 HSMBareMetal_HASH_TYPE_CONT_TO_CONT = 3,
506 HSMBareMetal_PK_CURVE_TYPE_SEC_P_224_R1 = 1,
507 HSMBareMetal_PK_CURVE_TYPE_SEC_P_256_R1 = 2,
508 HSMBareMetal_PK_CURVE_TYPE_SEC_P_384_R1 = 3,
509 HSMBareMetal_PK_CURVE_TYPE_SEC_P_521_R1 = 4,
510 HSMBareMetal_PK_CURVE_TYPE_BRP_P_256_R1 = 5,
511 HSMBareMetal_PK_CURVE_TYPE_BRP_P_384_R1 = 6,
512 HSMBareMetal_PK_CURVE_TYPE_BRP_P_512_R1 = 7,
513 HSMBareMetal_PK_CURVE_TYPE_25519 = 8,
522 HSMBareMetal_PK_CURVE_LENGTH_224 = 224,
523 HSMBareMetal_PK_CURVE_LENGTH_255 = 255,
524 HSMBareMetal_PK_CURVE_LENGTH_256 = 256,
525 HSMBareMetal_PK_CURVE_LENGTH_384 = 384,
526 HSMBareMetal_PK_CURVE_LENGTH_512 = 512,
527 HSMBareMetal_PK_CURVE_LENGTH_521 = 521,
535 HSMBareMetal_PK_DIGEST_LENGTH_224 = 224,
536 HSMBareMetal_PK_DIGEST_LENGTH_256 = 256,
537 HSMBareMetal_PK_DIGEST_LENGTH_384 = 384,
538 HSMBareMetal_PK_DIGEST_LENGTH_512 = 512,
546 HSMBareMetal_PK_MODE_ECDH_GEN_PUB_KEY = 1,
547 HSMBareMetal_PK_MODE_ECDH_GEN_SHRD_SCRT = 2,
548 HSMBareMetal_PK_MODE_ECDSA_SIGN = 3,
549 HSMBareMetal_PK_MODE_ECDSA_VERIFY = 4,
557 HSMBareMetal_ECC_ASSET_TYPE_PRIVATE_KEY = 1,
558 HSMBareMetal_ECC_ASSET_TYPE_PUBLIC_KEY = 2,
566 HSMBareMetal_KEY_INPUT_PLAINTEXT = 0,
567 HSMBareMetal_KEY_INPUT_ASSETSTORE = 1,
575 HSMBareMetal_ASSET_OPERATION_TYPE_LOAD_PLAINTEXT = 0,
576 HSMBareMetal_ASSET_OPERATION_TYPE_LOAD_IMPORT_KEY_BLOB = 1,
577 HSMBareMetal_ASSET_OPERATION_TYPE_LOAD_EXPORT_KEY_BLOB = 2,
689 uint32_t *encGenKeyAssetID;
690 uint32_t *decVrfyKeyAssetID;
691 uint32_t *privateKeyAssetID;
692 uint32_t *publicKeyAssetID;
728 size_t totalInputLength;
746 uint8_t *keyMaterial;
Struct containing the Plaintext-based crypto key data.
Definition: HSMBareMetal.h:744