Make subj alt name order match openSSL (#4406)

This commit is contained in:
Eric Blankenhorn
2021-09-21 19:29:57 -05:00
committed by GitHub
parent df30a88dc6
commit e6e7795140
2 changed files with 62 additions and 41 deletions

View File

@@ -34383,9 +34383,9 @@ static void test_wolfSSL_X509_sign2(void)
0x6C, 0x30, 0x0C, 0x06, 0x03, 0x55, 0x1D, 0x13,
0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xFF, 0x30,
0x1C, 0x06, 0x03, 0x55, 0x1D, 0x11, 0x04, 0x15,
0x30, 0x13, 0x87, 0x04, 0x7F, 0x00, 0x00, 0x01,
0x82, 0x0B, 0x65, 0x78, 0x61, 0x6D, 0x70, 0x6C,
0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x30, 0x1D, 0x06,
0x30, 0x13, 0x82, 0x0B, 0x65, 0x78, 0x61, 0x6D,
0x70, 0x6C, 0x65, 0x2E, 0x63, 0x6F, 0x6D, 0x87,
0x04, 0x7F, 0x00, 0x00, 0x01, 0x30, 0x1D, 0x06,
0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14,
0x33, 0xD8, 0x45, 0x66, 0xD7, 0x68, 0x87, 0x18,
0x7E, 0x54, 0x0D, 0x70, 0x27, 0x91, 0xC7, 0x26,
@@ -34396,38 +34396,39 @@ static void test_wolfSSL_X509_sign2(void)
0x26, 0xD7, 0x85, 0x65, 0xC0, 0x30, 0x0D, 0x06,
0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01,
0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01,
0x00, 0x19, 0xE7, 0xD0, 0x9A, 0xF9, 0x90, 0xAA,
0xAD, 0x63, 0x58, 0x21, 0x38, 0xA2, 0x4D, 0x30,
0x9A, 0x6F, 0x88, 0x9E, 0x9B, 0xFB, 0xDE, 0x73,
0xF2, 0x38, 0xFC, 0x7E, 0x60, 0xC5, 0xFA, 0xBB,
0x64, 0xA0, 0xD2, 0xC0, 0xBD, 0xB6, 0x4A, 0xAC,
0x38, 0x90, 0xF5, 0xEE, 0xEC, 0x43, 0x90, 0x7D,
0x5B, 0xF0, 0x22, 0xA0, 0xAC, 0x59, 0x10, 0xE2,
0x8D, 0x16, 0xDA, 0x3A, 0xAB, 0x0F, 0x94, 0x11,
0x6C, 0x0C, 0x61, 0xC1, 0xFD, 0xB5, 0xA3, 0xFC,
0xE7, 0xFD, 0x0C, 0x63, 0x20, 0xE5, 0x00, 0xCE,
0xFD, 0xEE, 0x21, 0xE1, 0xE1, 0x9D, 0x48, 0x9B,
0x71, 0x9C, 0x80, 0x39, 0x5E, 0x5A, 0xD3, 0x32,
0xA6, 0xAC, 0x3F, 0x84, 0x8C, 0xB6, 0xBC, 0x70,
0x90, 0xE9, 0xC1, 0x0F, 0xAB, 0xA5, 0x97, 0xD4,
0xE0, 0x8E, 0x3B, 0xBB, 0x02, 0xE0, 0xED, 0xB0,
0x10, 0xE8, 0x3F, 0x49, 0xD2, 0x46, 0x4E, 0xE7,
0x72, 0x0F, 0x1A, 0xFD, 0xE4, 0x59, 0x84, 0x24,
0xA9, 0x7B, 0x9D, 0x8E, 0x8C, 0xBC, 0xEA, 0xD1,
0x04, 0x1F, 0xC6, 0x30, 0x47, 0xBD, 0xCC, 0xD1,
0xBC, 0x87, 0x00, 0xB5, 0x23, 0x3C, 0x60, 0x8F,
0xB2, 0xDB, 0x71, 0xD2, 0xF5, 0xBA, 0xEB, 0xB1,
0xD0, 0x53, 0xAC, 0x2E, 0x2C, 0xA5, 0x5D, 0x41,
0xCD, 0x9B, 0x4F, 0x8B, 0x41, 0xA1, 0x5D, 0x8E,
0xD9, 0x89, 0x5B, 0x5C, 0x58, 0x1C, 0x4A, 0xE6,
0x22, 0xC8, 0x15, 0x2D, 0x8E, 0x24, 0x48, 0xF8,
0xB2, 0x3C, 0x7A, 0x72, 0x62, 0xEC, 0xB2, 0x76,
0xAD, 0x3D, 0x42, 0x29, 0xE9, 0x3B, 0x4E, 0x7F,
0x06, 0xA4, 0xA4, 0x72, 0x55, 0xDD, 0x1C, 0x69,
0x5E, 0x2B, 0x7E, 0xB7, 0x7C, 0xBD, 0xF6, 0x2F,
0xC9, 0x9A, 0x33, 0x31, 0xD9, 0x92, 0x32, 0xB6,
0x60, 0x4D, 0x8F, 0x5B, 0xF2, 0xAE, 0xD5, 0x72,
0x88, 0x92, 0x75, 0xC4, 0xDC, 0xBD, 0x0B, 0xB8, 0x9D
0x00, 0x79, 0x81, 0x5D, 0xAB, 0xDB, 0x44, 0x70,
0xD6, 0x39, 0x4F, 0xA6, 0xBA, 0x09, 0x99, 0xBB,
0xCB, 0x82, 0xF9, 0x17, 0x34, 0xBD, 0x3E, 0xB1,
0x18, 0xA8, 0xF9, 0x10, 0x16, 0x2A, 0xE0, 0x74,
0xC6, 0xCF, 0xB3, 0x5F, 0xC6, 0x2C, 0xFB, 0xE3,
0x5D, 0x38, 0x2B, 0x99, 0x02, 0x98, 0x9D, 0x55,
0x95, 0x65, 0xC3, 0xEB, 0x77, 0x13, 0xA0, 0x75,
0x35, 0x68, 0x1F, 0x08, 0xE8, 0x82, 0x3E, 0xF1,
0xEF, 0x4B, 0xE7, 0x6E, 0xAD, 0xC1, 0x7C, 0x57,
0xCE, 0xF5, 0x24, 0x4E, 0x2F, 0xC4, 0xF7, 0x46,
0xED, 0x0E, 0x27, 0x1D, 0xD2, 0x12, 0x5D, 0x9A,
0xE5, 0x82, 0xB8, 0x92, 0x42, 0x8F, 0x9E, 0x4D,
0x9B, 0x31, 0x85, 0x2E, 0xE0, 0x5E, 0x83, 0xFB,
0xA4, 0x33, 0x32, 0x34, 0x2A, 0xAD, 0x38, 0x7A,
0x6D, 0xD5, 0x02, 0xAE, 0x77, 0xCB, 0x26, 0x76,
0x7B, 0xFA, 0xE0, 0x91, 0x9B, 0x6F, 0xF4, 0xC4,
0xA1, 0x54, 0xB1, 0x13, 0x80, 0x6E, 0xFB, 0x70,
0x4C, 0x7F, 0x4F, 0x58, 0x39, 0xFA, 0x5B, 0x3D,
0x60, 0x63, 0xDF, 0xEF, 0x90, 0xB3, 0x9B, 0x9A,
0xEE, 0x8E, 0x34, 0xFB, 0x8B, 0x75, 0x5F, 0xC7,
0xE4, 0xDB, 0x7C, 0x63, 0x84, 0xE4, 0x6C, 0xC7,
0xD8, 0xC8, 0xA9, 0xA4, 0x42, 0x64, 0x93, 0x65,
0x17, 0x58, 0xC2, 0x51, 0x3E, 0x8E, 0x2A, 0x68,
0x37, 0xC6, 0x59, 0x75, 0x68, 0xD4, 0x16, 0x6A,
0x17, 0x87, 0xC0, 0xA8, 0x9A, 0x1F, 0x07, 0xCF,
0x43, 0x58, 0xF4, 0xEA, 0xFE, 0xFB, 0xB2, 0x3F,
0x7E, 0xC0, 0xF4, 0x83, 0x67, 0x85, 0x30, 0xF2,
0xE1, 0x60, 0x37, 0x39, 0x45, 0x2A, 0x21, 0x51,
0x0C, 0x4F, 0xFB, 0x0C, 0x0A, 0xFA, 0x7D, 0xD9,
0xB4, 0x72, 0x86, 0x9C, 0x0D, 0x2A, 0x25, 0x0E,
0xBB, 0x45, 0xEC, 0x5D, 0xFB, 0x7A, 0xAA, 0x67,
0x49, 0x4F, 0x36, 0xAB, 0xDE, 0x4B, 0x57, 0x35,
0xF3
};
printf(testingFmt, "wolfSSL_X509_sign2");

