From f00263889b97ba4a0d5894d41735de191b0ec316 Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Fri, 11 Dec 2020 08:20:48 +0700 Subject: [PATCH] add test case --- certs/test/cert-ext-ndir.cfg | 23 ++++++++++ certs/test/cert-ext-ndir.der | Bin 0 -> 1260 bytes certs/test/gen-ext-certs.sh | 34 +++++++++++++- certs/test/include.am | 2 + tests/api.c | 85 +++++++++++++++++++++++++++++++++++ wolfcrypt/src/asn.c | 11 ++++- 6 files changed, 153 insertions(+), 2 deletions(-) create mode 100644 certs/test/cert-ext-ndir.cfg create mode 100644 certs/test/cert-ext-ndir.der diff --git a/certs/test/cert-ext-ndir.cfg b/certs/test/cert-ext-ndir.cfg new file mode 100644 index 000000000..0757874d8 --- /dev/null +++ b/certs/test/cert-ext-ndir.cfg @@ -0,0 +1,23 @@ +[ req ] +distinguished_name = req_distinguished_name +prompt = no +x509_extensions = constraints + +[ req_distinguished_name ] +C = US +ST = Montana +L = Bozeman +O = Sawtooth +OU = Consulting +CN = www.wolfssl.com +emailAddress = info@wolfsssl.com + +[constraints] +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid:always,issuer:always +basicConstraints=CA:TRUE +nameConstraints=critical,permitted;dirName:dir_name + +[dir_name] +countryName = US + diff --git a/certs/test/cert-ext-ndir.der b/certs/test/cert-ext-ndir.der new file mode 100644 index 0000000000000000000000000000000000000000..63f566bfc02ba2e783f5231f39c4d8094570edbb GIT binary patch literal 1260 zcmXqLVtHZE#C%}^GZP~dlSqAq)Q_^4&D+ao6`4nB$Uj^XQ&4Nb%f_kI=F#?@mywa1 zmBFBKsv)-lCmVAp3!5-gXt1Gx0UwCN!NcyGpI4HYmk1MK=V5osuS(5L%rg`;;0LMU z;^7EREHBB=FUc?zHV^~}ar1CF=jRod=9FaSr5j2Zh=Bx|dHBoA%k|3hbJB{7bM%t) za}5;?ltHlwp{i7 z-iFfPDK@sJlB4H~ZoMoktS@=d=60FYnH{w!pB}n?%OU@U;+B@dH-UhnL?qs>i{pN9ZTIYJ6Sd>QJE=isY}Y3AI_ zFo*ZX+%Glaf+xARZtZUVebMDv_M7^HVwtxE6ymn7cG!LY>(@&@8+$UX)?IyEds+LE zo13)VA$3;I@H4k3KD#a$@$TMP 2>&1 @@ -96,3 +97,34 @@ nsComment = "Testing Netscape Certificate Type" EOF gen_cert +KEY=certs/ca-key.der +OUT=certs/test/cert-ext-ndir.der +KEYFILE=certs/ca-key.der +CONFIG=certs/test/cert-ext-ndir.cfg +tee >$CONFIG <heap, @@ -12717,7 +12722,11 @@ int FlattenAltNames(byte* output, word32 outputSz, const DNS_entry* names) curName = names; do { - output[idx++] = ASN_CONTEXT_SPECIFIC | curName->type; + output[idx] = ASN_CONTEXT_SPECIFIC | curName->type; + if (curName->type == ASN_DIR_TYPE) { + output[idx] |= ASN_CONSTRUCTED; + } + idx++; idx += SetLength(curName->len, output + idx); XMEMCPY(output + idx, curName->name, curName->len); idx += curName->len;