From 01dc018cda508622e1753907c6a0324c40e0a4ba Mon Sep 17 00:00:00 2001 From: Eric Blankenhorn Date: Tue, 11 Sep 2018 10:41:12 -0500 Subject: [PATCH] Make DecodedCert elements available with WOLFSSL_CERT_EXT --- wolfcrypt/src/asn.c | 7 +++++++ wolfssl/wolfcrypt/asn.h | 4 ++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/wolfcrypt/src/asn.c b/wolfcrypt/src/asn.c index 1666885d7..3e275185e 100644 --- a/wolfcrypt/src/asn.c +++ b/wolfcrypt/src/asn.c @@ -4264,6 +4264,13 @@ static int GetName(DecodedCert* cert, int nameType) } else if (id == ASN_SERIAL_NUMBER) { copy = WOLFSSL_SERIAL_NUMBER; + #ifdef WOLFSSL_CERT_GEN + if (nameType == SUBJECT) { + cert->subjectSND = (char*)&cert->source[cert->srcIdx]; + cert->subjectSNDLen = strLen; + cert->subjectSNDEnc = b; + } + #endif /* WOLFSSL_CERT_GEN */ #if defined(OPENSSL_EXTRA) || defined(OPENSSL_EXTRA_X509_SMALL) dName->snIdx = cert->srcIdx; dName->snLen = strLen; diff --git a/wolfssl/wolfcrypt/asn.h b/wolfssl/wolfcrypt/asn.h index 7c9b3cb59..9782ab527 100644 --- a/wolfssl/wolfcrypt/asn.h +++ b/wolfssl/wolfcrypt/asn.h @@ -681,7 +681,7 @@ struct DecodedCert { byte* subjectRaw; /* pointer to subject inside source */ int subjectRawLen; #endif -#ifdef WOLFSSL_CERT_GEN +#if defined(WOLFSSL_CERT_GEN) || defined(WOLFSSL_CERT_EXT) /* easy access to subject info for other sign */ char* subjectSN; int subjectSNLen; @@ -733,7 +733,7 @@ struct DecodedCert { #ifdef WOLFSSL_CERT_EXT char extCertPolicies[MAX_CERTPOL_NB][MAX_CERTPOL_SZ]; int extCertPoliciesNb; -#endif /* WOLFSSL_CERT_EXT */ +#endif /* defined(WOLFSSL_CERT_GEN) || defined(WOLFSSL_CERT_EXT) */ Signer* ca; SignatureCtx sigCtx;