diff options
Diffstat (limited to 'src/lib/libcrypto/x509/x509.h')
-rw-r--r-- | src/lib/libcrypto/x509/x509.h | 258 |
1 files changed, 94 insertions, 164 deletions
diff --git a/src/lib/libcrypto/x509/x509.h b/src/lib/libcrypto/x509/x509.h index e71b5257e5..604f4fb27f 100644 --- a/src/lib/libcrypto/x509/x509.h +++ b/src/lib/libcrypto/x509/x509.h | |||
@@ -116,6 +116,7 @@ extern "C" { | |||
116 | /* Under Win32 these are defined in wincrypt.h */ | 116 | /* Under Win32 these are defined in wincrypt.h */ |
117 | #undef X509_NAME | 117 | #undef X509_NAME |
118 | #undef X509_CERT_PAIR | 118 | #undef X509_CERT_PAIR |
119 | #undef X509_EXTENSIONS | ||
119 | #endif | 120 | #endif |
120 | 121 | ||
121 | #define X509_FILETYPE_PEM 1 | 122 | #define X509_FILETYPE_PEM 1 |
@@ -156,12 +157,12 @@ typedef struct X509_val_st | |||
156 | ASN1_TIME *notAfter; | 157 | ASN1_TIME *notAfter; |
157 | } X509_VAL; | 158 | } X509_VAL; |
158 | 159 | ||
159 | typedef struct X509_pubkey_st | 160 | struct X509_pubkey_st |
160 | { | 161 | { |
161 | X509_ALGOR *algor; | 162 | X509_ALGOR *algor; |
162 | ASN1_BIT_STRING *public_key; | 163 | ASN1_BIT_STRING *public_key; |
163 | EVP_PKEY *pkey; | 164 | EVP_PKEY *pkey; |
164 | } X509_PUBKEY; | 165 | }; |
165 | 166 | ||
166 | typedef struct X509_sig_st | 167 | typedef struct X509_sig_st |
167 | { | 168 | { |
@@ -190,7 +191,9 @@ struct X509_name_st | |||
190 | #else | 191 | #else |
191 | char *bytes; | 192 | char *bytes; |
192 | #endif | 193 | #endif |
193 | unsigned long hash; /* Keep the hash around for lookups */ | 194 | /* unsigned long hash; Keep the hash around for lookups */ |
195 | unsigned char *canon_enc; | ||
196 | int canon_enclen; | ||
194 | } /* X509_NAME */; | 197 | } /* X509_NAME */; |
195 | 198 | ||
196 | DECLARE_STACK_OF(X509_NAME) | 199 | DECLARE_STACK_OF(X509_NAME) |
@@ -289,8 +292,11 @@ struct x509_st | |||
289 | unsigned long ex_xkusage; | 292 | unsigned long ex_xkusage; |
290 | unsigned long ex_nscert; | 293 | unsigned long ex_nscert; |
291 | ASN1_OCTET_STRING *skid; | 294 | ASN1_OCTET_STRING *skid; |
292 | struct AUTHORITY_KEYID_st *akid; | 295 | AUTHORITY_KEYID *akid; |
293 | X509_POLICY_CACHE *policy_cache; | 296 | X509_POLICY_CACHE *policy_cache; |
297 | STACK_OF(DIST_POINT) *crldp; | ||
298 | STACK_OF(GENERAL_NAME) *altname; | ||
299 | NAME_CONSTRAINTS *nc; | ||
294 | #ifndef OPENSSL_NO_RFC3779 | 300 | #ifndef OPENSSL_NO_RFC3779 |
295 | STACK_OF(IPAddressFamily) *rfc3779_addr; | 301 | STACK_OF(IPAddressFamily) *rfc3779_addr; |
296 | struct ASIdentifiers_st *rfc3779_asid; | 302 | struct ASIdentifiers_st *rfc3779_asid; |
@@ -333,10 +339,11 @@ typedef struct x509_cert_pair_st { | |||
333 | #define X509_TRUST_OBJECT_SIGN 5 | 339 | #define X509_TRUST_OBJECT_SIGN 5 |
334 | #define X509_TRUST_OCSP_SIGN 6 | 340 | #define X509_TRUST_OCSP_SIGN 6 |
335 | #define X509_TRUST_OCSP_REQUEST 7 | 341 | #define X509_TRUST_OCSP_REQUEST 7 |
342 | #define X509_TRUST_TSA 8 | ||
336 | 343 | ||
337 | /* Keep these up to date! */ | 344 | /* Keep these up to date! */ |
338 | #define X509_TRUST_MIN 1 | 345 | #define X509_TRUST_MIN 1 |
339 | #define X509_TRUST_MAX 7 | 346 | #define X509_TRUST_MAX 8 |
340 | 347 | ||
341 | 348 | ||
342 | /* trust_flags values */ | 349 | /* trust_flags values */ |
@@ -423,13 +430,17 @@ typedef struct x509_cert_pair_st { | |||
423 | XN_FLAG_FN_LN | \ | 430 | XN_FLAG_FN_LN | \ |
424 | XN_FLAG_FN_ALIGN) | 431 | XN_FLAG_FN_ALIGN) |
425 | 432 | ||
426 | typedef struct X509_revoked_st | 433 | struct x509_revoked_st |
427 | { | 434 | { |
428 | ASN1_INTEGER *serialNumber; | 435 | ASN1_INTEGER *serialNumber; |
429 | ASN1_TIME *revocationDate; | 436 | ASN1_TIME *revocationDate; |
430 | STACK_OF(X509_EXTENSION) /* optional */ *extensions; | 437 | STACK_OF(X509_EXTENSION) /* optional */ *extensions; |
438 | /* Set up if indirect CRL */ | ||
439 | STACK_OF(GENERAL_NAME) *issuer; | ||
440 | /* Revocation reason */ | ||
441 | int reason; | ||
431 | int sequence; /* load sequence */ | 442 | int sequence; /* load sequence */ |
432 | } X509_REVOKED; | 443 | }; |
433 | 444 | ||
434 | DECLARE_STACK_OF(X509_REVOKED) | 445 | DECLARE_STACK_OF(X509_REVOKED) |
435 | DECLARE_ASN1_SET_OF(X509_REVOKED) | 446 | DECLARE_ASN1_SET_OF(X509_REVOKED) |
@@ -453,6 +464,22 @@ struct X509_crl_st | |||
453 | X509_ALGOR *sig_alg; | 464 | X509_ALGOR *sig_alg; |
454 | ASN1_BIT_STRING *signature; | 465 | ASN1_BIT_STRING *signature; |
455 | int references; | 466 | int references; |
467 | int flags; | ||
468 | /* Copies of various extensions */ | ||
469 | AUTHORITY_KEYID *akid; | ||
470 | ISSUING_DIST_POINT *idp; | ||
471 | /* Convenient breakdown of IDP */ | ||
472 | int idp_flags; | ||
473 | int idp_reasons; | ||
474 | /* CRL and base CRL numbers for delta processing */ | ||
475 | ASN1_INTEGER *crl_number; | ||
476 | ASN1_INTEGER *base_crl_number; | ||
477 | #ifndef OPENSSL_NO_SHA | ||
478 | unsigned char sha1_hash[SHA_DIGEST_LENGTH]; | ||
479 | #endif | ||
480 | STACK_OF(GENERAL_NAMES) *issuers; | ||
481 | const X509_CRL_METHOD *meth; | ||
482 | void *meth_data; | ||
456 | } /* X509_CRL */; | 483 | } /* X509_CRL */; |
457 | 484 | ||
458 | DECLARE_STACK_OF(X509_CRL) | 485 | DECLARE_STACK_OF(X509_CRL) |
@@ -551,18 +578,19 @@ X509_ALGOR *prf; | |||
551 | 578 | ||
552 | /* PKCS#8 private key info structure */ | 579 | /* PKCS#8 private key info structure */ |
553 | 580 | ||
554 | typedef struct pkcs8_priv_key_info_st | 581 | struct pkcs8_priv_key_info_st |
555 | { | 582 | { |
556 | int broken; /* Flag for various broken formats */ | 583 | int broken; /* Flag for various broken formats */ |
557 | #define PKCS8_OK 0 | 584 | #define PKCS8_OK 0 |
558 | #define PKCS8_NO_OCTET 1 | 585 | #define PKCS8_NO_OCTET 1 |
559 | #define PKCS8_EMBEDDED_PARAM 2 | 586 | #define PKCS8_EMBEDDED_PARAM 2 |
560 | #define PKCS8_NS_DB 3 | 587 | #define PKCS8_NS_DB 3 |
588 | #define PKCS8_NEG_PRIVKEY 4 | ||
561 | ASN1_INTEGER *version; | 589 | ASN1_INTEGER *version; |
562 | X509_ALGOR *pkeyalg; | 590 | X509_ALGOR *pkeyalg; |
563 | ASN1_TYPE *pkey; /* Should be OCTET STRING but some are broken */ | 591 | ASN1_TYPE *pkey; /* Should be OCTET STRING but some are broken */ |
564 | STACK_OF(X509_ATTRIBUTE) *attributes; | 592 | STACK_OF(X509_ATTRIBUTE) *attributes; |
565 | } PKCS8_PRIV_KEY_INFO; | 593 | }; |
566 | 594 | ||
567 | #ifdef __cplusplus | 595 | #ifdef __cplusplus |
568 | } | 596 | } |
@@ -575,151 +603,6 @@ typedef struct pkcs8_priv_key_info_st | |||
575 | extern "C" { | 603 | extern "C" { |
576 | #endif | 604 | #endif |
577 | 605 | ||
578 | #ifdef SSLEAY_MACROS | ||
579 | #define X509_verify(a,r) ASN1_verify((int (*)())i2d_X509_CINF,a->sig_alg,\ | ||
580 | a->signature,(char *)a->cert_info,r) | ||
581 | #define X509_REQ_verify(a,r) ASN1_verify((int (*)())i2d_X509_REQ_INFO, \ | ||
582 | a->sig_alg,a->signature,(char *)a->req_info,r) | ||
583 | #define X509_CRL_verify(a,r) ASN1_verify((int (*)())i2d_X509_CRL_INFO, \ | ||
584 | a->sig_alg, a->signature,(char *)a->crl,r) | ||
585 | |||
586 | #define X509_sign(x,pkey,md) \ | ||
587 | ASN1_sign((int (*)())i2d_X509_CINF, x->cert_info->signature, \ | ||
588 | x->sig_alg, x->signature, (char *)x->cert_info,pkey,md) | ||
589 | #define X509_REQ_sign(x,pkey,md) \ | ||
590 | ASN1_sign((int (*)())i2d_X509_REQ_INFO,x->sig_alg, NULL, \ | ||
591 | x->signature, (char *)x->req_info,pkey,md) | ||
592 | #define X509_CRL_sign(x,pkey,md) \ | ||
593 | ASN1_sign((int (*)())i2d_X509_CRL_INFO,x->crl->sig_alg,x->sig_alg, \ | ||
594 | x->signature, (char *)x->crl,pkey,md) | ||
595 | #define NETSCAPE_SPKI_sign(x,pkey,md) \ | ||
596 | ASN1_sign((int (*)())i2d_NETSCAPE_SPKAC, x->sig_algor,NULL, \ | ||
597 | x->signature, (char *)x->spkac,pkey,md) | ||
598 | |||
599 | #define X509_dup(x509) (X509 *)ASN1_dup((int (*)())i2d_X509, \ | ||
600 | (char *(*)())d2i_X509,(char *)x509) | ||
601 | #define X509_ATTRIBUTE_dup(xa) (X509_ATTRIBUTE *)ASN1_dup(\ | ||
602 | (int (*)())i2d_X509_ATTRIBUTE, \ | ||
603 | (char *(*)())d2i_X509_ATTRIBUTE,(char *)xa) | ||
604 | #define X509_EXTENSION_dup(ex) (X509_EXTENSION *)ASN1_dup( \ | ||
605 | (int (*)())i2d_X509_EXTENSION, \ | ||
606 | (char *(*)())d2i_X509_EXTENSION,(char *)ex) | ||
607 | #define d2i_X509_fp(fp,x509) (X509 *)ASN1_d2i_fp((char *(*)())X509_new, \ | ||
608 | (char *(*)())d2i_X509, (fp),(unsigned char **)(x509)) | ||
609 | #define i2d_X509_fp(fp,x509) ASN1_i2d_fp(i2d_X509,fp,(unsigned char *)x509) | ||
610 | #define d2i_X509_bio(bp,x509) (X509 *)ASN1_d2i_bio((char *(*)())X509_new, \ | ||
611 | (char *(*)())d2i_X509, (bp),(unsigned char **)(x509)) | ||
612 | #define i2d_X509_bio(bp,x509) ASN1_i2d_bio(i2d_X509,bp,(unsigned char *)x509) | ||
613 | |||
614 | #define X509_CRL_dup(crl) (X509_CRL *)ASN1_dup((int (*)())i2d_X509_CRL, \ | ||
615 | (char *(*)())d2i_X509_CRL,(char *)crl) | ||
616 | #define d2i_X509_CRL_fp(fp,crl) (X509_CRL *)ASN1_d2i_fp((char *(*)()) \ | ||
617 | X509_CRL_new,(char *(*)())d2i_X509_CRL, (fp),\ | ||
618 | (unsigned char **)(crl)) | ||
619 | #define i2d_X509_CRL_fp(fp,crl) ASN1_i2d_fp(i2d_X509_CRL,fp,\ | ||
620 | (unsigned char *)crl) | ||
621 | #define d2i_X509_CRL_bio(bp,crl) (X509_CRL *)ASN1_d2i_bio((char *(*)()) \ | ||
622 | X509_CRL_new,(char *(*)())d2i_X509_CRL, (bp),\ | ||
623 | (unsigned char **)(crl)) | ||
624 | #define i2d_X509_CRL_bio(bp,crl) ASN1_i2d_bio(i2d_X509_CRL,bp,\ | ||
625 | (unsigned char *)crl) | ||
626 | |||
627 | #define PKCS7_dup(p7) (PKCS7 *)ASN1_dup((int (*)())i2d_PKCS7, \ | ||
628 | (char *(*)())d2i_PKCS7,(char *)p7) | ||
629 | #define d2i_PKCS7_fp(fp,p7) (PKCS7 *)ASN1_d2i_fp((char *(*)()) \ | ||
630 | PKCS7_new,(char *(*)())d2i_PKCS7, (fp),\ | ||
631 | (unsigned char **)(p7)) | ||
632 | #define i2d_PKCS7_fp(fp,p7) ASN1_i2d_fp(i2d_PKCS7,fp,\ | ||
633 | (unsigned char *)p7) | ||
634 | #define d2i_PKCS7_bio(bp,p7) (PKCS7 *)ASN1_d2i_bio((char *(*)()) \ | ||
635 | PKCS7_new,(char *(*)())d2i_PKCS7, (bp),\ | ||
636 | (unsigned char **)(p7)) | ||
637 | #define i2d_PKCS7_bio(bp,p7) ASN1_i2d_bio(i2d_PKCS7,bp,\ | ||
638 | (unsigned char *)p7) | ||
639 | |||
640 | #define X509_REQ_dup(req) (X509_REQ *)ASN1_dup((int (*)())i2d_X509_REQ, \ | ||
641 | (char *(*)())d2i_X509_REQ,(char *)req) | ||
642 | #define d2i_X509_REQ_fp(fp,req) (X509_REQ *)ASN1_d2i_fp((char *(*)())\ | ||
643 | X509_REQ_new, (char *(*)())d2i_X509_REQ, (fp),\ | ||
644 | (unsigned char **)(req)) | ||
645 | #define i2d_X509_REQ_fp(fp,req) ASN1_i2d_fp(i2d_X509_REQ,fp,\ | ||
646 | (unsigned char *)req) | ||
647 | #define d2i_X509_REQ_bio(bp,req) (X509_REQ *)ASN1_d2i_bio((char *(*)())\ | ||
648 | X509_REQ_new, (char *(*)())d2i_X509_REQ, (bp),\ | ||
649 | (unsigned char **)(req)) | ||
650 | #define i2d_X509_REQ_bio(bp,req) ASN1_i2d_bio(i2d_X509_REQ,bp,\ | ||
651 | (unsigned char *)req) | ||
652 | |||
653 | #define RSAPublicKey_dup(rsa) (RSA *)ASN1_dup((int (*)())i2d_RSAPublicKey, \ | ||
654 | (char *(*)())d2i_RSAPublicKey,(char *)rsa) | ||
655 | #define RSAPrivateKey_dup(rsa) (RSA *)ASN1_dup((int (*)())i2d_RSAPrivateKey, \ | ||
656 | (char *(*)())d2i_RSAPrivateKey,(char *)rsa) | ||
657 | |||
658 | #define d2i_RSAPrivateKey_fp(fp,rsa) (RSA *)ASN1_d2i_fp((char *(*)())\ | ||
659 | RSA_new,(char *(*)())d2i_RSAPrivateKey, (fp), \ | ||
660 | (unsigned char **)(rsa)) | ||
661 | #define i2d_RSAPrivateKey_fp(fp,rsa) ASN1_i2d_fp(i2d_RSAPrivateKey,fp, \ | ||
662 | (unsigned char *)rsa) | ||
663 | #define d2i_RSAPrivateKey_bio(bp,rsa) (RSA *)ASN1_d2i_bio((char *(*)())\ | ||
664 | RSA_new,(char *(*)())d2i_RSAPrivateKey, (bp), \ | ||
665 | (unsigned char **)(rsa)) | ||
666 | #define i2d_RSAPrivateKey_bio(bp,rsa) ASN1_i2d_bio(i2d_RSAPrivateKey,bp, \ | ||
667 | (unsigned char *)rsa) | ||
668 | |||
669 | #define d2i_RSAPublicKey_fp(fp,rsa) (RSA *)ASN1_d2i_fp((char *(*)())\ | ||
670 | RSA_new,(char *(*)())d2i_RSAPublicKey, (fp), \ | ||
671 | (unsigned char **)(rsa)) | ||
672 | #define i2d_RSAPublicKey_fp(fp,rsa) ASN1_i2d_fp(i2d_RSAPublicKey,fp, \ | ||
673 | (unsigned char *)rsa) | ||
674 | #define d2i_RSAPublicKey_bio(bp,rsa) (RSA *)ASN1_d2i_bio((char *(*)())\ | ||
675 | RSA_new,(char *(*)())d2i_RSAPublicKey, (bp), \ | ||
676 | (unsigned char **)(rsa)) | ||
677 | #define i2d_RSAPublicKey_bio(bp,rsa) ASN1_i2d_bio(i2d_RSAPublicKey,bp, \ | ||
678 | (unsigned char *)rsa) | ||
679 | |||
680 | #define d2i_DSAPrivateKey_fp(fp,dsa) (DSA *)ASN1_d2i_fp((char *(*)())\ | ||
681 | DSA_new,(char *(*)())d2i_DSAPrivateKey, (fp), \ | ||
682 | (unsigned char **)(dsa)) | ||
683 | #define i2d_DSAPrivateKey_fp(fp,dsa) ASN1_i2d_fp(i2d_DSAPrivateKey,fp, \ | ||
684 | (unsigned char *)dsa) | ||
685 | #define d2i_DSAPrivateKey_bio(bp,dsa) (DSA *)ASN1_d2i_bio((char *(*)())\ | ||
686 | DSA_new,(char *(*)())d2i_DSAPrivateKey, (bp), \ | ||
687 | (unsigned char **)(dsa)) | ||
688 | #define i2d_DSAPrivateKey_bio(bp,dsa) ASN1_i2d_bio(i2d_DSAPrivateKey,bp, \ | ||
689 | (unsigned char *)dsa) | ||
690 | |||
691 | #define d2i_ECPrivateKey_fp(fp,ecdsa) (EC_KEY *)ASN1_d2i_fp((char *(*)())\ | ||
692 | EC_KEY_new,(char *(*)())d2i_ECPrivateKey, (fp), \ | ||
693 | (unsigned char **)(ecdsa)) | ||
694 | #define i2d_ECPrivateKey_fp(fp,ecdsa) ASN1_i2d_fp(i2d_ECPrivateKey,fp, \ | ||
695 | (unsigned char *)ecdsa) | ||
696 | #define d2i_ECPrivateKey_bio(bp,ecdsa) (EC_KEY *)ASN1_d2i_bio((char *(*)())\ | ||
697 | EC_KEY_new,(char *(*)())d2i_ECPrivateKey, (bp), \ | ||
698 | (unsigned char **)(ecdsa)) | ||
699 | #define i2d_ECPrivateKey_bio(bp,ecdsa) ASN1_i2d_bio(i2d_ECPrivateKey,bp, \ | ||
700 | (unsigned char *)ecdsa) | ||
701 | |||
702 | #define X509_ALGOR_dup(xn) (X509_ALGOR *)ASN1_dup((int (*)())i2d_X509_ALGOR,\ | ||
703 | (char *(*)())d2i_X509_ALGOR,(char *)xn) | ||
704 | |||
705 | #define X509_NAME_dup(xn) (X509_NAME *)ASN1_dup((int (*)())i2d_X509_NAME, \ | ||
706 | (char *(*)())d2i_X509_NAME,(char *)xn) | ||
707 | #define X509_NAME_ENTRY_dup(ne) (X509_NAME_ENTRY *)ASN1_dup( \ | ||
708 | (int (*)())i2d_X509_NAME_ENTRY, \ | ||
709 | (char *(*)())d2i_X509_NAME_ENTRY,\ | ||
710 | (char *)ne) | ||
711 | |||
712 | #define X509_digest(data,type,md,len) \ | ||
713 | ASN1_digest((int (*)())i2d_X509,type,(char *)data,md,len) | ||
714 | #define X509_NAME_digest(data,type,md,len) \ | ||
715 | ASN1_digest((int (*)())i2d_X509_NAME,type,(char *)data,md,len) | ||
716 | #ifndef PKCS7_ISSUER_AND_SERIAL_digest | ||
717 | #define PKCS7_ISSUER_AND_SERIAL_digest(data,type,md,len) \ | ||
718 | ASN1_digest((int (*)())i2d_PKCS7_ISSUER_AND_SERIAL,type,\ | ||
719 | (char *)data,md,len) | ||
720 | #endif | ||
721 | #endif | ||
722 | |||
723 | #define X509_EXT_PACK_UNKNOWN 1 | 606 | #define X509_EXT_PACK_UNKNOWN 1 |
724 | #define X509_EXT_PACK_STRING 2 | 607 | #define X509_EXT_PACK_STRING 2 |
725 | 608 | ||
@@ -740,6 +623,18 @@ extern "C" { | |||
740 | #define X509_CRL_get_issuer(x) ((x)->crl->issuer) | 623 | #define X509_CRL_get_issuer(x) ((x)->crl->issuer) |
741 | #define X509_CRL_get_REVOKED(x) ((x)->crl->revoked) | 624 | #define X509_CRL_get_REVOKED(x) ((x)->crl->revoked) |
742 | 625 | ||
626 | void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); | ||
627 | X509_CRL_METHOD *X509_CRL_METHOD_new( | ||
628 | int (*crl_init)(X509_CRL *crl), | ||
629 | int (*crl_free)(X509_CRL *crl), | ||
630 | int (*crl_lookup)(X509_CRL *crl, X509_REVOKED **ret, | ||
631 | ASN1_INTEGER *ser, X509_NAME *issuer), | ||
632 | int (*crl_verify)(X509_CRL *crl, EVP_PKEY *pk)); | ||
633 | void X509_CRL_METHOD_free(X509_CRL_METHOD *m); | ||
634 | |||
635 | void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); | ||
636 | void *X509_CRL_get_meth_data(X509_CRL *crl); | ||
637 | |||
743 | /* This one is only used so that a binary form can output, as in | 638 | /* This one is only used so that a binary form can output, as in |
744 | * i2d_X509_NAME(X509_get_X509_PUBKEY(x),&buf) */ | 639 | * i2d_X509_NAME(X509_get_X509_PUBKEY(x),&buf) */ |
745 | #define X509_get_X509_PUBKEY(x) ((x)->cert_info->key) | 640 | #define X509_get_X509_PUBKEY(x) ((x)->cert_info->key) |
@@ -747,7 +642,6 @@ extern "C" { | |||
747 | 642 | ||
748 | const char *X509_verify_cert_error_string(long n); | 643 | const char *X509_verify_cert_error_string(long n); |
749 | 644 | ||
750 | #ifndef SSLEAY_MACROS | ||
751 | #ifndef OPENSSL_NO_EVP | 645 | #ifndef OPENSSL_NO_EVP |
752 | int X509_verify(X509 *a, EVP_PKEY *r); | 646 | int X509_verify(X509 *a, EVP_PKEY *r); |
753 | 647 | ||
@@ -872,11 +766,11 @@ void X509_ALGOR_get0(ASN1_OBJECT **paobj, int *pptype, void **ppval, | |||
872 | X509_NAME *X509_NAME_dup(X509_NAME *xn); | 766 | X509_NAME *X509_NAME_dup(X509_NAME *xn); |
873 | X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); | 767 | X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); |
874 | 768 | ||
875 | #endif /* !SSLEAY_MACROS */ | 769 | int X509_cmp_time(const ASN1_TIME *s, time_t *t); |
876 | 770 | int X509_cmp_current_time(const ASN1_TIME *s); | |
877 | int X509_cmp_time(ASN1_TIME *s, time_t *t); | ||
878 | int X509_cmp_current_time(ASN1_TIME *s); | ||
879 | ASN1_TIME * X509_time_adj(ASN1_TIME *s, long adj, time_t *t); | 771 | ASN1_TIME * X509_time_adj(ASN1_TIME *s, long adj, time_t *t); |
772 | ASN1_TIME * X509_time_adj_ex(ASN1_TIME *s, | ||
773 | int offset_day, long offset_sec, time_t *t); | ||
880 | ASN1_TIME * X509_gmtime_adj(ASN1_TIME *s, long adj); | 774 | ASN1_TIME * X509_gmtime_adj(ASN1_TIME *s, long adj); |
881 | 775 | ||
882 | const char * X509_get_default_cert_area(void ); | 776 | const char * X509_get_default_cert_area(void ); |
@@ -964,6 +858,9 @@ DECLARE_ASN1_FUNCTIONS(X509_CRL_INFO) | |||
964 | DECLARE_ASN1_FUNCTIONS(X509_CRL) | 858 | DECLARE_ASN1_FUNCTIONS(X509_CRL) |
965 | 859 | ||
966 | int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); | 860 | int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); |
861 | int X509_CRL_get0_by_serial(X509_CRL *crl, | ||
862 | X509_REVOKED **ret, ASN1_INTEGER *serial); | ||
863 | int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); | ||
967 | 864 | ||
968 | X509_PKEY * X509_PKEY_new(void ); | 865 | X509_PKEY * X509_PKEY_new(void ); |
969 | void X509_PKEY_free(X509_PKEY *a); | 866 | void X509_PKEY_free(X509_PKEY *a); |
@@ -1007,8 +904,8 @@ int X509_set_issuer_name(X509 *x, X509_NAME *name); | |||
1007 | X509_NAME * X509_get_issuer_name(X509 *a); | 904 | X509_NAME * X509_get_issuer_name(X509 *a); |
1008 | int X509_set_subject_name(X509 *x, X509_NAME *name); | 905 | int X509_set_subject_name(X509 *x, X509_NAME *name); |
1009 | X509_NAME * X509_get_subject_name(X509 *a); | 906 | X509_NAME * X509_get_subject_name(X509 *a); |
1010 | int X509_set_notBefore(X509 *x, ASN1_TIME *tm); | 907 | int X509_set_notBefore(X509 *x, const ASN1_TIME *tm); |
1011 | int X509_set_notAfter(X509 *x, ASN1_TIME *tm); | 908 | int X509_set_notAfter(X509 *x, const ASN1_TIME *tm); |
1012 | int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); | 909 | int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); |
1013 | EVP_PKEY * X509_get_pubkey(X509 *x); | 910 | EVP_PKEY * X509_get_pubkey(X509 *x); |
1014 | ASN1_BIT_STRING * X509_get0_pubkey_bitstr(const X509 *x); | 911 | ASN1_BIT_STRING * X509_get0_pubkey_bitstr(const X509 *x); |
@@ -1045,8 +942,8 @@ int X509_REQ_add1_attr_by_txt(X509_REQ *req, | |||
1045 | 942 | ||
1046 | int X509_CRL_set_version(X509_CRL *x, long version); | 943 | int X509_CRL_set_version(X509_CRL *x, long version); |
1047 | int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); | 944 | int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); |
1048 | int X509_CRL_set_lastUpdate(X509_CRL *x, ASN1_TIME *tm); | 945 | int X509_CRL_set_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); |
1049 | int X509_CRL_set_nextUpdate(X509_CRL *x, ASN1_TIME *tm); | 946 | int X509_CRL_set_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); |
1050 | int X509_CRL_sort(X509_CRL *crl); | 947 | int X509_CRL_sort(X509_CRL *crl); |
1051 | 948 | ||
1052 | int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); | 949 | int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); |
@@ -1065,11 +962,18 @@ unsigned long X509_issuer_name_hash(X509 *a); | |||
1065 | int X509_subject_name_cmp(const X509 *a, const X509 *b); | 962 | int X509_subject_name_cmp(const X509 *a, const X509 *b); |
1066 | unsigned long X509_subject_name_hash(X509 *x); | 963 | unsigned long X509_subject_name_hash(X509 *x); |
1067 | 964 | ||
965 | #ifndef OPENSSL_NO_MD5 | ||
966 | unsigned long X509_issuer_name_hash_old(X509 *a); | ||
967 | unsigned long X509_subject_name_hash_old(X509 *x); | ||
968 | #endif | ||
969 | |||
1068 | int X509_cmp(const X509 *a, const X509 *b); | 970 | int X509_cmp(const X509 *a, const X509 *b); |
1069 | int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); | 971 | int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); |
1070 | unsigned long X509_NAME_hash(X509_NAME *x); | 972 | unsigned long X509_NAME_hash(X509_NAME *x); |
973 | unsigned long X509_NAME_hash_old(X509_NAME *x); | ||
1071 | 974 | ||
1072 | int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); | 975 | int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); |
976 | int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); | ||
1073 | #ifndef OPENSSL_NO_FP_API | 977 | #ifndef OPENSSL_NO_FP_API |
1074 | int X509_print_ex_fp(FILE *bp,X509 *x, unsigned long nmflag, unsigned long cflag); | 978 | int X509_print_ex_fp(FILE *bp,X509 *x, unsigned long nmflag, unsigned long cflag); |
1075 | int X509_print_fp(FILE *bp,X509 *x); | 979 | int X509_print_fp(FILE *bp,X509 *x); |
@@ -1245,9 +1149,16 @@ DECLARE_ASN1_FUNCTIONS(PBEPARAM) | |||
1245 | DECLARE_ASN1_FUNCTIONS(PBE2PARAM) | 1149 | DECLARE_ASN1_FUNCTIONS(PBE2PARAM) |
1246 | DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) | 1150 | DECLARE_ASN1_FUNCTIONS(PBKDF2PARAM) |
1247 | 1151 | ||
1248 | X509_ALGOR *PKCS5_pbe_set(int alg, int iter, unsigned char *salt, int saltlen); | 1152 | int PKCS5_pbe_set0_algor(X509_ALGOR *algor, int alg, int iter, |
1153 | const unsigned char *salt, int saltlen); | ||
1154 | |||
1155 | X509_ALGOR *PKCS5_pbe_set(int alg, int iter, | ||
1156 | const unsigned char *salt, int saltlen); | ||
1249 | X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, | 1157 | X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, |
1250 | unsigned char *salt, int saltlen); | 1158 | unsigned char *salt, int saltlen); |
1159 | X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, | ||
1160 | unsigned char *salt, int saltlen, | ||
1161 | unsigned char *aiv, int prf_nid); | ||
1251 | 1162 | ||
1252 | /* PKCS#8 utilities */ | 1163 | /* PKCS#8 utilities */ |
1253 | 1164 | ||
@@ -1258,6 +1169,22 @@ PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); | |||
1258 | PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken); | 1169 | PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8_broken(EVP_PKEY *pkey, int broken); |
1259 | PKCS8_PRIV_KEY_INFO *PKCS8_set_broken(PKCS8_PRIV_KEY_INFO *p8, int broken); | 1170 | PKCS8_PRIV_KEY_INFO *PKCS8_set_broken(PKCS8_PRIV_KEY_INFO *p8, int broken); |
1260 | 1171 | ||
1172 | int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, | ||
1173 | int version, int ptype, void *pval, | ||
1174 | unsigned char *penc, int penclen); | ||
1175 | int PKCS8_pkey_get0(ASN1_OBJECT **ppkalg, | ||
1176 | const unsigned char **pk, int *ppklen, | ||
1177 | X509_ALGOR **pa, | ||
1178 | PKCS8_PRIV_KEY_INFO *p8); | ||
1179 | |||
1180 | int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, | ||
1181 | int ptype, void *pval, | ||
1182 | unsigned char *penc, int penclen); | ||
1183 | int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, | ||
1184 | const unsigned char **pk, int *ppklen, | ||
1185 | X509_ALGOR **pa, | ||
1186 | X509_PUBKEY *pub); | ||
1187 | |||
1261 | int X509_check_trust(X509 *x, int id, int flags); | 1188 | int X509_check_trust(X509 *x, int id, int flags); |
1262 | int X509_TRUST_get_count(void); | 1189 | int X509_TRUST_get_count(void); |
1263 | X509_TRUST * X509_TRUST_get0(int idx); | 1190 | X509_TRUST * X509_TRUST_get0(int idx); |
@@ -1337,7 +1264,10 @@ void ERR_load_X509_strings(void); | |||
1337 | #define X509_R_KEY_VALUES_MISMATCH 116 | 1264 | #define X509_R_KEY_VALUES_MISMATCH 116 |
1338 | #define X509_R_LOADING_CERT_DIR 103 | 1265 | #define X509_R_LOADING_CERT_DIR 103 |
1339 | #define X509_R_LOADING_DEFAULTS 104 | 1266 | #define X509_R_LOADING_DEFAULTS 104 |
1267 | #define X509_R_METHOD_NOT_SUPPORTED 124 | ||
1340 | #define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 | 1268 | #define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 |
1269 | #define X509_R_PUBLIC_KEY_DECODE_ERROR 125 | ||
1270 | #define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 | ||
1341 | #define X509_R_SHOULD_RETRY 106 | 1271 | #define X509_R_SHOULD_RETRY 106 |
1342 | #define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 | 1272 | #define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 |
1343 | #define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 | 1273 | #define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 |