diff options
| author | jsing <> | 2022-05-09 19:19:33 +0000 |
|---|---|---|
| committer | jsing <> | 2022-05-09 19:19:33 +0000 |
| commit | affd849ffb55c61005447fc830be63be639e6e82 (patch) | |
| tree | 44e4aa3383529610dcee9721a51440056792b424 /src/lib/libcrypto/pkcs7/pk7_doit.c | |
| parent | 8ce75307b6eeae36eef3a3458c5163787c3d2fb7 (diff) | |
| download | openbsd-affd849ffb55c61005447fc830be63be639e6e82.tar.gz openbsd-affd849ffb55c61005447fc830be63be639e6e82.tar.bz2 openbsd-affd849ffb55c61005447fc830be63be639e6e82.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/pk7_doit.c')
| -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 | } |
