diff options
author | beck <> | 2022-11-10 16:52:19 +0000 |
---|---|---|
committer | beck <> | 2022-11-10 16:52:19 +0000 |
commit | 569fe027af42ce19d693b022725c4c2c733f6dda (patch) | |
tree | def88d90cd59c7335afd418e2515dab93c47c69a | |
parent | bd20ce990254afb9a42b5f0759a1e0c15541479b (diff) | |
download | openbsd-569fe027af42ce19d693b022725c4c2c733f6dda.tar.gz openbsd-569fe027af42ce19d693b022725c4c2c733f6dda.tar.bz2 openbsd-569fe027af42ce19d693b022725c4c2c733f6dda.zip |
Allow explicit cert trusts or distrusts for EKU any
This matches the current OpenSSL behaviour introduced
in their commit:
commit 0daccd4dc1f1ac62181738a91714f35472e50f3c
Date: Thu Jan 28 03:01:45 2016 -0500
ok jsing@ tb@
-rw-r--r-- | src/lib/libcrypto/x509/x509_trs.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/lib/libcrypto/x509/x509_trs.c b/src/lib/libcrypto/x509/x509_trs.c index 72d616a106..a967edf933 100644 --- a/src/lib/libcrypto/x509/x509_trs.c +++ b/src/lib/libcrypto/x509/x509_trs.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: x509_trs.c,v 1.25 2021/11/01 20:53:08 tb Exp $ */ | 1 | /* $OpenBSD: x509_trs.c,v 1.26 2022/11/10 16:52:19 beck Exp $ */ |
2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
3 | * project 1999. | 3 | * project 1999. |
4 | */ | 4 | */ |
@@ -322,7 +322,7 @@ static int | |||
322 | obj_trust(int id, X509 *x, int flags) | 322 | obj_trust(int id, X509 *x, int flags) |
323 | { | 323 | { |
324 | ASN1_OBJECT *obj; | 324 | ASN1_OBJECT *obj; |
325 | int i; | 325 | int i, nid; |
326 | X509_CERT_AUX *ax; | 326 | X509_CERT_AUX *ax; |
327 | 327 | ||
328 | ax = x->aux; | 328 | ax = x->aux; |
@@ -331,14 +331,16 @@ obj_trust(int id, X509 *x, int flags) | |||
331 | if (ax->reject) { | 331 | if (ax->reject) { |
332 | for (i = 0; i < sk_ASN1_OBJECT_num(ax->reject); i++) { | 332 | for (i = 0; i < sk_ASN1_OBJECT_num(ax->reject); i++) { |
333 | obj = sk_ASN1_OBJECT_value(ax->reject, i); | 333 | obj = sk_ASN1_OBJECT_value(ax->reject, i); |
334 | if (OBJ_obj2nid(obj) == id) | 334 | nid = OBJ_obj2nid(obj); |
335 | if (nid == id || nid == NID_anyExtendedKeyUsage) | ||
335 | return X509_TRUST_REJECTED; | 336 | return X509_TRUST_REJECTED; |
336 | } | 337 | } |
337 | } | 338 | } |
338 | if (ax->trust) { | 339 | if (ax->trust) { |
339 | for (i = 0; i < sk_ASN1_OBJECT_num(ax->trust); i++) { | 340 | for (i = 0; i < sk_ASN1_OBJECT_num(ax->trust); i++) { |
340 | obj = sk_ASN1_OBJECT_value(ax->trust, i); | 341 | obj = sk_ASN1_OBJECT_value(ax->trust, i); |
341 | if (OBJ_obj2nid(obj) == id) | 342 | nid = OBJ_obj2nid(obj); |
343 | if (nid == id || nid == NID_anyExtendedKeyUsage) | ||
342 | return X509_TRUST_TRUSTED; | 344 | return X509_TRUST_TRUSTED; |
343 | } | 345 | } |
344 | } | 346 | } |