15#ifndef BSL_PEM_INTERNAL_H
16#define BSL_PEM_INTERNAL_H
18#include "hitls_build.h"
27#define BSL_PEM_CERT_BEGIN_STR "-----BEGIN CERTIFICATE-----"
28#define BSL_PEM_CERT_END_STR "-----END CERTIFICATE-----"
30#define BSL_PEM_CRL_BEGIN_STR "-----BEGIN X509 CRL-----"
31#define BSL_PEM_CRL_END_STR "-----END X509 CRL-----"
33#define BSL_PEM_PUB_KEY_BEGIN_STR "-----BEGIN PUBLIC KEY-----"
34#define BSL_PEM_PUB_KEY_END_STR "-----END PUBLIC KEY-----"
36#define BSL_PEM_RSA_PUB_KEY_BEGIN_STR "-----BEGIN RSA PUBLIC KEY-----"
37#define BSL_PEM_RSA_PUB_KEY_END_STR "-----END RSA PUBLIC KEY-----"
39#define BSL_PEM_RSA_PRI_KEY_BEGIN_STR "-----BEGIN RSA PRIVATE KEY-----"
40#define BSL_PEM_RSA_PRI_KEY_END_STR "-----END RSA PRIVATE KEY-----"
43#define BSL_PEM_EC_PRI_KEY_BEGIN_STR "-----BEGIN EC PRIVATE KEY-----"
44#define BSL_PEM_EC_PRI_KEY_END_STR "-----END EC PRIVATE KEY-----"
47#define BSL_PEM_PRI_KEY_BEGIN_STR "-----BEGIN PRIVATE KEY-----"
48#define BSL_PEM_PRI_KEY_END_STR "-----END PRIVATE KEY-----"
51#define BSL_PEM_P8_PRI_KEY_BEGIN_STR "-----BEGIN ENCRYPTED PRIVATE KEY-----"
52#define BSL_PEM_P8_PRI_KEY_END_STR "-----END ENCRYPTED PRIVATE KEY-----"
54#define BSL_PEM_CERT_REQ_BEGIN_STR "-----BEGIN CERTIFICATE REQUEST-----"
55#define BSL_PEM_CERT_REQ_END_STR "-----END CERTIFICATE REQUEST-----"
58bool BSL_PEM_IsPemFormat(
char *encode, uint32_t encodeLen);
60int32_t BSL_PEM_GetAsn1Encode(
const char *encode,
const uint32_t encodeLen, uint8_t **asn1Encode, uint32_t *asn1Len);
67int32_t BSL_PEM_EncodeAsn1ToPem(uint8_t *asn1Encode, uint32_t asn1Len, BSL_PEM_Symbol *symbol,
68 char **encode, uint32_t *encodeLen);
71int32_t BSL_PEM_DecodePemToAsn1(
char **encode, uint32_t *encodeLen, BSL_PEM_Symbol *symbol, uint8_t **asn1Encode,
74int32_t BSL_PEM_GetPemRealEncode(
char **encode, uint32_t *encodeLen, BSL_PEM_Symbol *symbol,
char **realEncode,
77int32_t BSL_PEM_GetSymbolAndType(
char *encode, uint32_t encodeLen, BSL_PEM_Symbol *symbol,
const char **type);