diff options
author | jsing <> | 2015-02-09 16:04:46 +0000 |
---|---|---|
committer | jsing <> | 2015-02-09 16:04:46 +0000 |
commit | ef9e1f7eec0659c49a61db86c7a58ea19e13d6b1 (patch) | |
tree | 2a76c2380407aba5449ce959cc484da5f0ae67ea /src/lib/libcrypto/pkcs7 | |
parent | c67b08b466720c73bce5f5a0ee6d8ccf43683ae6 (diff) | |
download | openbsd-ef9e1f7eec0659c49a61db86c7a58ea19e13d6b1.tar.gz openbsd-ef9e1f7eec0659c49a61db86c7a58ea19e13d6b1.tar.bz2 openbsd-ef9e1f7eec0659c49a61db86c7a58ea19e13d6b1.zip |
Expand the IMPLEMENT_ASN1_FUNCTIONS macro so that the code is visible and
functions can be readily located.
Change has been scripted and there is no change to the generated assembly.
Discussed with beck@ miod@ tedu@
Diffstat (limited to 'src/lib/libcrypto/pkcs7')
-rw-r--r-- | src/lib/libcrypto/pkcs7/pk7_asn1.c | 262 |
1 files changed, 251 insertions, 11 deletions
diff --git a/src/lib/libcrypto/pkcs7/pk7_asn1.c b/src/lib/libcrypto/pkcs7/pk7_asn1.c index 5191eb5076..2522a1ae6c 100644 --- a/src/lib/libcrypto/pkcs7/pk7_asn1.c +++ b/src/lib/libcrypto/pkcs7/pk7_asn1.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: pk7_asn1.c,v 1.7 2014/07/11 08:44:49 jsing Exp $ */ | 1 | /* $OpenBSD: pk7_asn1.c,v 1.8 2015/02/09 16:04:46 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 2000. | 3 | * project 2000. |
4 | */ | 4 | */ |
@@ -116,7 +116,31 @@ ASN1_NDEF_SEQUENCE_cb(PKCS7, pk7_cb) = { | |||
116 | ASN1_ADB_OBJECT(PKCS7) | 116 | ASN1_ADB_OBJECT(PKCS7) |
117 | }ASN1_NDEF_SEQUENCE_END_cb(PKCS7, PKCS7) | 117 | }ASN1_NDEF_SEQUENCE_END_cb(PKCS7, PKCS7) |
118 | 118 | ||
119 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7) | 119 | |
120 | PKCS7 * | ||
121 | d2i_PKCS7(PKCS7 **a, const unsigned char **in, long len) | ||
122 | { | ||
123 | return (PKCS7 *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
124 | &PKCS7_it); | ||
125 | } | ||
126 | |||
127 | int | ||
128 | i2d_PKCS7(PKCS7 *a, unsigned char **out) | ||
129 | { | ||
130 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_it); | ||
131 | } | ||
132 | |||
133 | PKCS7 * | ||
134 | PKCS7_new(void) | ||
135 | { | ||
136 | return (PKCS7 *)ASN1_item_new(&PKCS7_it); | ||
137 | } | ||
138 | |||
139 | void | ||
140 | PKCS7_free(PKCS7 *a) | ||
141 | { | ||
142 | ASN1_item_free((ASN1_VALUE *)a, &PKCS7_it); | ||
143 | } | ||
120 | IMPLEMENT_ASN1_NDEF_FUNCTION(PKCS7) | 144 | IMPLEMENT_ASN1_NDEF_FUNCTION(PKCS7) |
121 | IMPLEMENT_ASN1_DUP_FUNCTION(PKCS7) | 145 | IMPLEMENT_ASN1_DUP_FUNCTION(PKCS7) |
122 | 146 | ||
@@ -129,7 +153,31 @@ ASN1_NDEF_SEQUENCE(PKCS7_SIGNED) = { | |||
129 | ASN1_SET_OF(PKCS7_SIGNED, signer_info, PKCS7_SIGNER_INFO) | 153 | ASN1_SET_OF(PKCS7_SIGNED, signer_info, PKCS7_SIGNER_INFO) |
130 | } ASN1_NDEF_SEQUENCE_END(PKCS7_SIGNED) | 154 | } ASN1_NDEF_SEQUENCE_END(PKCS7_SIGNED) |
131 | 155 | ||
132 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_SIGNED) | 156 | |
157 | PKCS7_SIGNED * | ||
158 | d2i_PKCS7_SIGNED(PKCS7_SIGNED **a, const unsigned char **in, long len) | ||
159 | { | ||
160 | return (PKCS7_SIGNED *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
161 | &PKCS7_SIGNED_it); | ||
162 | } | ||
163 | |||
164 | int | ||
165 | i2d_PKCS7_SIGNED(PKCS7_SIGNED *a, unsigned char **out) | ||
166 | { | ||
167 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_SIGNED_it); | ||
168 | } | ||
169 | |||
170 | PKCS7_SIGNED * | ||
171 | PKCS7_SIGNED_new(void) | ||
172 | { | ||
173 | return (PKCS7_SIGNED *)ASN1_item_new(&PKCS7_SIGNED_it); | ||
174 | } | ||
175 | |||
176 | void | ||
177 | PKCS7_SIGNED_free(PKCS7_SIGNED *a) | ||
178 | { | ||
179 | ASN1_item_free((ASN1_VALUE *)a, &PKCS7_SIGNED_it); | ||
180 | } | ||
133 | 181 | ||
134 | /* Minor tweak to operation: free up EVP_PKEY */ | 182 | /* Minor tweak to operation: free up EVP_PKEY */ |
135 | static int | 183 | static int |
@@ -159,14 +207,62 @@ ASN1_SEQUENCE_cb(PKCS7_SIGNER_INFO, si_cb) = { | |||
159 | ASN1_IMP_SET_OF_OPT(PKCS7_SIGNER_INFO, unauth_attr, X509_ATTRIBUTE, 1) | 207 | ASN1_IMP_SET_OF_OPT(PKCS7_SIGNER_INFO, unauth_attr, X509_ATTRIBUTE, 1) |
160 | } ASN1_SEQUENCE_END_cb(PKCS7_SIGNER_INFO, PKCS7_SIGNER_INFO) | 208 | } ASN1_SEQUENCE_END_cb(PKCS7_SIGNER_INFO, PKCS7_SIGNER_INFO) |
161 | 209 | ||
162 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) | 210 | |
211 | PKCS7_SIGNER_INFO * | ||
212 | d2i_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO **a, const unsigned char **in, long len) | ||
213 | { | ||
214 | return (PKCS7_SIGNER_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
215 | &PKCS7_SIGNER_INFO_it); | ||
216 | } | ||
217 | |||
218 | int | ||
219 | i2d_PKCS7_SIGNER_INFO(PKCS7_SIGNER_INFO *a, unsigned char **out) | ||
220 | { | ||
221 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_SIGNER_INFO_it); | ||
222 | } | ||
223 | |||
224 | PKCS7_SIGNER_INFO * | ||
225 | PKCS7_SIGNER_INFO_new(void) | ||
226 | { | ||
227 | return (PKCS7_SIGNER_INFO *)ASN1_item_new(&PKCS7_SIGNER_INFO_it); | ||
228 | } | ||
229 | |||
230 | void | ||
231 | PKCS7_SIGNER_INFO_free(PKCS7_SIGNER_INFO *a) | ||
232 | { | ||
233 | ASN1_item_free((ASN1_VALUE *)a, &PKCS7_SIGNER_INFO_it); | ||
234 | } | ||
163 | 235 | ||
164 | ASN1_SEQUENCE(PKCS7_ISSUER_AND_SERIAL) = { | 236 | ASN1_SEQUENCE(PKCS7_ISSUER_AND_SERIAL) = { |
165 | ASN1_SIMPLE(PKCS7_ISSUER_AND_SERIAL, issuer, X509_NAME), | 237 | ASN1_SIMPLE(PKCS7_ISSUER_AND_SERIAL, issuer, X509_NAME), |
166 | ASN1_SIMPLE(PKCS7_ISSUER_AND_SERIAL, serial, ASN1_INTEGER) | 238 | ASN1_SIMPLE(PKCS7_ISSUER_AND_SERIAL, serial, ASN1_INTEGER) |
167 | } ASN1_SEQUENCE_END(PKCS7_ISSUER_AND_SERIAL) | 239 | } ASN1_SEQUENCE_END(PKCS7_ISSUER_AND_SERIAL) |
168 | 240 | ||
169 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) | 241 | |
242 | PKCS7_ISSUER_AND_SERIAL * | ||
243 | d2i_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL **a, const unsigned char **in, long len) | ||
244 | { | ||
245 | return (PKCS7_ISSUER_AND_SERIAL *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
246 | &PKCS7_ISSUER_AND_SERIAL_it); | ||
247 | } | ||
248 | |||
249 | int | ||
250 | i2d_PKCS7_ISSUER_AND_SERIAL(PKCS7_ISSUER_AND_SERIAL *a, unsigned char **out) | ||
251 | { | ||
252 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_ISSUER_AND_SERIAL_it); | ||
253 | } | ||
254 | |||
255 | PKCS7_ISSUER_AND_SERIAL * | ||
256 | PKCS7_ISSUER_AND_SERIAL_new(void) | ||
257 | { | ||
258 | return (PKCS7_ISSUER_AND_SERIAL *)ASN1_item_new(&PKCS7_ISSUER_AND_SERIAL_it); | ||
259 | } | ||
260 | |||
261 | void | ||
262 | PKCS7_ISSUER_AND_SERIAL_free(PKCS7_ISSUER_AND_SERIAL *a) | ||
263 | { | ||
264 | ASN1_item_free((ASN1_VALUE *)a, &PKCS7_ISSUER_AND_SERIAL_it); | ||
265 | } | ||
170 | 266 | ||
171 | ASN1_NDEF_SEQUENCE(PKCS7_ENVELOPE) = { | 267 | ASN1_NDEF_SEQUENCE(PKCS7_ENVELOPE) = { |
172 | ASN1_SIMPLE(PKCS7_ENVELOPE, version, ASN1_INTEGER), | 268 | ASN1_SIMPLE(PKCS7_ENVELOPE, version, ASN1_INTEGER), |
@@ -174,7 +270,31 @@ ASN1_NDEF_SEQUENCE(PKCS7_ENVELOPE) = { | |||
174 | ASN1_SIMPLE(PKCS7_ENVELOPE, enc_data, PKCS7_ENC_CONTENT) | 270 | ASN1_SIMPLE(PKCS7_ENVELOPE, enc_data, PKCS7_ENC_CONTENT) |
175 | } ASN1_NDEF_SEQUENCE_END(PKCS7_ENVELOPE) | 271 | } ASN1_NDEF_SEQUENCE_END(PKCS7_ENVELOPE) |
176 | 272 | ||
177 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_ENVELOPE) | 273 | |
274 | PKCS7_ENVELOPE * | ||
275 | d2i_PKCS7_ENVELOPE(PKCS7_ENVELOPE **a, const unsigned char **in, long len) | ||
276 | { | ||
277 | return (PKCS7_ENVELOPE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
278 | &PKCS7_ENVELOPE_it); | ||
279 | } | ||
280 | |||
281 | int | ||
282 | i2d_PKCS7_ENVELOPE(PKCS7_ENVELOPE *a, unsigned char **out) | ||
283 | { | ||
284 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_ENVELOPE_it); | ||
285 | } | ||
286 | |||
287 | PKCS7_ENVELOPE * | ||
288 | PKCS7_ENVELOPE_new(void) | ||
289 | { | ||
290 | return (PKCS7_ENVELOPE *)ASN1_item_new(&PKCS7_ENVELOPE_it); | ||
291 | } | ||
292 | |||
293 | void | ||
294 | PKCS7_ENVELOPE_free(PKCS7_ENVELOPE *a) | ||
295 | { | ||
296 | ASN1_item_free((ASN1_VALUE *)a, &PKCS7_ENVELOPE_it); | ||
297 | } | ||
178 | 298 | ||
179 | /* Minor tweak to operation: free up X509 */ | 299 | /* Minor tweak to operation: free up X509 */ |
180 | static int | 300 | static int |
@@ -195,7 +315,31 @@ ASN1_SEQUENCE_cb(PKCS7_RECIP_INFO, ri_cb) = { | |||
195 | ASN1_SIMPLE(PKCS7_RECIP_INFO, enc_key, ASN1_OCTET_STRING) | 315 | ASN1_SIMPLE(PKCS7_RECIP_INFO, enc_key, ASN1_OCTET_STRING) |
196 | } ASN1_SEQUENCE_END_cb(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO) | 316 | } ASN1_SEQUENCE_END_cb(PKCS7_RECIP_INFO, PKCS7_RECIP_INFO) |
197 | 317 | ||
198 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) | 318 | |
319 | PKCS7_RECIP_INFO * | ||
320 | d2i_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO **a, const unsigned char **in, long len) | ||
321 | { | ||
322 | return (PKCS7_RECIP_INFO *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
323 | &PKCS7_RECIP_INFO_it); | ||
324 | } | ||
325 | |||
326 | int | ||
327 | i2d_PKCS7_RECIP_INFO(PKCS7_RECIP_INFO *a, unsigned char **out) | ||
328 | { | ||
329 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_RECIP_INFO_it); | ||
330 | } | ||
331 | |||
332 | PKCS7_RECIP_INFO * | ||
333 | PKCS7_RECIP_INFO_new(void) | ||
334 | { | ||
335 | return (PKCS7_RECIP_INFO *)ASN1_item_new(&PKCS7_RECIP_INFO_it); | ||
336 | } | ||
337 | |||
338 | void | ||
339 | PKCS7_RECIP_INFO_free(PKCS7_RECIP_INFO *a) | ||
340 | { | ||
341 | ASN1_item_free((ASN1_VALUE *)a, &PKCS7_RECIP_INFO_it); | ||
342 | } | ||
199 | 343 | ||
200 | ASN1_NDEF_SEQUENCE(PKCS7_ENC_CONTENT) = { | 344 | ASN1_NDEF_SEQUENCE(PKCS7_ENC_CONTENT) = { |
201 | ASN1_SIMPLE(PKCS7_ENC_CONTENT, content_type, ASN1_OBJECT), | 345 | ASN1_SIMPLE(PKCS7_ENC_CONTENT, content_type, ASN1_OBJECT), |
@@ -203,7 +347,31 @@ ASN1_NDEF_SEQUENCE(PKCS7_ENC_CONTENT) = { | |||
203 | ASN1_IMP_OPT(PKCS7_ENC_CONTENT, enc_data, ASN1_OCTET_STRING_NDEF, 0) | 347 | ASN1_IMP_OPT(PKCS7_ENC_CONTENT, enc_data, ASN1_OCTET_STRING_NDEF, 0) |
204 | } ASN1_NDEF_SEQUENCE_END(PKCS7_ENC_CONTENT) | 348 | } ASN1_NDEF_SEQUENCE_END(PKCS7_ENC_CONTENT) |
205 | 349 | ||
206 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) | 350 | |
351 | PKCS7_ENC_CONTENT * | ||
352 | d2i_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT **a, const unsigned char **in, long len) | ||
353 | { | ||
354 | return (PKCS7_ENC_CONTENT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
355 | &PKCS7_ENC_CONTENT_it); | ||
356 | } | ||
357 | |||
358 | int | ||
359 | i2d_PKCS7_ENC_CONTENT(PKCS7_ENC_CONTENT *a, unsigned char **out) | ||
360 | { | ||
361 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_ENC_CONTENT_it); | ||
362 | } | ||
363 | |||
364 | PKCS7_ENC_CONTENT * | ||
365 | PKCS7_ENC_CONTENT_new(void) | ||
366 | { | ||
367 | return (PKCS7_ENC_CONTENT *)ASN1_item_new(&PKCS7_ENC_CONTENT_it); | ||
368 | } | ||
369 | |||
370 | void | ||
371 | PKCS7_ENC_CONTENT_free(PKCS7_ENC_CONTENT *a) | ||
372 | { | ||
373 | ASN1_item_free((ASN1_VALUE *)a, &PKCS7_ENC_CONTENT_it); | ||
374 | } | ||
207 | 375 | ||
208 | ASN1_NDEF_SEQUENCE(PKCS7_SIGN_ENVELOPE) = { | 376 | ASN1_NDEF_SEQUENCE(PKCS7_SIGN_ENVELOPE) = { |
209 | ASN1_SIMPLE(PKCS7_SIGN_ENVELOPE, version, ASN1_INTEGER), | 377 | ASN1_SIMPLE(PKCS7_SIGN_ENVELOPE, version, ASN1_INTEGER), |
@@ -215,14 +383,62 @@ ASN1_NDEF_SEQUENCE(PKCS7_SIGN_ENVELOPE) = { | |||
215 | ASN1_SET_OF(PKCS7_SIGN_ENVELOPE, signer_info, PKCS7_SIGNER_INFO) | 383 | ASN1_SET_OF(PKCS7_SIGN_ENVELOPE, signer_info, PKCS7_SIGNER_INFO) |
216 | } ASN1_NDEF_SEQUENCE_END(PKCS7_SIGN_ENVELOPE) | 384 | } ASN1_NDEF_SEQUENCE_END(PKCS7_SIGN_ENVELOPE) |
217 | 385 | ||
218 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) | 386 | |
387 | PKCS7_SIGN_ENVELOPE * | ||
388 | d2i_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE **a, const unsigned char **in, long len) | ||
389 | { | ||
390 | return (PKCS7_SIGN_ENVELOPE *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
391 | &PKCS7_SIGN_ENVELOPE_it); | ||
392 | } | ||
393 | |||
394 | int | ||
395 | i2d_PKCS7_SIGN_ENVELOPE(PKCS7_SIGN_ENVELOPE *a, unsigned char **out) | ||
396 | { | ||
397 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_SIGN_ENVELOPE_it); | ||
398 | } | ||
399 | |||
400 | PKCS7_SIGN_ENVELOPE * | ||
401 | PKCS7_SIGN_ENVELOPE_new(void) | ||
402 | { | ||
403 | return (PKCS7_SIGN_ENVELOPE *)ASN1_item_new(&PKCS7_SIGN_ENVELOPE_it); | ||
404 | } | ||
405 | |||
406 | void | ||
407 | PKCS7_SIGN_ENVELOPE_free(PKCS7_SIGN_ENVELOPE *a) | ||
408 | { | ||
409 | ASN1_item_free((ASN1_VALUE *)a, &PKCS7_SIGN_ENVELOPE_it); | ||
410 | } | ||
219 | 411 | ||
220 | ASN1_NDEF_SEQUENCE(PKCS7_ENCRYPT) = { | 412 | ASN1_NDEF_SEQUENCE(PKCS7_ENCRYPT) = { |
221 | ASN1_SIMPLE(PKCS7_ENCRYPT, version, ASN1_INTEGER), | 413 | ASN1_SIMPLE(PKCS7_ENCRYPT, version, ASN1_INTEGER), |
222 | ASN1_SIMPLE(PKCS7_ENCRYPT, enc_data, PKCS7_ENC_CONTENT) | 414 | ASN1_SIMPLE(PKCS7_ENCRYPT, enc_data, PKCS7_ENC_CONTENT) |
223 | } ASN1_NDEF_SEQUENCE_END(PKCS7_ENCRYPT) | 415 | } ASN1_NDEF_SEQUENCE_END(PKCS7_ENCRYPT) |
224 | 416 | ||
225 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_ENCRYPT) | 417 | |
418 | PKCS7_ENCRYPT * | ||
419 | d2i_PKCS7_ENCRYPT(PKCS7_ENCRYPT **a, const unsigned char **in, long len) | ||
420 | { | ||
421 | return (PKCS7_ENCRYPT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
422 | &PKCS7_ENCRYPT_it); | ||
423 | } | ||
424 | |||
425 | int | ||
426 | i2d_PKCS7_ENCRYPT(PKCS7_ENCRYPT *a, unsigned char **out) | ||
427 | { | ||
428 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_ENCRYPT_it); | ||
429 | } | ||
430 | |||
431 | PKCS7_ENCRYPT * | ||
432 | PKCS7_ENCRYPT_new(void) | ||
433 | { | ||
434 | return (PKCS7_ENCRYPT *)ASN1_item_new(&PKCS7_ENCRYPT_it); | ||
435 | } | ||
436 | |||
437 | void | ||
438 | PKCS7_ENCRYPT_free(PKCS7_ENCRYPT *a) | ||
439 | { | ||
440 | ASN1_item_free((ASN1_VALUE *)a, &PKCS7_ENCRYPT_it); | ||
441 | } | ||
226 | 442 | ||
227 | ASN1_NDEF_SEQUENCE(PKCS7_DIGEST) = { | 443 | ASN1_NDEF_SEQUENCE(PKCS7_DIGEST) = { |
228 | ASN1_SIMPLE(PKCS7_DIGEST, version, ASN1_INTEGER), | 444 | ASN1_SIMPLE(PKCS7_DIGEST, version, ASN1_INTEGER), |
@@ -231,7 +447,31 @@ ASN1_NDEF_SEQUENCE(PKCS7_DIGEST) = { | |||
231 | ASN1_SIMPLE(PKCS7_DIGEST, digest, ASN1_OCTET_STRING) | 447 | ASN1_SIMPLE(PKCS7_DIGEST, digest, ASN1_OCTET_STRING) |
232 | } ASN1_NDEF_SEQUENCE_END(PKCS7_DIGEST) | 448 | } ASN1_NDEF_SEQUENCE_END(PKCS7_DIGEST) |
233 | 449 | ||
234 | IMPLEMENT_ASN1_FUNCTIONS(PKCS7_DIGEST) | 450 | |
451 | PKCS7_DIGEST * | ||
452 | d2i_PKCS7_DIGEST(PKCS7_DIGEST **a, const unsigned char **in, long len) | ||
453 | { | ||
454 | return (PKCS7_DIGEST *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, | ||
455 | &PKCS7_DIGEST_it); | ||
456 | } | ||
457 | |||
458 | int | ||
459 | i2d_PKCS7_DIGEST(PKCS7_DIGEST *a, unsigned char **out) | ||
460 | { | ||
461 | return ASN1_item_i2d((ASN1_VALUE *)a, out, &PKCS7_DIGEST_it); | ||
462 | } | ||
463 | |||
464 | PKCS7_DIGEST * | ||
465 | PKCS7_DIGEST_new(void) | ||
466 | { | ||
467 | return (PKCS7_DIGEST *)ASN1_item_new(&PKCS7_DIGEST_it); | ||
468 | } | ||
469 | |||
470 | void | ||
471 | PKCS7_DIGEST_free(PKCS7_DIGEST *a) | ||
472 | { | ||
473 | ASN1_item_free((ASN1_VALUE *)a, &PKCS7_DIGEST_it); | ||
474 | } | ||
235 | 475 | ||
236 | /* Specials for authenticated attributes */ | 476 | /* Specials for authenticated attributes */ |
237 | 477 | ||