diff options
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_cpols.c')
-rw-r--r-- | src/lib/libcrypto/x509v3/v3_cpols.c | 132 |
1 files changed, 126 insertions, 6 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_cpols.c b/src/lib/libcrypto/x509v3/v3_cpols.c index d683db697e..6ceb93d372 100644 --- a/src/lib/libcrypto/x509v3/v3_cpols.c +++ b/src/lib/libcrypto/x509v3/v3_cpols.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: v3_cpols.c,v 1.16 2014/10/05 18:27:33 miod Exp $ */ | 1 | /* $OpenBSD: v3_cpols.c,v 1.17 2015/02/09 16:03:11 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 | */ |
@@ -97,14 +97,62 @@ ASN1_ITEM_TEMPLATE(CERTIFICATEPOLICIES) = | |||
97 | POLICYINFO) | 97 | POLICYINFO) |
98 | ASN1_ITEM_TEMPLATE_END(CERTIFICATEPOLICIES) | 98 | ASN1_ITEM_TEMPLATE_END(CERTIFICATEPOLICIES) |
99 | 99 | ||
100 | IMPLEMENT_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) | 100 | |
101 | CERTIFICATEPOLICIES * | ||
102 | d2i_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES **a, const unsigned char **in, long len) | ||
103 | { | ||
104 | return (CERTIFICATEPOLICIES *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
105 | &CERTIFICATEPOLICIES_it); | ||
106 | } | ||
107 | |||
108 | int | ||
109 | i2d_CERTIFICATEPOLICIES(CERTIFICATEPOLICIES *a, unsigned char **out) | ||
110 | { | ||
111 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &CERTIFICATEPOLICIES_it); | ||
112 | } | ||
113 | |||
114 | CERTIFICATEPOLICIES * | ||
115 | CERTIFICATEPOLICIES_new(void) | ||
116 | { | ||
117 | return (CERTIFICATEPOLICIES *)ASN1_item_new(&CERTIFICATEPOLICIES_it); | ||
118 | } | ||
119 | |||
120 | void | ||
121 | CERTIFICATEPOLICIES_free(CERTIFICATEPOLICIES *a) | ||
122 | { | ||
123 | ASN1_item_free((ASN1_VALUE *)a, &CERTIFICATEPOLICIES_it); | ||
124 | } | ||
101 | 125 | ||
102 | ASN1_SEQUENCE(POLICYINFO) = { | 126 | ASN1_SEQUENCE(POLICYINFO) = { |
103 | ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT), | 127 | ASN1_SIMPLE(POLICYINFO, policyid, ASN1_OBJECT), |
104 | ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO) | 128 | ASN1_SEQUENCE_OF_OPT(POLICYINFO, qualifiers, POLICYQUALINFO) |
105 | } ASN1_SEQUENCE_END(POLICYINFO) | 129 | } ASN1_SEQUENCE_END(POLICYINFO) |
106 | 130 | ||
107 | IMPLEMENT_ASN1_FUNCTIONS(POLICYINFO) | 131 | |
132 | POLICYINFO * | ||
133 | d2i_POLICYINFO(POLICYINFO **a, const unsigned char **in, long len) | ||
134 | { | ||
135 | return (POLICYINFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
136 | &POLICYINFO_it); | ||
137 | } | ||
138 | |||
139 | int | ||
140 | i2d_POLICYINFO(POLICYINFO *a, unsigned char **out) | ||
141 | { | ||
142 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &POLICYINFO_it); | ||
143 | } | ||
144 | |||
145 | POLICYINFO * | ||
146 | POLICYINFO_new(void) | ||
147 | { | ||
148 | return (POLICYINFO *)ASN1_item_new(&POLICYINFO_it); | ||
149 | } | ||
150 | |||
151 | void | ||
152 | POLICYINFO_free(POLICYINFO *a) | ||
153 | { | ||
154 | ASN1_item_free((ASN1_VALUE *)a, &POLICYINFO_it); | ||
155 | } | ||
108 | 156 | ||
109 | ASN1_ADB_TEMPLATE(policydefault) = | 157 | ASN1_ADB_TEMPLATE(policydefault) = |
110 | ASN1_SIMPLE(POLICYQUALINFO, d.other, ASN1_ANY); | 158 | ASN1_SIMPLE(POLICYQUALINFO, d.other, ASN1_ANY); |
@@ -119,21 +167,93 @@ ASN1_SEQUENCE(POLICYQUALINFO) = { | |||
119 | ASN1_ADB_OBJECT(POLICYQUALINFO) | 167 | ASN1_ADB_OBJECT(POLICYQUALINFO) |
120 | } ASN1_SEQUENCE_END(POLICYQUALINFO) | 168 | } ASN1_SEQUENCE_END(POLICYQUALINFO) |
121 | 169 | ||
122 | IMPLEMENT_ASN1_FUNCTIONS(POLICYQUALINFO) | 170 | |
171 | POLICYQUALINFO * | ||
172 | d2i_POLICYQUALINFO(POLICYQUALINFO **a, const unsigned char **in, long len) | ||
173 | { | ||
174 | return (POLICYQUALINFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
175 | &POLICYQUALINFO_it); | ||
176 | } | ||
177 | |||
178 | int | ||
179 | i2d_POLICYQUALINFO(POLICYQUALINFO *a, unsigned char **out) | ||
180 | { | ||
181 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &POLICYQUALINFO_it); | ||
182 | } | ||
183 | |||
184 | POLICYQUALINFO * | ||
185 | POLICYQUALINFO_new(void) | ||
186 | { | ||
187 | return (POLICYQUALINFO *)ASN1_item_new(&POLICYQUALINFO_it); | ||
188 | } | ||
189 | |||
190 | void | ||
191 | POLICYQUALINFO_free(POLICYQUALINFO *a) | ||
192 | { | ||
193 | ASN1_item_free((ASN1_VALUE *)a, &POLICYQUALINFO_it); | ||
194 | } | ||
123 | 195 | ||
124 | ASN1_SEQUENCE(USERNOTICE) = { | 196 | ASN1_SEQUENCE(USERNOTICE) = { |
125 | ASN1_OPT(USERNOTICE, noticeref, NOTICEREF), | 197 | ASN1_OPT(USERNOTICE, noticeref, NOTICEREF), |
126 | ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT) | 198 | ASN1_OPT(USERNOTICE, exptext, DISPLAYTEXT) |
127 | } ASN1_SEQUENCE_END(USERNOTICE) | 199 | } ASN1_SEQUENCE_END(USERNOTICE) |
128 | 200 | ||
129 | IMPLEMENT_ASN1_FUNCTIONS(USERNOTICE) | 201 | |
202 | USERNOTICE * | ||
203 | d2i_USERNOTICE(USERNOTICE **a, const unsigned char **in, long len) | ||
204 | { | ||
205 | return (USERNOTICE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
206 | &USERNOTICE_it); | ||
207 | } | ||
208 | |||
209 | int | ||
210 | i2d_USERNOTICE(USERNOTICE *a, unsigned char **out) | ||
211 | { | ||
212 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &USERNOTICE_it); | ||
213 | } | ||
214 | |||
215 | USERNOTICE * | ||
216 | USERNOTICE_new(void) | ||
217 | { | ||
218 | return (USERNOTICE *)ASN1_item_new(&USERNOTICE_it); | ||
219 | } | ||
220 | |||
221 | void | ||
222 | USERNOTICE_free(USERNOTICE *a) | ||
223 | { | ||
224 | ASN1_item_free((ASN1_VALUE *)a, &USERNOTICE_it); | ||
225 | } | ||
130 | 226 | ||
131 | ASN1_SEQUENCE(NOTICEREF) = { | 227 | ASN1_SEQUENCE(NOTICEREF) = { |
132 | ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT), | 228 | ASN1_SIMPLE(NOTICEREF, organization, DISPLAYTEXT), |
133 | ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER) | 229 | ASN1_SEQUENCE_OF(NOTICEREF, noticenos, ASN1_INTEGER) |
134 | } ASN1_SEQUENCE_END(NOTICEREF) | 230 | } ASN1_SEQUENCE_END(NOTICEREF) |
135 | 231 | ||
136 | IMPLEMENT_ASN1_FUNCTIONS(NOTICEREF) | 232 | |
233 | NOTICEREF * | ||
234 | d2i_NOTICEREF(NOTICEREF **a, const unsigned char **in, long len) | ||
235 | { | ||
236 | return (NOTICEREF *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
237 | &NOTICEREF_it); | ||
238 | } | ||
239 | |||
240 | int | ||
241 | i2d_NOTICEREF(NOTICEREF *a, unsigned char **out) | ||
242 | { | ||
243 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &NOTICEREF_it); | ||
244 | } | ||
245 | |||
246 | NOTICEREF * | ||
247 | NOTICEREF_new(void) | ||
248 | { | ||
249 | return (NOTICEREF *)ASN1_item_new(&NOTICEREF_it); | ||
250 | } | ||
251 | |||
252 | void | ||
253 | NOTICEREF_free(NOTICEREF *a) | ||
254 | { | ||
255 | ASN1_item_free((ASN1_VALUE *)a, &NOTICEREF_it); | ||
256 | } | ||
137 | 257 | ||
138 | static | 258 | static |
139 | STACK_OF(POLICYINFO) *r2i_certpol(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, | 259 | STACK_OF(POLICYINFO) *r2i_certpol(X509V3_EXT_METHOD *method, X509V3_CTX *ctx, |