mirror of https://github.com/wolfSSL/wolfssl
Cleanup of the ASN X509 header and XSTRNCPY logic.
This commit is contained in:
parent
e95fa69a9b
commit
57e9b3c994
|
@ -7264,40 +7264,42 @@ WOLFSSL_LOCAL int GetSerialNumber(const byte* input, word32* inOutIdx,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Max X509 header length indicates the max length + 2 ('\n', '\0') */
|
||||||
|
#define MAX_X509_HEADER_SZ (37 + 2)
|
||||||
|
|
||||||
const char* const BEGIN_CERT = "-----BEGIN CERTIFICATE-----";
|
const char* const BEGIN_CERT = "-----BEGIN CERTIFICATE-----";
|
||||||
const char* const END_CERT = "-----END CERTIFICATE-----";
|
const char* const END_CERT = "-----END CERTIFICATE-----";
|
||||||
#ifdef WOLFSSL_CERT_REQ
|
#ifdef WOLFSSL_CERT_REQ
|
||||||
const char* const BEGIN_CERT_REQ = "-----BEGIN CERTIFICATE REQUEST-----";
|
const char* const BEGIN_CERT_REQ = "-----BEGIN CERTIFICATE REQUEST-----";
|
||||||
const char* const END_CERT_REQ = "-----END CERTIFICATE REQUEST-----";
|
const char* const END_CERT_REQ = "-----END CERTIFICATE REQUEST-----";
|
||||||
#endif
|
#endif
|
||||||
#ifndef NO_DH
|
#ifndef NO_DH
|
||||||
const char* const BEGIN_DH_PARAM = "-----BEGIN DH PARAMETERS-----";
|
const char* const BEGIN_DH_PARAM = "-----BEGIN DH PARAMETERS-----";
|
||||||
const char* const END_DH_PARAM = "-----END DH PARAMETERS-----";
|
const char* const END_DH_PARAM = "-----END DH PARAMETERS-----";
|
||||||
#endif
|
#endif
|
||||||
#ifndef NO_DSA
|
#ifndef NO_DSA
|
||||||
const char* const BEGIN_DSA_PARAM = "-----BEGIN DSA PARAMETERS-----";
|
const char* const BEGIN_DSA_PARAM = "-----BEGIN DSA PARAMETERS-----";
|
||||||
const char* const END_DSA_PARAM = "-----END DSA PARAMETERS-----";
|
const char* const END_DSA_PARAM = "-----END DSA PARAMETERS-----";
|
||||||
#endif
|
#endif
|
||||||
const char* const BEGIN_X509_CRL = "-----BEGIN X509 CRL-----";
|
const char* const BEGIN_X509_CRL = "-----BEGIN X509 CRL-----";
|
||||||
const char* const END_X509_CRL = "-----END X509 CRL-----";
|
const char* const END_X509_CRL = "-----END X509 CRL-----";
|
||||||
const char* const BEGIN_RSA_PRIV = "-----BEGIN RSA PRIVATE KEY-----";
|
const char* const BEGIN_RSA_PRIV = "-----BEGIN RSA PRIVATE KEY-----";
|
||||||
const char* const END_RSA_PRIV = "-----END RSA PRIVATE KEY-----";
|
const char* const END_RSA_PRIV = "-----END RSA PRIVATE KEY-----";
|
||||||
const char* const BEGIN_PRIV_KEY = "-----BEGIN PRIVATE KEY-----";
|
const char* const BEGIN_PRIV_KEY = "-----BEGIN PRIVATE KEY-----";
|
||||||
const char* const END_PRIV_KEY = "-----END PRIVATE KEY-----";
|
const char* const END_PRIV_KEY = "-----END PRIVATE KEY-----";
|
||||||
const char* const BEGIN_ENC_PRIV_KEY = "-----BEGIN ENCRYPTED PRIVATE KEY-----";
|
const char* const BEGIN_ENC_PRIV_KEY = "-----BEGIN ENCRYPTED PRIVATE KEY-----";
|
||||||
const char* const END_ENC_PRIV_KEY = "-----END ENCRYPTED PRIVATE KEY-----";
|
const char* const END_ENC_PRIV_KEY = "-----END ENCRYPTED PRIVATE KEY-----";
|
||||||
#ifdef HAVE_ECC
|
#ifdef HAVE_ECC
|
||||||
const char* const BEGIN_EC_PRIV = "-----BEGIN EC PRIVATE KEY-----";
|
const char* const BEGIN_EC_PRIV = "-----BEGIN EC PRIVATE KEY-----";
|
||||||
const char* const END_EC_PRIV = "-----END EC PRIVATE KEY-----";
|
const char* const END_EC_PRIV = "-----END EC PRIVATE KEY-----";
|
||||||
#endif
|
#endif
|
||||||
const char* const BEGIN_DSA_PRIV = "-----BEGIN DSA PRIVATE KEY-----";
|
const char* const BEGIN_DSA_PRIV = "-----BEGIN DSA PRIVATE KEY-----";
|
||||||
const char* const END_DSA_PRIV = "-----END DSA PRIVATE KEY-----";
|
const char* const END_DSA_PRIV = "-----END DSA PRIVATE KEY-----";
|
||||||
const char* const BEGIN_PUB_KEY = "-----BEGIN PUBLIC KEY-----";
|
const char* const BEGIN_PUB_KEY = "-----BEGIN PUBLIC KEY-----";
|
||||||
const char* const END_PUB_KEY = "-----END PUBLIC KEY-----";
|
const char* const END_PUB_KEY = "-----END PUBLIC KEY-----";
|
||||||
#ifdef HAVE_ED25519
|
#ifdef HAVE_ED25519
|
||||||
const char* const BEGIN_EDDSA_PRIV = "-----BEGIN EDDSA PRIVATE KEY-----";
|
const char* const BEGIN_EDDSA_PRIV = "-----BEGIN EDDSA PRIVATE KEY-----";
|
||||||
const char* const END_EDDSA_PRIV = "-----END EDDSA PRIVATE KEY-----";
|
const char* const END_EDDSA_PRIV = "-----END EDDSA PRIVATE KEY-----";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(WOLFSSL_KEY_GEN) || defined(WOLFSSL_CERT_GEN) || defined(OPENSSL_EXTRA)
|
#if defined(WOLFSSL_KEY_GEN) || defined(WOLFSSL_CERT_GEN) || defined(OPENSSL_EXTRA)
|
||||||
|
@ -7314,16 +7316,15 @@ int wc_DerToPem(const byte* der, word32 derSz,
|
||||||
int wc_DerToPemEx(const byte* der, word32 derSz, byte* output, word32 outSz,
|
int wc_DerToPemEx(const byte* der, word32 derSz, byte* output, word32 outSz,
|
||||||
byte *cipher_info, int type)
|
byte *cipher_info, int type)
|
||||||
{
|
{
|
||||||
|
int headerLen = MAX_X509_HEADER_SZ + HEADER_ENCRYPTED_KEY_SIZE;
|
||||||
|
int footerLen = MAX_X509_HEADER_SZ;
|
||||||
#ifdef WOLFSSL_SMALL_STACK
|
#ifdef WOLFSSL_SMALL_STACK
|
||||||
char* header = NULL;
|
char* header = NULL;
|
||||||
char* footer = NULL;
|
char* footer = NULL;
|
||||||
#else
|
#else
|
||||||
char header[40 + HEADER_ENCRYPTED_KEY_SIZE];
|
char header[headerLen];
|
||||||
char footer[40];
|
char footer[footerLen];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int headerLen = 40 + HEADER_ENCRYPTED_KEY_SIZE;
|
|
||||||
int footerLen = 40;
|
|
||||||
int i;
|
int i;
|
||||||
int err;
|
int err;
|
||||||
int outLen; /* return length or error */
|
int outLen; /* return length or error */
|
||||||
|
@ -7344,10 +7345,8 @@ int wc_DerToPemEx(const byte* der, word32 derSz, byte* output, word32 outSz,
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* null term and leave room for \n */
|
/* null term and leave room for \n */
|
||||||
header[headerLen-1] = '\0';
|
header[--headerLen] = '\0';
|
||||||
footer[footerLen-1] = '\0';
|
footer[--footerLen] = '\0';
|
||||||
headerLen -= 2;
|
|
||||||
footerLen -= 2;
|
|
||||||
|
|
||||||
if (type == CERT_TYPE) {
|
if (type == CERT_TYPE) {
|
||||||
XSTRNCPY(header, BEGIN_CERT, headerLen);
|
XSTRNCPY(header, BEGIN_CERT, headerLen);
|
||||||
|
|
Loading…
Reference in New Issue