16#ifndef CRYPT_CODECSKEY_H
17#define CRYPT_CODECSKEY_H
19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_CODECSKEY
23#include "bsl_asn1_internal.h"
24#include "crypt_eal_pkey.h"
25#ifdef HITLS_CRYPTO_KEY_INFO
36 BSL_ASN1_Buffer keyParam;
38 uint32_t pkeyRawKeyLen;
40} CRYPT_ENCODE_DECODE_Pk8PrikeyInfo;
42#ifdef HITLS_CRYPTO_KEY_DECODE
46 BSL_ASN1_Buffer keyParam;
47 BSL_ASN1_BitString pubKey;
48} CRYPT_DECODE_SubPubkeyInfo;
50int32_t CRYPT_DECODE_SubPubkey(uint8_t *buff, uint32_t buffLen, BSL_ASN1_DecTemplCallBack keyInfoCb,
51 CRYPT_DECODE_SubPubkeyInfo *subPubkeyInfo,
bool isComplete);
53int32_t CRYPT_DECODE_Pkcs8Info(uint8_t *buff, uint32_t buffLen, BSL_ASN1_DecTemplCallBack keyInfoCb,
54 CRYPT_ENCODE_DECODE_Pk8PrikeyInfo *pk8PrikeyInfo);
56#ifdef HITLS_CRYPTO_RSA
57int32_t CRYPT_EAL_ParseRsaPssAlgParam(BSL_ASN1_Buffer *param,
CRYPT_RSA_PssPara *para);
62#ifdef HITLS_CRYPTO_KEY_ENCODE
64int32_t CRYPT_ENCODE_Pkcs8Info(CRYPT_ENCODE_DECODE_Pk8PrikeyInfo *pk8PrikeyInfo,
BSL_Buffer *asn1);
67 BSL_ParseFormat format, int32_t type,
bool isComplete,
BSL_Buffer *encode);
69#ifdef HITLS_CRYPTO_RSA
70int32_t CRYPT_EAL_EncodeRsaPssAlgParam(
const CRYPT_RSA_PssPara *rsaPssParam, uint8_t **buf, uint32_t *bufLen);
75#if defined(HITLS_CRYPTO_RSA) && (defined(HITLS_CRYPTO_KEY_ENCODE) || defined(HITLS_CRYPTO_KEY_INFO))
81#ifdef HITLS_PKI_CMS_ENCRYPTDATA
83int32_t CRYPT_EAL_ParseAsn1PKCS7EncryptedData(CRYPT_EAL_LibCtx *libCtx,
const char *attrName,
BSL_Buffer *encode,
84 const uint8_t *pwd, uint32_t pwdlen,
BSL_Buffer *output);
87int32_t CRYPT_EAL_EncodePKCS7EncryptDataBuff(CRYPT_EAL_LibCtx *libCtx,
const char *attrName,
BSL_Buffer *data,
91#ifdef HITLS_CRYPTO_KEY_INFO
96#ifdef HITLS_CRYPTO_RSA
101int32_t CRYPT_EAL_GetEncodeFormat(
const char *format);
103int32_t CRYPT_EAL_GetEncodeType(
const char *type);
struct UIO_ControlBlock BSL_UIO
UIO module control structure
定义 bsl_uio.h:37
struct EAL_PkeyCtx CRYPT_EAL_PkeyCtx
定义 crypt_eal_pkey.h:108