From afee92e0cf6050f1414719c447d4c142d95d0e0b Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Tue, 19 Oct 2021 15:18:42 -0600 Subject: [PATCH] bail out when a bad alt name is found in the list of alt names --- certs/test/cert-ext-nc.cfg | 1 - certs/test/cert-ext-nc.der | Bin 1146 -> 1070 bytes certs/test/gen-ext-certs.sh | 1 - tests/api.c | 155 +++++++++++++++++++++++++++++++++++- wolfcrypt/src/asn.c | 12 +++ 5 files changed, 164 insertions(+), 5 deletions(-) diff --git a/certs/test/cert-ext-nc.cfg b/certs/test/cert-ext-nc.cfg index 9e8ff6be5..ce3757091 100644 --- a/certs/test/cert-ext-nc.cfg +++ b/certs/test/cert-ext-nc.cfg @@ -10,7 +10,6 @@ L = Brisbane O = wolfSSL Inc OU = Engineering CN = www.wolfssl.com -emailAddress = support@wolfsssl.com [ v3_ca ] subjectKeyIdentifier = hash diff --git a/certs/test/cert-ext-nc.der b/certs/test/cert-ext-nc.der index e16710d1ec0e58c265ac9ffd27c65b162d445383..a390dbfd32f8ba66411aa3c3cea3b70cfbbf7de1 100644 GIT binary patch delta 351 zcmeyxv5rI2povAxpov*%0W%XL6B8%H{$zjtj%G;}170>xtu~Lg@4SqR+^h@+)f3-V zD;da%^BNf%8W>s{85o-xnMaB98krcF8=6A7U{#xY8Q(J27cBVk%vos3vjV}C4M|I5 zURuZ0*)Cq(-LZ3v$Ju{6JWE%1>^Xk;qtXl0+_Pqv4D&uP9=U(+Vp;n9N-oAbg~D92 zHl@v{8T;#2n@b;1KF7iHRq0^gIi~Lu7TGP4oA8YNm?Eon&y1VTZ!#V-zaV}rc%ws* z_s*|3_FXIy{GD@7#^zzY<)_pPZJ(kOdHyq>I>&DKwfXmnO&xK^-Mx?8`q?<4NQFf} zF#Jz?Y+eF?O;YU6)+Jj$ukkLK>5@F-^K8jh=?2dyn_Xs|C<a$GRd7i27y&OWec6aYzIX|#{{;GFhwq>PAG_f=_juPiJ zGBz|cFo$v>X360Pv(9O5``0fTvC!~Yx~AzX>*)`qRIAobi{zYK zaDG}_+T7=@<*7YSEV2&<+2=@FTzqqC;WCXtm1Ru=o(tbw@SVK4ZsRIJ&dHnBvw9UT zFZ0M?OMUvzfb-kt%bO={483*RT=YZE9KY2QU-~I|zEEU5-8JF<*H!ho9=-K9+3V*$ zm~qtgrH?)1^g@=xFo#MuM$P?ltCJh%Uw*OiIa@R1j(nS%-6HW$s*jXg1Ly5iD)oIh zz4*_im669c2-Gewy7}W|iuVmcHc#7NmPC%!6Gv9B@8A#YE0FU(^zBGf(z{8bC3OnA j{nJi5owDHmm-uYname, name->len, base->name, base->nameSz); + + #ifndef WOLFSSL_NO_ASN_STRICT + /* found a bad name */ + if (matchDns == 0) + break; + #endif name = name->next; } break; @@ -13520,6 +13526,12 @@ static int ConfirmNameConstraints(Signer* signer, DecodedCert* cert) matchEmail = MatchBaseName(ASN_DNS_TYPE, name->name, name->len, base->name, base->nameSz); + + #ifndef WOLFSSL_NO_ASN_STRICT + /* found a bad name */ + if (matchEmail == 0) + break; + #endif name = name->next; } break;