View File

@@ -13878,6 +13878,29 @@ static const ASNItem altNameASN[] = {
#define altNameASN_Length (sizeof(altNameASN) / sizeof(ASNItem))
#endif /* WOLFSSL_ASN_TEMPLATE */
static void AddAltName(DecodedCert* cert, DNS_entry* dnsEntry)
{
#if defined(OPENSSL_EXTRA) && !defined(WOLFSSL_ALT_NAMES_NO_REV)
dnsEntry->next = NULL;
if (cert->altNames == NULL) {
/* First on list */
cert->altNames = dnsEntry;
}
else {
DNS_entry* temp = cert->altNames;
/* Find end */
for (; (temp->next != NULL); temp = temp->next);
/* Add to end */
temp->next = dnsEntry;
}
#else
dnsEntry->next = cert->altNames;
cert->altNames = dnsEntry;
#endif
}
/* Decode subject alternative names extension.
*
* RFC 5280 4.2.1.6. Subject Alternative Name
@@ -13956,8 +13979,7 @@ static int DecodeAltNames(const byte* input, int sz, DecodedCert* cert)
XMEMCPY(dnsEntry->name, &input[idx], strLen);
dnsEntry->name[strLen] = '\0';
dnsEntry->next = cert->altNames;
cert->altNames = dnsEntry;
AddAltName(cert, dnsEntry);
length -= strLen;
idx += strLen;
@@ -14104,8 +14126,7 @@ static int DecodeAltNames(const byte* input, int sz, DecodedCert* cert)
XMEMCPY(uriEntry->name, &input[idx], strLen);
uriEntry->name[strLen] = '\0';
uriEntry->next = cert->altNames;
cert->altNames = uriEntry;
AddAltName(cert, uriEntry);
length -= strLen;
idx += strLen;
@@ -14146,8 +14167,7 @@ static int DecodeAltNames(const byte* input, int sz, DecodedCert* cert)
XMEMCPY(ipAddr->name, &input[idx], strLen);
ipAddr->name[strLen] = '\0';
ipAddr->next = cert->altNames;
cert->altNames = ipAddr;
AddAltName(cert, ipAddr);
length -= strLen;
idx += strLen;