summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/pkcs7
diff options
context:
space:
mode:
authorjsing <>2022-05-09 19:19:33 +0000
committerjsing <>2022-05-09 19:19:33 +0000
commit295acdc1d1b92f8bf9f9e729590d5598c3bd0333 (patch)
tree44e4aa3383529610dcee9721a51440056792b424 /src/lib/libcrypto/pkcs7
parent8cd405b40cda8503a806224763bb295465187159 (diff)
downloadopenbsd-295acdc1d1b92f8bf9f9e729590d5598c3bd0333.tar.gz
openbsd-295acdc1d1b92f8bf9f9e729590d5598c3bd0333.tar.bz2
openbsd-295acdc1d1b92f8bf9f9e729590d5598c3bd0333.zip
Simplify X509_ATTRIBUTE ASN.1 encoding.
For some unknown historical reason, X509_ATTRIBUTE allows for a single ASN.1 value or an ASN.1 SET OF, rather than requiring an ASN.1 SET OF. Simplify encoding and remove support for single values - this is similar to OpenSSL e20b57270dec. This removes the last use of COMBINE in the ASN.1 decoder. ok tb@
Diffstat (limited to 'src/lib/libcrypto/pkcs7')
-rw-r--r--src/lib/libcrypto/pkcs7/pk7_doit.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/lib/libcrypto/pkcs7/pk7_doit.c b/src/lib/libcrypto/pkcs7/pk7_doit.c
index c9d64bcf34..b314069610 100644
--- a/src/lib/libcrypto/pkcs7/pk7_doit.c
+++ b/src/lib/libcrypto/pkcs7/pk7_doit.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: pk7_doit.c,v 1.46 2021/12/12 21:30:14 tb Exp $ */ 1/* $OpenBSD: pk7_doit.c,v 1.47 2022/05/09 19:19:33 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -1129,12 +1129,8 @@ get_attribute(STACK_OF(X509_ATTRIBUTE) *sk, int nid)
1129 return (NULL); 1129 return (NULL);
1130 for (i = 0; i < sk_X509_ATTRIBUTE_num(sk); i++) { 1130 for (i = 0; i < sk_X509_ATTRIBUTE_num(sk); i++) {
1131 xa = sk_X509_ATTRIBUTE_value(sk, i); 1131 xa = sk_X509_ATTRIBUTE_value(sk, i);
1132 if (OBJ_cmp(xa->object, o) == 0) { 1132 if (OBJ_cmp(xa->object, o) == 0)
1133 if (!xa->single && sk_ASN1_TYPE_num(xa->value.set)) 1133 return (sk_ASN1_TYPE_value(xa->set, 0));
1134 return (sk_ASN1_TYPE_value(xa->value.set, 0));
1135 else
1136 return (NULL);
1137 }
1138 } 1134 }
1139 return (NULL); 1135 return (NULL);
1140} 1136}