From 842dba7946fadbd9b5ba035bd34f5081f62313e1 Mon Sep 17 00:00:00 2001 From: Juliusz Sosinowicz Date: Thu, 21 Oct 2021 10:49:13 +0200 Subject: [PATCH] Put address and postal code in `WOLFSSL_CERT_EXT` --- wolfcrypt/src/asn.c | 34 +++++++++++++++++----------------- wolfssl/wolfcrypt/asn.h | 8 ++++---- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/wolfcrypt/src/asn.c b/wolfcrypt/src/asn.c index 2461e6537..864419def 100644 --- a/wolfcrypt/src/asn.c +++ b/wolfcrypt/src/asn.c @@ -10883,22 +10883,6 @@ static int GetCertName(DecodedCert* cert, char* full, byte* hash, int nameType, nid = NID_stateOrProvinceName; #endif /* OPENSSL_EXTRA */ } - else if (id == ASN_STREET_ADDR) { - copy = WOLFSSL_STREET_ADDR_NAME; - copyLen = sizeof(WOLFSSL_STREET_ADDR_NAME) - 1; - #ifdef WOLFSSL_CERT_GEN - if (nameType == SUBJECT) { - cert->subjectStreet = (char*)&input[srcIdx]; - cert->subjectStreetLen = strLen; - cert->subjectStreetEnc = b; - } - #endif /* WOLFSSL_CERT_GEN */ - #if (defined(OPENSSL_EXTRA) || \ - defined(OPENSSL_EXTRA_X509_SMALL)) \ - && !defined(WOLFCRYPT_ONLY) - nid = NID_streetAddress; - #endif /* OPENSSL_EXTRA */ - } else if (id == ASN_ORG_NAME) { copy = WOLFSSL_ORG_NAME; copyLen = sizeof(WOLFSSL_ORG_NAME) - 1; @@ -10948,6 +10932,22 @@ static int GetCertName(DecodedCert* cert, char* full, byte* hash, int nameType, #endif /* OPENSSL_EXTRA */ } #ifdef WOLFSSL_CERT_EXT + else if (id == ASN_STREET_ADDR) { + copy = WOLFSSL_STREET_ADDR_NAME; + copyLen = sizeof(WOLFSSL_STREET_ADDR_NAME) - 1; + #ifdef WOLFSSL_CERT_GEN + if (nameType == SUBJECT) { + cert->subjectStreet = (char*)&input[srcIdx]; + cert->subjectStreetLen = strLen; + cert->subjectStreetEnc = b; + } + #endif /* WOLFSSL_CERT_GEN */ + #if (defined(OPENSSL_EXTRA) || \ + defined(OPENSSL_EXTRA_X509_SMALL)) \ + && !defined(WOLFCRYPT_ONLY) + nid = NID_streetAddress; + #endif /* OPENSSL_EXTRA */ + } else if (id == ASN_BUS_CAT) { copy = WOLFSSL_BUS_CAT; copyLen = sizeof(WOLFSSL_BUS_CAT) - 1; @@ -10963,7 +10963,6 @@ static int GetCertName(DecodedCert* cert, char* full, byte* hash, int nameType, nid = NID_businessCategory; #endif /* OPENSSL_EXTRA */ } - #endif /* WOLFSSL_CERT_EXT */ else if (id == ASN_POSTAL_CODE) { copy = WOLFSSL_POSTAL_NAME; copyLen = sizeof(WOLFSSL_POSTAL_NAME) - 1; @@ -10980,6 +10979,7 @@ static int GetCertName(DecodedCert* cert, char* full, byte* hash, int nameType, nid = NID_postalCode; #endif /* OPENSSL_EXTRA */ } + #endif /* WOLFSSL_CERT_EXT */ } #ifdef WOLFSSL_CERT_EXT else if ((srcIdx + ASN_JOI_PREFIX_SZ + 2 <= (word32)maxIdx) && diff --git a/wolfssl/wolfcrypt/asn.h b/wolfssl/wolfcrypt/asn.h index a4c1829cc..13292b3b0 100644 --- a/wolfssl/wolfcrypt/asn.h +++ b/wolfssl/wolfcrypt/asn.h @@ -1482,9 +1482,6 @@ struct DecodedCert { char* subjectST; int subjectSTLen; char subjectSTEnc; - char* subjectStreet; - int subjectStreetLen; - char subjectStreetEnc; char* subjectO; int subjectOLen; char subjectOEnc; @@ -1495,6 +1492,9 @@ struct DecodedCert { int subjectSNDLen; char subjectSNDEnc; #ifdef WOLFSSL_CERT_EXT + char* subjectStreet; + int subjectStreetLen; + char subjectStreetEnc; char* subjectBC; int subjectBCLen; char subjectBCEnc; @@ -1504,10 +1504,10 @@ struct DecodedCert { char* subjectJS; int subjectJSLen; char subjectJSEnc; -#endif char* subjectPC; int subjectPCLen; char subjectPCEnc; +#endif char* subjectEmail; int subjectEmailLen; #endif /* defined(WOLFSSL_CERT_GEN) || defined(WOLFSSL_CERT_EXT) */