19#include "hitls_crypt_type.h"
20#include "hitls_crypt_reg.h"
42HITLS_HMAC_Ctx *HITLS_CRYPT_HMAC_Init(HITLS_Lib_Ctx *libCtx,
const char *attrName,
43 HITLS_HashAlgo hashAlgo,
const uint8_t *key, uint32_t len);
65int32_t HITLS_CRYPT_HMAC(HITLS_Lib_Ctx *libCtx,
const char *attrName, HITLS_HashAlgo hashAlgo,
const uint8_t *key,
66 uint32_t keyLen,
const uint8_t *in, uint32_t inLen, uint8_t *out, uint32_t *outLen);
85int32_t HITLS_CRYPT_Digest(HITLS_Lib_Ctx *libCtx,
const char *attrName, HITLS_HashAlgo hashAlgo,
const uint8_t *in,
86 uint32_t inLen, uint8_t *out, uint32_t *outLen);
105int32_t HITLS_CRYPT_Encrypt(HITLS_Lib_Ctx *libCtx,
const char *attrName,
const HITLS_CipherParameters *cipher,
106 const uint8_t *in, uint32_t inLen, uint8_t *out, uint32_t *outLen);
125int32_t HITLS_CRYPT_Decrypt(HITLS_Lib_Ctx *libCtx,
const char *attrName,
const HITLS_CipherParameters *cipher,
126 const uint8_t *in, uint32_t inLen, uint8_t *out, uint32_t *outLen);
143HITLS_CRYPT_Key *HITLS_CRYPT_GenerateEcdhKey(HITLS_Lib_Ctx *libCtx,
const char *attrName,
164int32_t HITLS_CRYPT_DhCalcSharedSecret(HITLS_Lib_Ctx *libCtx,
const char *attrName, HITLS_CRYPT_Key *key,
165 uint8_t *peerPubkey, uint32_t pubKeyLen, uint8_t *sharedSecret, uint32_t *sharedSecretLen);
184int32_t HITLS_CRYPT_EcdhCalcSharedSecret(HITLS_Lib_Ctx *libCtx,
const char *attrName, HITLS_CRYPT_Key *key,
185 uint8_t *peerPubkey, uint32_t pubKeyLen, uint8_t *sharedSecret, uint32_t *sharedSecretLen);
201int32_t HITLS_CRYPT_CalcSM2SharedSecret(HITLS_Lib_Ctx *libCtx,
const char *attrName,
219HITLS_CRYPT_Key *HITLS_CRYPT_GenerateDhKeyBySecbits(HITLS_Lib_Ctx *libCtx,
const char *attrName,
238HITLS_CRYPT_Key *HITLS_CRYPT_GenerateDhKeyByParameters(HITLS_Lib_Ctx *libCtx,
239 const char *attrName, uint8_t *p, uint16_t pLen, uint8_t *g, uint16_t gLen);
257 uint8_t *okm, uint32_t okmLen);
275 uint8_t *prk, uint32_t *prkLen);
289int32_t HITLS_CRYPT_RandbytesEx(HITLS_Lib_Ctx *libCtx, uint8_t *bytes, uint32_t bytesLen);
300HITLS_HASH_Ctx *HITLS_CRYPT_DigestInit(HITLS_Lib_Ctx *libCtx,
const char *attrName, HITLS_HashAlgo hashAlgo);
307void HITLS_CRYPT_FreeKey(HITLS_CRYPT_Key *key);
321int32_t HITLS_CRYPT_GetDhParameters(HITLS_CRYPT_Key *key, uint8_t *p, uint16_t *pLen, uint8_t *g, uint16_t *gLen);
330int32_t HITLS_CRYPT_HMAC_ReInit(HITLS_HMAC_Ctx *ctx);
337void HITLS_CRYPT_HMAC_Free(HITLS_HMAC_Ctx *ctx);
348int32_t HITLS_CRYPT_HMAC_Update(HITLS_HMAC_Ctx *ctx,
const uint8_t *data, uint32_t len);
359int32_t HITLS_CRYPT_HMAC_Final(HITLS_HMAC_Ctx *ctx, uint8_t *out, uint32_t *len);
367uint32_t HITLS_CRYPT_DigestSize(HITLS_HashAlgo hashAlgo);
375HITLS_HASH_Ctx *HITLS_CRYPT_DigestCopy(HITLS_HASH_Ctx *ctx);
382void HITLS_CRYPT_DigestFree(HITLS_HASH_Ctx *ctx);
393int32_t HITLS_CRYPT_DigestUpdate(HITLS_HASH_Ctx *ctx,
const uint8_t *data, uint32_t len);
404int32_t HITLS_CRYPT_DigestFinal(HITLS_HASH_Ctx *ctx, uint8_t *out, uint32_t *len);
411void HITLS_CRYPT_CipherFree(HITLS_Cipher_Ctx *ctx);
419HITLS_CRYPT_Key *HITLS_CRYPT_DupKey(HITLS_CRYPT_Key *key);
431int32_t HITLS_CRYPT_GetPubKey(HITLS_CRYPT_Key *key, uint8_t *pubKeyBuf, uint32_t bufLen, uint32_t *pubKeyLen);
443int32_t HITLS_CRYPT_KemEncapsulate(HITLS_Lib_Ctx *libCtx,
const char *attrName,
458int32_t HITLS_CRYPT_KemDecapsulate(HITLS_CRYPT_Key *key,
const uint8_t *ciphertext, uint32_t ciphertextLen,
459 uint8_t *sharedSecret, uint32_t *sharedSecretLen);
struct TlsConfig HITLS_Config
config context
定义 hitls_type.h:41
Key parameters
定义 hitls_crypt_type.h:235
Elliptic curve parameter
定义 hitls_crypt_type.h:222
Input parameters for KEM encapsulation
定义 hitls_crypt_reg.h:36
sm2 ecdhe negotiation key parameters
定义 hitls_crypt_type.h:254