diff options
author | jsing <> | 2015-02-14 14:56:45 +0000 |
---|---|---|
committer | jsing <> | 2015-02-14 14:56:45 +0000 |
commit | dd33b182f2b43795910c8105f9def46b8ed87cb9 (patch) | |
tree | 3072d1b1ab488f65de136be1320f8a63a7491659 | |
parent | 4eccaff90192bfec4f0bc61f0dba0ad8f587f233 (diff) | |
download | openbsd-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.c | 62 | ||||
-rw-r--r-- | src/lib/libssl/src/crypto/asn1/x_attrib.c | 62 |
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 | ||
85 | ASN1_CHOICE(X509_ATTRIBUTE_SET) = { | 85 | static 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 | ||
90 | ASN1_SEQUENCE(X509_ATTRIBUTE) = { | 102 | const 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 | |||
112 | static 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 | |||
130 | const 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 | ||
97 | X509_ATTRIBUTE * | 141 | X509_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 | ||
85 | ASN1_CHOICE(X509_ATTRIBUTE_SET) = { | 85 | static 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 | ||
90 | ASN1_SEQUENCE(X509_ATTRIBUTE) = { | 102 | const 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 | |||
112 | static 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 | |||
130 | const 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 | ||
97 | X509_ATTRIBUTE * | 141 | X509_ATTRIBUTE * |