27#include "crypt_algid.h"
79 CRYPT_RSA_SALTLEN_TYPE_HASHLEN = -1,
82 CRYPT_RSA_SALTLEN_TYPE_MAXLEN = -2,
84 CRYPT_RSA_SALTLEN_TYPE_AUTOLEN = -3
104 CRYPT_RSA_BLINDING = 0x00000001,
105 CRYPT_RSA_BSSA = 0x00000002,
110 CRYPT_DH_NO_PADZERO = 0x00000001,
121 CRYPT_ECC_CACHE_PUBKEY = 0x00000001,
192 void *(*init)(
void *para);
194 int32_t (*read)(
void *ctx, uint32_t timeout, uint8_t *buf, uint32_t bufLen);
196 void (*deinit)(
void *ctx);
600 CRYPT_CTRL_SET_IV = 0,
602 CRYPT_CTRL_GET_BLOCKSIZE,
603 CRYPT_CTRL_SET_COUNT,
607 CRYPT_CTRL_SET_TAGLEN,
609 CRYPT_CTRL_SET_MSGLEN,
612 CRYPT_CTRL_SET_FEEDBACKSIZE,
613 CRYPT_CTRL_GET_FEEDBACKSIZE,
614 CRYPT_CTRL_DES_NOKEYCHECK,
615 CRYPT_CTRL_SET_PADDING,
616 CRYPT_CTRL_GET_PADDING,
617 CRYPT_CTRL_REINIT_STATUS,
628 CRYPT_CTRL_UP_REFERENCES = 0,
630 CRYPT_CTRL_SET_PARA_BY_ID,
631 CRYPT_CTRL_SET_NO_PADDING,
633 CRYPT_CTRL_GET_PARAID,
635 CRYPT_CTRL_GET_SIGNLEN,
636 CRYPT_CTRL_GET_SECBITS,
637 CRYPT_CTRL_GET_SHARED_KEY_LEN,
638 CRYPT_CTRL_GET_PUBKEY_LEN,
639 CRYPT_CTRL_GET_PRVKEY_LEN,
640 CRYPT_CTRL_GET_CIPHERTEXT_LEN,
641 CRYPT_CTRL_SET_DETERMINISTIC_FLAG,
642 CRYPT_CTRL_SET_CTX_INFO,
643 CRYPT_CTRL_SET_PREHASH_FLAG,
645 CRYPT_CTRL_SET_GEN_FLAG,
646 CRYPT_CTRL_GET_PUB_KEY_BITS,
647 CRYPT_CTRL_SET_SIGN_MD,
648 CRYPT_CTRL_GET_ECC_POINT_FORMAT,
649 CRYPT_CTRL_CLEAN_PUB_KEY,
651 CRYPT_CTRL_SET_DH_FLAG = 150,
654 CRYPT_CTRL_SET_RSA_EMSA_PKCSV15 = 200,
655 CRYPT_CTRL_GET_RSA_SALT,
656 CRYPT_CTRL_SET_RSA_EMSA_PSS,
657 CRYPT_CTRL_SET_RSA_SALT,
663 CRYPT_CTRL_SET_RSA_PADDING,
664 CRYPT_CTRL_SET_RSA_RSAES_OAEP,
665 CRYPT_CTRL_SET_RSA_OAEP_LABEL,
666 CRYPT_CTRL_SET_RSA_FLAG,
667 CRYPT_CTRL_SET_RSA_RSAES_PKCSV15,
668 CRYPT_CTRL_SET_RSA_RSAES_PKCSV15_TLS,
669 CRYPT_CTRL_GET_RSA_SALTLEN,
672 CRYPT_CTRL_GET_RSA_PADDING,
673 CRYPT_CTRL_GET_RSA_MD,
674 CRYPT_CTRL_GET_RSA_MGF,
675 CRYPT_CTRL_CLR_RSA_FLAG,
676 CRYPT_CTRL_SET_RSA_BSSA_FACTOR_R,
677 CRYPT_CTRL_SET_RSA_EMSA_ISO9796_2,
680 CRYPT_CTRL_SET_SM2_USER_ID = 300,
681 CRYPT_CTRL_SET_SM2_SERVER,
682 CRYPT_CTRL_SET_SM2_R,
683 CRYPT_CTRL_SET_SM2_RANDOM,
684 CRYPT_CTRL_SET_SM2_PKG,
685 CRYPT_CTRL_SET_SM2_K,
687 CRYPT_CTRL_SET_ECC_POINT_FORMAT,
689 CRYPT_CTRL_SET_ECC_USE_COFACTOR_MODE,
693 CRYPT_CTRL_SM2_GET_SEND_CHECK,
694 CRYPT_CTRL_GENE_SM2_R,
696 CRYPT_CTRL_SM2_DO_CHECK,
697 CRYPT_CTRL_GEN_ECC_PUBLICKEY,
698 CRYPT_CTRL_GET_ECC_PUB_X_BIN,
699 CRYPT_CTRL_GET_ECC_PUB_Y_BIN,
700 CRYPT_CTRL_GET_ECC_ORDER_BITS,
701 CRYPT_CTRL_GET_ECC_NAME,
702 CRYPT_CTRL_GEN_X25519_PUBLICKEY,
703 CRYPT_CTRL_GET_SM2_RANDOM,
709 CRYPT_CTRL_GET_SLH_DSA_KEY_LEN = 600,
710 CRYPT_CTRL_SET_SLH_DSA_ADDRAND,
712 CRYPT_CTRL_SET_MLDSA_ENCODE_FLAG = 700,
713 CRYPT_CTRL_SET_MLDSA_MUMSG_FLAG,
714 CRYPT_CTRL_GET_MLDSA_SEED,
715 CRYPT_CTRL_SET_MLDSA_PRVKEY_FORMAT,
716 CRYPT_CTRL_GET_MLDSA_PRVKEY_FORMAT,
719 CRYPT_CTRL_GET_MLKEM_SEED = 750,
720 CRYPT_CTRL_SET_MLKEM_DK_FORMAT,
721 CRYPT_CTRL_GET_MLKEM_DK_FORMAT,
724 CRYPT_CTRL_GET_XMSS_XDR_ALG_TYPE = 800,
725 CRYPT_CTRL_SET_XMSS_XDR_ALG_TYPE = 801,
730 CRYPT_CTRL_SET_GM_LEVEL,
731 CRYPT_CTRL_SET_RESEED_INTERVAL,
732 CRYPT_CTRL_SET_RESEED_TIME,
733 CRYPT_CTRL_GET_RESEED_INTERVAL,
734 CRYPT_CTRL_GET_RESEED_TIME,
735 CRYPT_CTRL_SET_PREDICTION_RESISTANCE,
736 CRYPT_CTRL_GET_WORKING_STATUS,
737 CRYPT_CTRL_RAND_MAX = 0xff,
746 CRYPT_CTRL_SET_CBC_MAC_PADDING = 0,
747 CRYPT_CTRL_GET_MACLEN,
757 CRYPT_ENTROPY_SET_POOL_SIZE = 0,
758 CRYPT_ENTROPY_SET_CF,
759 CRYPT_ENTROPY_ADD_NS,
760 CRYPT_ENTROPY_REMOVE_NS,
761 CRYPT_ENTROPY_ENABLE_TEST,
762 CRYPT_ENTROPY_GET_STATE,
763 CRYPT_ENTROPY_GET_POOL_SIZE,
764 CRYPT_ENTROPY_POOL_GET_CURRSIZE,
765 CRYPT_ENTROPY_GET_CF_SIZE,
766 CRYPT_ENTROPY_GATHER_ENTROPY,
773 CRYPT_ENTROPY_SET_LOG_CALLBACK,
784 CRYPT_PADDING_NONE = 0,
786 CRYPT_PADDING_ISO7816,
790 CRYPT_PADDING_MAX_COUNT
794 CRYPT_EMSA_PKCSV15 = 1,
799 CRYPT_RSAES_PKCSV15_TLS,
801 CRYPT_EMSA_ISO9796_2,
802 CRYPT_RSA_PADDINGMAX,
844 CRYPT_ALGO_CIPHER = 0,
853 CRYPT_ALGO_MLDSA_PRIV_FORMAT_NOT_SET = 0,
854 CRYPT_ALGO_MLDSA_PRIV_FORMAT_BOTH,
855 CRYPT_ALGO_MLDSA_PRIV_FORMAT_PRIV_ONLY,
856 CRYPT_ALGO_MLDSA_PRIV_FORMAT_SEED_ONLY,
857 CRYPT_ALGO_MLDSA_PRIV_FORMAT_END,
858} CRYPT_ALGO_MLDSA_PRIV_KEY_FORMAT_TYPE;
861 CRYPT_ALGO_MLKEM_DK_FORMAT_NOT_SET = 0,
862 CRYPT_ALGO_MLKEM_DK_FORMAT_BOTH,
863 CRYPT_ALGO_MLKEM_DK_FORMAT_DK_ONLY,
864 CRYPT_ALGO_MLKEM_DK_FORMAT_SEED_ONLY,
865 CRYPT_ALGO_MLKEM_DK_FORMAT_END,
866} CRYPT_ALGO_MLKEM_DK_FORMAT_TYPE;
902 CRYPT_INFO_IS_AEAD = 0,
903 CRYPT_INFO_IS_STREAM,
906 CRYPT_INFO_BLOCK_LEN,
911 CRYPT_KDF_HKDF_MODE_FULL = 0,
912 CRYPT_KDF_HKDF_MODE_EXTRACT,
913 CRYPT_KDF_HKDF_MODE_EXPAND,
918 CRYPT_PRIKEY_PKCS8_UNENCRYPT,
919 CRYPT_PRIKEY_PKCS8_ENCRYPT,
924 CRYPT_PUBKEY_SUBKEY_WITHOUT_SEQ,
947typedef struct EAL_LibCtx CRYPT_EAL_LibCtx;
950typedef struct EAL_ProviderMgrCtx CRYPT_EAL_ProvMgrCtx;
958 CRYPT_CMVP_PROVIDER_SELFTEST = 0x01,
959} CRYPT_CMVP_SELFTEST_AlgId;
CRYPT_MD_AlgId
定义 crypt_algid.h:68
void CRYPT_EAL_RegEventReport(EventReport func)
CRYPT_Data CRYPT_KemEncapsKey
定义 crypt_types.h:456
CRYPT_Data CRYPT_EccPub
定义 crypt_types.h:414
uint32_t(* CRYPT_EAL_EntropyGet)(void *ctx, uint8_t *buf, uint32_t bufLen)
Entropy source callback for obtaining entropy data.
定义 crypt_types.h:234
CRYPT_ECC_Flag
定义 crypt_types.h:120
CRYPT_Data CRYPT_Sm2Prv
定义 crypt_types.h:289
CRYPT_Data CRYPT_DsaPrv
定义 crypt_types.h:268
void(* EventReport)(CRYPT_EVENT_TYPE oper, CRYPT_ALGO_TYPE type, int32_t id, int32_t err)
event report.
定义 crypt_types.h:880
CRYPT_Data CRYPT_DsaPub
定义 crypt_types.h:407
void(* CRYPT_EAL_CleanEntropyCb)(void *ctx, CRYPT_Data *entropy)
The entropy source memory is cleared, this API is optional.
定义 crypt_types.h:552
CRYPT_Data CRYPT_MlDsaPrv
定义 crypt_types.h:324
CRYPT_RSA_SaltLenType
定义 crypt_types.h:77
CRYPT_ALGO_TYPE
定义 crypt_types.h:843
CRYPT_Data CRYPT_EcdsaPub
定义 crypt_types.h:421
CRYPT_Data CRYPT_KemDecapsKey
定义 crypt_types.h:317
CRYPT_EVENT_TYPE
定义 crypt_types.h:810
CRYPT_Data CRYPT_DhPrv
定义 crypt_types.h:296
CRYPT_Data CRYPT_Curve25519Prv
定义 crypt_types.h:310
void(* CRYPT_EAL_CleanNonceCb)(void *ctx, CRYPT_Data *nonce)
Random number memory clearance. this API is optional.
定义 crypt_types.h:576
CRYPT_Data CRYPT_EccPrv
定义 crypt_types.h:275
CRYPT_Data CRYPT_EcdsaPrv
定义 crypt_types.h:282
CRYPT_Data CRYPT_Curve25519Pub
定义 crypt_types.h:449
int32_t(* CRYPT_EAL_GetEntropyCb)(void *ctx, CRYPT_Data *entropy, uint32_t strength, CRYPT_Range *lenRange)
定义 crypt_types.h:543
CRYPT_Data CRYPT_EcdhPrv
定义 crypt_types.h:303
CRYPT_Data CRYPT_EcdhPub
定义 crypt_types.h:442
CRYPT_Data CRYPT_Sm2Pub
定义 crypt_types.h:428
CRYPT_Data CRYPT_MlDsaPub
定义 crypt_types.h:463
int32_t(* CRYPT_EAL_GetNonceCb)(void *ctx, CRYPT_Data *nonce, uint32_t strength, CRYPT_Range *lenRange)
Obtain the random number. This API is not need to registered. For registration, the output data must ...
定义 crypt_types.h:567
CRYPT_Data CRYPT_DhPub
定义 crypt_types.h:435
@ CRYPT_ECC_PRIKEY_NO_PUBKEY
定义 crypt_types.h:122
@ CRYPT_EVENT_ENCAPS
定义 crypt_types.h:825
@ CRYPT_EVENT_ES_HEALTH_TEST
定义 crypt_types.h:832
@ CRYPT_EVENT_ERR
定义 crypt_types.h:822
@ CRYPT_EVENT_KAT_TEST
定义 crypt_types.h:831
@ CRYPT_EVENT_KDF
定义 crypt_types.h:818
@ CRYPT_EVENT_GET_VERSION
定义 crypt_types.h:834
@ CRYPT_EVENT_RANDGEN
定义 crypt_types.h:820
@ CRYPT_EVENT_ZERO
定义 crypt_types.h:821
@ CRYPT_EVENT_PARAM_CHECK
定义 crypt_types.h:829
@ CRYPT_EVENT_BLIND
定义 crypt_types.h:827
@ CRYPT_EVENT_KEYAGGREMENT
定义 crypt_types.h:819
@ CRYPT_EVENT_SETSSP
定义 crypt_types.h:823
@ CRYPT_EVENT_MAC
定义 crypt_types.h:817
@ CRYPT_EVENT_SIGN
定义 crypt_types.h:814
@ CRYPT_EVENT_GEN
定义 crypt_types.h:813
@ CRYPT_EVENT_ENC
定义 crypt_types.h:811
@ CRYPT_EVENT_PCT_TEST
定义 crypt_types.h:830
@ CRYPT_EVENT_INTEGRITY_TEST
定义 crypt_types.h:833
@ CRYPT_EVENT_DECAPS
定义 crypt_types.h:826
@ CRYPT_EVENT_GETSSP
定义 crypt_types.h:824
@ CRYPT_EVENT_VERIFY
定义 crypt_types.h:815
@ CRYPT_EVENT_DEC
定义 crypt_types.h:812
@ CRYPT_EVENT_UNBLIND
定义 crypt_types.h:828
@ CRYPT_EVENT_MD
定义 crypt_types.h:816
uint32_t len
定义 crypt_types.h:40
uint8_t * data
定义 crypt_types.h:39
uint8_t * g
定义 crypt_types.h:498
uint32_t pLen
定义 crypt_types.h:499
uint32_t qLen
定义 crypt_types.h:500
uint32_t gLen
定义 crypt_types.h:501
uint8_t * q
定义 crypt_types.h:497
uint8_t * p
定义 crypt_types.h:496
uint32_t qLen
定义 crypt_types.h:486
uint8_t * g
定义 crypt_types.h:484
uint8_t * q
定义 crypt_types.h:483
uint32_t pLen
定义 crypt_types.h:485
uint32_t gLen
定义 crypt_types.h:487
uint8_t * p
定义 crypt_types.h:482
uint32_t qLen
定义 crypt_types.h:524
uint32_t k_bits
定义 crypt_types.h:526
uint8_t * q
定义 crypt_types.h:523
uint32_t bits
定义 crypt_types.h:525
uint8_t * g
定义 crypt_types.h:254
uint8_t * x
定义 crypt_types.h:255
uint32_t pLen
定义 crypt_types.h:257
uint32_t xLen
定义 crypt_types.h:259
uint32_t gLen
定义 crypt_types.h:258
uint8_t * p
定义 crypt_types.h:253
uint32_t pLen
定义 crypt_types.h:396
uint8_t * q
定义 crypt_types.h:395
uint8_t * g
定义 crypt_types.h:393
uint8_t * p
定义 crypt_types.h:392
uint32_t gLen
定义 crypt_types.h:397
uint32_t yLen
定义 crypt_types.h:398
uint8_t * y
定义 crypt_types.h:394
uint32_t qLen
定义 crypt_types.h:399
uint8_t * p
定义 crypt_types.h:510
uint32_t pLen
定义 crypt_types.h:512
uint32_t bits
定义 crypt_types.h:514
uint8_t * q
定义 crypt_types.h:511
uint32_t qLen
定义 crypt_types.h:513
uint8_t * mu
定义 crypt_types.h:180
uint32_t muLen
定义 crypt_types.h:184
uint8_t * n2
定义 crypt_types.h:181
uint8_t * n
定义 crypt_types.h:178
uint32_t nLen
定义 crypt_types.h:182
uint32_t n2Len
定义 crypt_types.h:185
uint8_t * lambda
定义 crypt_types.h:179
uint32_t lambdaLen
定义 crypt_types.h:183
uint32_t nLen
定义 crypt_types.h:347
uint32_t n2Len
定义 crypt_types.h:349
uint8_t * g
定义 crypt_types.h:345
uint32_t gLen
定义 crypt_types.h:348
uint8_t * n
定义 crypt_types.h:344
uint8_t * n2
定义 crypt_types.h:346
CRYPT_MD_AlgId mdId
定义 crypt_types.h:99
CRYPT_MD_AlgId mgfId
定义 crypt_types.h:100
Pkcsv15 padding mode, when RSA is used for signature.
定义 crypt_types.h:68
CRYPT_MD_AlgId mdId
定义 crypt_types.h:69
CRYPT_MD_AlgId mgfId
定义 crypt_types.h:95
CRYPT_MD_AlgId mdId
定义 crypt_types.h:94
int32_t saltLen
定义 crypt_types.h:93
uint32_t max
定义 crypt_types.h:60
uint32_t min
定义 crypt_types.h:59
uint8_t * e
定义 crypt_types.h:471
uint32_t eLen
定义 crypt_types.h:472
uint32_t bits
定义 crypt_types.h:473
uint8_t * q
定义 crypt_types.h:135
uint8_t * d
定义 crypt_types.h:132
uint8_t * e
定义 crypt_types.h:139
uint32_t qInvLen
定义 crypt_types.h:146
uint32_t qLen
定义 crypt_types.h:143
uint32_t dQLen
定义 crypt_types.h:145
uint32_t eLen
定义 crypt_types.h:147
uint8_t * n
定义 crypt_types.h:133
uint8_t * qInv
定义 crypt_types.h:138
uint32_t nLen
定义 crypt_types.h:141
uint32_t dPLen
定义 crypt_types.h:144
uint8_t * dP
定义 crypt_types.h:136
uint8_t * dQ
定义 crypt_types.h:137
uint8_t * p
定义 crypt_types.h:134
uint32_t dLen
定义 crypt_types.h:140
uint32_t pLen
定义 crypt_types.h:142
uint32_t eLen
定义 crypt_types.h:334
uint8_t * e
定义 crypt_types.h:332
uint32_t nLen
定义 crypt_types.h:335
uint8_t * n
定义 crypt_types.h:333
SLH-DSA private key structure
定义 crypt_types.h:365
SLH-DSA public key structure
定义 crypt_types.h:356
XMSS private key structure
定义 crypt_types.h:379