diff options
author | jsing <> | 2022-05-09 19:19:33 +0000 |
---|---|---|
committer | jsing <> | 2022-05-09 19:19:33 +0000 |
commit | 295acdc1d1b92f8bf9f9e729590d5598c3bd0333 (patch) | |
tree | 44e4aa3383529610dcee9721a51440056792b424 /src/lib/libcrypto/pkcs7 | |
parent | 8cd405b40cda8503a806224763bb295465187159 (diff) | |
download | openbsd-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.c | 10 |
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 | } |