summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/asn1/x_x509a.c
diff options
context:
space:
mode:
authorjsing <>2015-02-11 03:39:51 +0000
committerjsing <>2015-02-11 03:39:51 +0000
commitb07f4d1849544c2c966cb30d49bdb02358dc608d (patch)
treed942bf9cb3a1b441f2c996072292ae69b1aa83d2 /src/lib/libcrypto/asn1/x_x509a.c
parente816a1ec1d4411707051912b945e8eab7a5a94e8 (diff)
downloadopenbsd-b07f4d1849544c2c966cb30d49bdb02358dc608d.tar.gz
openbsd-b07f4d1849544c2c966cb30d49bdb02358dc608d.tar.bz2
openbsd-b07f4d1849544c2c966cb30d49bdb02358dc608d.zip
Expand most of the 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 the generated assembly only differs by changes to line numbers. Discussed with beck@ miod@ tedu@
Diffstat (limited to 'src/lib/libcrypto/asn1/x_x509a.c')
-rw-r--r--src/lib/libcrypto/asn1/x_x509a.c86
1 files changed, 74 insertions, 12 deletions
diff --git a/src/lib/libcrypto/asn1/x_x509a.c b/src/lib/libcrypto/asn1/x_x509a.c
index 8a3561e882..be8ebbdcbb 100644
--- a/src/lib/libcrypto/asn1/x_x509a.c
+++ b/src/lib/libcrypto/asn1/x_x509a.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x_x509a.c,v 1.11 2015/02/09 15:05:59 jsing Exp $ */ 1/* $OpenBSD: x_x509a.c,v 1.12 2015/02/11 03:39:51 jsing Exp $ */
2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL 2/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
3 * project 1999. 3 * project 1999.
4 */ 4 */
@@ -71,13 +71,53 @@
71 71
72static X509_CERT_AUX *aux_get(X509 *x); 72static X509_CERT_AUX *aux_get(X509 *x);
73 73
74ASN1_SEQUENCE(X509_CERT_AUX) = { 74static const ASN1_TEMPLATE X509_CERT_AUX_seq_tt[] = {
75 ASN1_SEQUENCE_OF_OPT(X509_CERT_AUX, trust, ASN1_OBJECT), 75 {
76 ASN1_IMP_SEQUENCE_OF_OPT(X509_CERT_AUX, reject, ASN1_OBJECT, 0), 76 .flags = ASN1_TFLG_SEQUENCE_OF | ASN1_TFLG_OPTIONAL,
77 ASN1_OPT(X509_CERT_AUX, alias, ASN1_UTF8STRING), 77 .tag = 0,
78 ASN1_OPT(X509_CERT_AUX, keyid, ASN1_OCTET_STRING), 78 .offset = offsetof(X509_CERT_AUX, trust),
79 ASN1_IMP_SEQUENCE_OF_OPT(X509_CERT_AUX, other, X509_ALGOR, 1) 79 .field_name = "trust",
80} ASN1_SEQUENCE_END(X509_CERT_AUX) 80 .item = &ASN1_OBJECT_it,
81 },
82 {
83 .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_SEQUENCE_OF | ASN1_TFLG_OPTIONAL,
84 .tag = 0,
85 .offset = offsetof(X509_CERT_AUX, reject),
86 .field_name = "reject",
87 .item = &ASN1_OBJECT_it,
88 },
89 {
90 .flags = ASN1_TFLG_OPTIONAL,
91 .tag = 0,
92 .offset = offsetof(X509_CERT_AUX, alias),
93 .field_name = "alias",
94 .item = &ASN1_UTF8STRING_it,
95 },
96 {
97 .flags = ASN1_TFLG_OPTIONAL,
98 .tag = 0,
99 .offset = offsetof(X509_CERT_AUX, keyid),
100 .field_name = "keyid",
101 .item = &ASN1_OCTET_STRING_it,
102 },
103 {
104 .flags = ASN1_TFLG_IMPLICIT | ASN1_TFLG_SEQUENCE_OF | ASN1_TFLG_OPTIONAL,
105 .tag = 1,
106 .offset = offsetof(X509_CERT_AUX, other),
107 .field_name = "other",
108 .item = &X509_ALGOR_it,
109 },
110};
111
112const ASN1_ITEM X509_CERT_AUX_it = {
113 .itype = ASN1_ITYPE_SEQUENCE,
114 .utype = V_ASN1_SEQUENCE,
115 .templates = X509_CERT_AUX_seq_tt,
116 .tcount = sizeof(X509_CERT_AUX_seq_tt) / sizeof(ASN1_TEMPLATE),
117 .funcs = NULL,
118 .size = sizeof(X509_CERT_AUX),
119 .sname = "X509_CERT_AUX",
120};
81 121
82 122
83X509_CERT_AUX * 123X509_CERT_AUX *
@@ -217,10 +257,32 @@ X509_reject_clear(X509 *x)
217 } 257 }
218} 258}
219 259
220ASN1_SEQUENCE(X509_CERT_PAIR) = { 260static const ASN1_TEMPLATE X509_CERT_PAIR_seq_tt[] = {
221 ASN1_EXP_OPT(X509_CERT_PAIR, forward, X509, 0), 261 {
222 ASN1_EXP_OPT(X509_CERT_PAIR, reverse, X509, 1) 262 .flags = ASN1_TFLG_EXPLICIT | ASN1_TFLG_OPTIONAL,
223} ASN1_SEQUENCE_END(X509_CERT_PAIR) 263 .tag = 0,
264 .offset = offsetof(X509_CERT_PAIR, forward),
265 .field_name = "forward",
266 .item = &X509_it,
267 },
268 {
269 .flags = ASN1_TFLG_EXPLICIT | ASN1_TFLG_OPTIONAL,
270 .tag = 1,
271 .offset = offsetof(X509_CERT_PAIR, reverse),
272 .field_name = "reverse",
273 .item = &X509_it,
274 },
275};
276
277const ASN1_ITEM X509_CERT_PAIR_it = {
278 .itype = ASN1_ITYPE_SEQUENCE,
279 .utype = V_ASN1_SEQUENCE,
280 .templates = X509_CERT_PAIR_seq_tt,
281 .tcount = sizeof(X509_CERT_PAIR_seq_tt) / sizeof(ASN1_TEMPLATE),
282 .funcs = NULL,
283 .size = sizeof(X509_CERT_PAIR),
284 .sname = "X509_CERT_PAIR",
285};
224 286
225 287
226X509_CERT_PAIR * 288X509_CERT_PAIR *