summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2015-02-14 14:56:45 +0000
committerjsing <>2015-02-14 14:56:45 +0000
commitdd33b182f2b43795910c8105f9def46b8ed87cb9 (patch)
tree3072d1b1ab488f65de136be1320f8a63a7491659
parent4eccaff90192bfec4f0bc61f0dba0ad8f587f233 (diff)
downloadopenbsd-dd33b182f2b43795910c8105f9def46b8ed87cb9.tar.gz
openbsd-dd33b182f2b43795910c8105f9def46b8ed87cb9.tar.bz2
openbsd-dd33b182f2b43795910c8105f9def46b8ed87cb9.zip
Expand ASN1_CHOICE*, ASN1_SEQUENCE* and associated macros, making the
data structures visible and easier to review, without having to wade through layers and layers of asn1t.h macros. Change has been scripted and there is no change to the generated assembly. Discussed with beck@ miod@ tedu@
-rw-r--r--src/lib/libcrypto/asn1/x_attrib.c62
-rw-r--r--src/lib/libssl/src/crypto/asn1/x_attrib.c62
2 files changed, 106 insertions, 18 deletions
diff --git a/src/lib/libcrypto/asn1/x_attrib.c b/src/lib/libcrypto/asn1/x_attrib.c
index 9c00906ded..bb74a1b6c7 100644
--- a/src/lib/libcrypto/asn1/x_attrib.c
+++ b/src/lib/libcrypto/asn1/x_attrib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_attrib.c,v 1.12 2015/02/10 05:25:45 jsing Exp $ */ 1/* $OpenBSD: x_attrib.c,v 1.13 2015/02/14 14:56:45 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 *
@@ -82,16 +82,60 @@
82 * SET OF structure. 82 * SET OF structure.
83 */ 83 */
84 84
85ASN1_CHOICE(X509_ATTRIBUTE_SET) = { 85static const ASN1_TEMPLATE X509_ATTRIBUTE_SET_ch_tt[] = {
86 ASN1_SET_OF(X509_ATTRIBUTE, value.set, ASN1_ANY), 86 {
87 ASN1_SIMPLE(X509_ATTRIBUTE, value.single, ASN1_ANY) 87 .flags = ASN1_TFLG_SET_OF,
88} ASN1_CHOICE_END_selector(X509_ATTRIBUTE, X509_ATTRIBUTE_SET, single) 88 .tag = 0,
89 .offset = offsetof(X509_ATTRIBUTE, value.set),
90 .field_name = "value.set",
91 .item = &ASN1_ANY_it,
92 },
93 {
94 .flags = 0,
95 .tag = 0,
96 .offset = offsetof(X509_ATTRIBUTE, value.single),
97 .field_name = "value.single",
98 .item = &ASN1_ANY_it,
99 },
100};
89 101
90ASN1_SEQUENCE(X509_ATTRIBUTE) = { 102const ASN1_ITEM X509_ATTRIBUTE_SET_it = {
91 ASN1_SIMPLE(X509_ATTRIBUTE, object, ASN1_OBJECT), 103 .itype = ASN1_ITYPE_CHOICE,
104 .utype = offsetof(X509_ATTRIBUTE, single),
105 .templates = X509_ATTRIBUTE_SET_ch_tt,
106 .tcount = sizeof(X509_ATTRIBUTE_SET_ch_tt) / sizeof(ASN1_TEMPLATE),
107 .funcs = NULL,
108 .size = sizeof(X509_ATTRIBUTE),
109 .sname = "X509_ATTRIBUTE",
110};
111
112static const ASN1_TEMPLATE X509_ATTRIBUTE_seq_tt[] = {
113 {
114 .flags = 0,
115 .tag = 0,
116 .offset = offsetof(X509_ATTRIBUTE, object),
117 .field_name = "object",
118 .item = &ASN1_OBJECT_it,
119 },
92 /* CHOICE type merged with parent */ 120 /* CHOICE type merged with parent */
93 ASN1_EX_COMBINE(0, 0, X509_ATTRIBUTE_SET) 121 {
94} ASN1_SEQUENCE_END(X509_ATTRIBUTE) 122 .flags = 0 | ASN1_TFLG_COMBINE,
123 .tag = 0,
124 .offset = 0,
125 .field_name = NULL,
126 .item = &X509_ATTRIBUTE_SET_it,
127 },
128};
129
130const ASN1_ITEM X509_ATTRIBUTE_it = {
131 .itype = ASN1_ITYPE_SEQUENCE,
132 .utype = V_ASN1_SEQUENCE,
133 .templates = X509_ATTRIBUTE_seq_tt,
134 .tcount = sizeof(X509_ATTRIBUTE_seq_tt) / sizeof(ASN1_TEMPLATE),
135 .funcs = NULL,
136 .size = sizeof(X509_ATTRIBUTE),
137 .sname = "X509_ATTRIBUTE",
138};
95 139
96 140
97X509_ATTRIBUTE * 141X509_ATTRIBUTE *
diff --git a/src/lib/libssl/src/crypto/asn1/x_attrib.c b/src/lib/libssl/src/crypto/asn1/x_attrib.c
index 9c00906ded..bb74a1b6c7 100644
--- a/src/lib/libssl/src/crypto/asn1/x_attrib.c
+++ b/src/lib/libssl/src/crypto/asn1/x_attrib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_attrib.c,v 1.12 2015/02/10 05:25:45 jsing Exp $ */ 1/* $OpenBSD: x_attrib.c,v 1.13 2015/02/14 14:56:45 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 *
@@ -82,16 +82,60 @@
82 * SET OF structure. 82 * SET OF structure.
83 */ 83 */
84 84
85ASN1_CHOICE(X509_ATTRIBUTE_SET) = { 85static const ASN1_TEMPLATE X509_ATTRIBUTE_SET_ch_tt[] = {
86 ASN1_SET_OF(X509_ATTRIBUTE, value.set, ASN1_ANY), 86 {
87 ASN1_SIMPLE(X509_ATTRIBUTE, value.single, ASN1_ANY) 87 .flags = ASN1_TFLG_SET_OF,
88} ASN1_CHOICE_END_selector(X509_ATTRIBUTE, X509_ATTRIBUTE_SET, single) 88 .tag = 0,
89 .offset = offsetof(X509_ATTRIBUTE, value.set),
90 .field_name = "value.set",
91 .item = &ASN1_ANY_it,
92 },
93 {
94 .flags = 0,
95 .tag = 0,
96 .offset = offsetof(X509_ATTRIBUTE, value.single),
97 .field_name = "value.single",
98 .item = &ASN1_ANY_it,
99 },
100};
89 101
90ASN1_SEQUENCE(X509_ATTRIBUTE) = { 102const ASN1_ITEM X509_ATTRIBUTE_SET_it = {
91 ASN1_SIMPLE(X509_ATTRIBUTE, object, ASN1_OBJECT), 103 .itype = ASN1_ITYPE_CHOICE,
104 .utype = offsetof(X509_ATTRIBUTE, single),
105 .templates = X509_ATTRIBUTE_SET_ch_tt,
106 .tcount = sizeof(X509_ATTRIBUTE_SET_ch_tt) / sizeof(ASN1_TEMPLATE),
107 .funcs = NULL,
108 .size = sizeof(X509_ATTRIBUTE),
109 .sname = "X509_ATTRIBUTE",
110};
111
112static const ASN1_TEMPLATE X509_ATTRIBUTE_seq_tt[] = {
113 {
114 .flags = 0,
115 .tag = 0,
116 .offset = offsetof(X509_ATTRIBUTE, object),
117 .field_name = "object",
118 .item = &ASN1_OBJECT_it,
119 },
92 /* CHOICE type merged with parent */ 120 /* CHOICE type merged with parent */
93 ASN1_EX_COMBINE(0, 0, X509_ATTRIBUTE_SET) 121 {
94} ASN1_SEQUENCE_END(X509_ATTRIBUTE) 122 .flags = 0 | ASN1_TFLG_COMBINE,
123 .tag = 0,
124 .offset = 0,
125 .field_name = NULL,
126 .item = &X509_ATTRIBUTE_SET_it,
127 },
128};
129
130const ASN1_ITEM X509_ATTRIBUTE_it = {
131 .itype = ASN1_ITYPE_SEQUENCE,
132 .utype = V_ASN1_SEQUENCE,
133 .templates = X509_ATTRIBUTE_seq_tt,
134 .tcount = sizeof(X509_ATTRIBUTE_seq_tt) / sizeof(ASN1_TEMPLATE),
135 .funcs = NULL,
136 .size = sizeof(X509_ATTRIBUTE),
137 .sname = "X509_ATTRIBUTE",
138};
95 139
96 140
97X509_ATTRIBUTE * 141X509_ATTRIBUTE *