16#ifndef CRYPT_ENCODE_INTERNAL_H
17#define CRYPT_ENCODE_INTERNAL_H
19#include "hitls_build.h"
21#include "bsl_asn1_internal.h"
23#include "crypt_eal_pkey.h"
30#if defined(HITLS_CRYPTO_SM2_SIGN) || defined(HITLS_CRYPTO_DSA) || defined(HITLS_CRYPTO_ECDSA)
39int32_t CRYPT_EAL_GetSignEncodeLen(uint32_t rLen, uint32_t sLen, uint32_t *maxLen);
50int32_t CRYPT_EAL_EncodeSign(
const BN_BigNum *r,
const BN_BigNum *s, uint8_t *encode, uint32_t *encodeLen);
61int32_t CRYPT_EAL_DecodeSign(
const uint8_t *encode, uint32_t encodeLen, BN_BigNum *r, BN_BigNum *s);
64#ifdef HITLS_CRYPTO_SM2_CRYPT
74} CRYPT_SM2_EncryptData;
86int32_t CRYPT_EAL_GetSm2EncryptDataEncodeLen(uint32_t xLen, uint32_t yLen, uint32_t hashLen, uint32_t dataLen,
97int32_t CRYPT_EAL_EncodeSm2EncryptData(
const CRYPT_SM2_EncryptData *data, uint8_t *encode, uint32_t *encodeLen);
107int32_t CRYPT_EAL_DecodeSm2EncryptData(
const uint8_t *encode, uint32_t encodeLen, CRYPT_SM2_EncryptData *data);