summaryrefslogtreecommitdiffstats
path: root/lib/libssl/src
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libssl/src')
-rw-r--r--lib/libssl/src/crypto/asn1/x_attrib.c62
1 files changed, 53 insertions, 9 deletions
diff --git a/lib/libssl/src/crypto/asn1/x_attrib.c b/lib/libssl/src/crypto/asn1/x_attrib.c
index 9c00906dedc..bb74a1b6c71 100644
--- a/lib/libssl/src/crypto/asn1/x_attrib.c
+++ b/lib/libssl/src/crypto/asn1/x_attrib.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: x_attrib.c,v 1.12 2015/02/10 05:25:45 jsing Exp $ */
+/* $OpenBSD: x_attrib.c,v 1.13 2015/02/14 14:56:45 jsing Exp $ */
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
* All rights reserved.
*
@@ -82,16 +82,60 @@
* SET OF structure.
*/
-ASN1_CHOICE(X509_ATTRIBUTE_SET) = {
- ASN1_SET_OF(X509_ATTRIBUTE, value.set, ASN1_ANY),
- ASN1_SIMPLE(X509_ATTRIBUTE, value.single, ASN1_ANY)
-} ASN1_CHOICE_END_selector(X509_ATTRIBUTE, X509_ATTRIBUTE_SET, single)
+static const ASN1_TEMPLATE X509_ATTRIBUTE_SET_ch_tt[] = {
+ {
+ .flags = ASN1_TFLG_SET_OF,
+ .tag = 0,
+ .offset = offsetof(X509_ATTRIBUTE, value.set),
+ .field_name = "value.set",
+ .item = &ASN1_ANY_it,
+ },
+ {
+ .flags = 0,
+ .tag = 0,
+ .offset = offsetof(X509_ATTRIBUTE, value.single),
+ .field_name = "value.single",
+ .item = &ASN1_ANY_it,
+ },
+};
-ASN1_SEQUENCE(X509_ATTRIBUTE) = {
- ASN1_SIMPLE(X509_ATTRIBUTE, object, ASN1_OBJECT),
+const ASN1_ITEM X509_ATTRIBUTE_SET_it = {
+ .itype = ASN1_ITYPE_CHOICE,
+ .utype = offsetof(X509_ATTRIBUTE, single),
+ .templates = X509_ATTRIBUTE_SET_ch_tt,
+ .tcount = sizeof(X509_ATTRIBUTE_SET_ch_tt) / sizeof(ASN1_TEMPLATE),
+ .funcs = NULL,
+ .size = sizeof(X509_ATTRIBUTE),
+ .sname = "X509_ATTRIBUTE",
+};
+
+static const ASN1_TEMPLATE X509_ATTRIBUTE_seq_tt[] = {
+ {
+ .flags = 0,
+ .tag = 0,
+ .offset = offsetof(X509_ATTRIBUTE, object),
+ .field_name = "object",
+ .item = &ASN1_OBJECT_it,
+ },
/* CHOICE type merged with parent */
- ASN1_EX_COMBINE(0, 0, X509_ATTRIBUTE_SET)
-} ASN1_SEQUENCE_END(X509_ATTRIBUTE)
+ {
+ .flags = 0 | ASN1_TFLG_COMBINE,
+ .tag = 0,
+ .offset = 0,
+ .field_name = NULL,
+ .item = &X509_ATTRIBUTE_SET_it,
+ },
+};
+
+const ASN1_ITEM X509_ATTRIBUTE_it = {
+ .itype = ASN1_ITYPE_SEQUENCE,
+ .utype = V_ASN1_SEQUENCE,
+ .templates = X509_ATTRIBUTE_seq_tt,
+ .tcount = sizeof(X509_ATTRIBUTE_seq_tt) / sizeof(ASN1_TEMPLATE),
+ .funcs = NULL,
+ .size = sizeof(X509_ATTRIBUTE),
+ .sname = "X509_ATTRIBUTE",
+};
X509_ATTRIBUTE *