16#ifndef BSL_ASN1_INTERNAL_H
17#define BSL_ASN1_INTERNAL_H
30#define BSL_ASN1_MAX_TEMPLATE_DEPTH 6
32#define BSL_ASN1_UTCTIME_LEN 13
33#define BSL_ASN1_GENERALIZEDTIME_LEN 15
36 BSL_ASN1_TYPE_GET_ANY_TAG = 0,
37 BSL_ASN1_TYPE_CHECK_CHOICE_TAG = 1
38} BSL_ASN1_CALLBACK_TYPE;
51int32_t BSL_ASN1_DecodeLen(uint8_t **encode, uint32_t *encLen,
bool completeLen, uint32_t *len);
62int32_t BSL_ASN1_DecodePrimitiveItem(BSL_ASN1_Buffer *asn,
void *decodeData);
74int32_t BSL_ASN1_DecodeItem(uint8_t **encode, uint32_t *encLen, BSL_ASN1_Buffer *asnItem);
85int32_t BSL_ASN1_GetCompleteLen(uint8_t *data, uint32_t *dataLen);
97int32_t BSL_ASN1_EncodeLimb(uint8_t tag, uint64_t limb, BSL_ASN1_Buffer *asn);
108int32_t BSL_ASN1_GetEncodeLen(uint32_t contentLen, uint32_t *encodeLen);
119int32_t BSL_ASN1_ToUtf8String(
const BSL_ASN1_Buffer *in, BSL_ASN1_Buffer *out);