summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/x509v3/v3_crld.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/x509v3/v3_crld.c')
-rw-r--r--src/lib/libcrypto/x509v3/v3_crld.c106
1 files changed, 101 insertions, 5 deletions
diff --git a/src/lib/libcrypto/x509v3/v3_crld.c b/src/lib/libcrypto/x509v3/v3_crld.c
index 9586401da6..2201b61264 100644
--- a/src/lib/libcrypto/x509v3/v3_crld.c
+++ b/src/lib/libcrypto/x509v3/v3_crld.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: v3_crld.c,v 1.13 2014/10/05 18:27:58 miod Exp $ */ 1/* $OpenBSD: v3_crld.c,v 1.14 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 */
@@ -383,7 +383,31 @@ ASN1_CHOICE_cb(DIST_POINT_NAME, dpn_cb) = {
383} ASN1_CHOICE_END_cb(DIST_POINT_NAME, DIST_POINT_NAME, type) 383} ASN1_CHOICE_END_cb(DIST_POINT_NAME, DIST_POINT_NAME, type)
384 384
385 385
386IMPLEMENT_ASN1_FUNCTIONS(DIST_POINT_NAME) 386
387DIST_POINT_NAME *
388d2i_DIST_POINT_NAME(DIST_POINT_NAME **a, const unsigned char **in, long len)
389{
390 return (DIST_POINT_NAME *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
391 &DIST_POINT_NAME_it);
392}
393
394int
395i2d_DIST_POINT_NAME(DIST_POINT_NAME *a, unsigned char **out)
396{
397 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIST_POINT_NAME_it);
398}
399
400DIST_POINT_NAME *
401DIST_POINT_NAME_new(void)
402{
403 return (DIST_POINT_NAME *)ASN1_item_new(&DIST_POINT_NAME_it);
404}
405
406void
407DIST_POINT_NAME_free(DIST_POINT_NAME *a)
408{
409 ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_NAME_it);
410}
387 411
388ASN1_SEQUENCE(DIST_POINT) = { 412ASN1_SEQUENCE(DIST_POINT) = {
389 ASN1_EXP_OPT(DIST_POINT, distpoint, DIST_POINT_NAME, 0), 413 ASN1_EXP_OPT(DIST_POINT, distpoint, DIST_POINT_NAME, 0),
@@ -391,14 +415,62 @@ ASN1_SEQUENCE(DIST_POINT) = {
391 ASN1_IMP_SEQUENCE_OF_OPT(DIST_POINT, CRLissuer, GENERAL_NAME, 2) 415 ASN1_IMP_SEQUENCE_OF_OPT(DIST_POINT, CRLissuer, GENERAL_NAME, 2)
392} ASN1_SEQUENCE_END(DIST_POINT) 416} ASN1_SEQUENCE_END(DIST_POINT)
393 417
394IMPLEMENT_ASN1_FUNCTIONS(DIST_POINT) 418
419DIST_POINT *
420d2i_DIST_POINT(DIST_POINT **a, const unsigned char **in, long len)
421{
422 return (DIST_POINT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
423 &DIST_POINT_it);
424}
425
426int
427i2d_DIST_POINT(DIST_POINT *a, unsigned char **out)
428{
429 return ASN1_item_i2d((ASN1_VALUE *)a, out, &DIST_POINT_it);
430}
431
432DIST_POINT *
433DIST_POINT_new(void)
434{
435 return (DIST_POINT *)ASN1_item_new(&DIST_POINT_it);
436}
437
438void
439DIST_POINT_free(DIST_POINT *a)
440{
441 ASN1_item_free((ASN1_VALUE *)a, &DIST_POINT_it);
442}
395 443
396ASN1_ITEM_TEMPLATE(CRL_DIST_POINTS) = 444ASN1_ITEM_TEMPLATE(CRL_DIST_POINTS) =
397 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, CRLDistributionPoints, 445 ASN1_EX_TEMPLATE_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, CRLDistributionPoints,
398 DIST_POINT) 446 DIST_POINT)
399ASN1_ITEM_TEMPLATE_END(CRL_DIST_POINTS) 447ASN1_ITEM_TEMPLATE_END(CRL_DIST_POINTS)
400 448
401IMPLEMENT_ASN1_FUNCTIONS(CRL_DIST_POINTS) 449
450CRL_DIST_POINTS *
451d2i_CRL_DIST_POINTS(CRL_DIST_POINTS **a, const unsigned char **in, long len)
452{
453 return (CRL_DIST_POINTS *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
454 &CRL_DIST_POINTS_it);
455}
456
457int
458i2d_CRL_DIST_POINTS(CRL_DIST_POINTS *a, unsigned char **out)
459{
460 return ASN1_item_i2d((ASN1_VALUE *)a, out, &CRL_DIST_POINTS_it);
461}
462
463CRL_DIST_POINTS *
464CRL_DIST_POINTS_new(void)
465{
466 return (CRL_DIST_POINTS *)ASN1_item_new(&CRL_DIST_POINTS_it);
467}
468
469void
470CRL_DIST_POINTS_free(CRL_DIST_POINTS *a)
471{
472 ASN1_item_free((ASN1_VALUE *)a, &CRL_DIST_POINTS_it);
473}
402 474
403ASN1_SEQUENCE(ISSUING_DIST_POINT) = { 475ASN1_SEQUENCE(ISSUING_DIST_POINT) = {
404 ASN1_EXP_OPT(ISSUING_DIST_POINT, distpoint, DIST_POINT_NAME, 0), 476 ASN1_EXP_OPT(ISSUING_DIST_POINT, distpoint, DIST_POINT_NAME, 0),
@@ -409,7 +481,31 @@ ASN1_SEQUENCE(ISSUING_DIST_POINT) = {
409 ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyattr, ASN1_FBOOLEAN, 5) 481 ASN1_IMP_OPT(ISSUING_DIST_POINT, onlyattr, ASN1_FBOOLEAN, 5)
410} ASN1_SEQUENCE_END(ISSUING_DIST_POINT) 482} ASN1_SEQUENCE_END(ISSUING_DIST_POINT)
411 483
412IMPLEMENT_ASN1_FUNCTIONS(ISSUING_DIST_POINT) 484
485ISSUING_DIST_POINT *
486d2i_ISSUING_DIST_POINT(ISSUING_DIST_POINT **a, const unsigned char **in, long len)
487{
488 return (ISSUING_DIST_POINT *)ASN1_item_d2i((ASN1_VALUE **)a, in, len,
489 &ISSUING_DIST_POINT_it);
490}
491
492int
493i2d_ISSUING_DIST_POINT(ISSUING_DIST_POINT *a, unsigned char **out)
494{
495 return ASN1_item_i2d((ASN1_VALUE *)a, out, &ISSUING_DIST_POINT_it);
496}
497
498ISSUING_DIST_POINT *
499ISSUING_DIST_POINT_new(void)
500{
501 return (ISSUING_DIST_POINT *)ASN1_item_new(&ISSUING_DIST_POINT_it);
502}
503
504void
505ISSUING_DIST_POINT_free(ISSUING_DIST_POINT *a)
506{
507 ASN1_item_free((ASN1_VALUE *)a, &ISSUING_DIST_POINT_it);
508}
413 509
414static int i2r_idp(const X509V3_EXT_METHOD *method, void *pidp, BIO *out, 510static int i2r_idp(const X509V3_EXT_METHOD *method, void *pidp, BIO *out,
415 int indent); 511 int indent);