67 #include <openssl/e_os2.h>
68 #include <openssl/symhacks.h>
69 #ifndef OPENSSL_NO_BUFFER
70 #include <openssl/buffer.h>
72 #ifndef OPENSSL_NO_EVP
73 #include <openssl/evp.h>
75 #ifndef OPENSSL_NO_BIO
76 #include <openssl/bio.h>
78 #include <openssl/stack.h>
79 #include <openssl/asn1.h>
80 #include <openssl/safestack.h>
83 #include <openssl/ec.h>
86 #ifndef OPENSSL_NO_ECDSA
87 #include <openssl/ecdsa.h>
90 #ifndef OPENSSL_NO_ECDH
91 #include <openssl/ecdh.h>
94 #ifndef OPENSSL_NO_DEPRECATED
95 #ifndef OPENSSL_NO_RSA
96 #include <openssl/rsa.h>
98 #ifndef OPENSSL_NO_DSA
99 #include <openssl/dsa.h>
101 #ifndef OPENSSL_NO_DH
102 #include <openssl/dh.h>
106 #ifndef OPENSSL_NO_SHA
107 #include <openssl/sha.h>
109 #include <openssl/ossl_typ.h>
115 #ifdef OPENSSL_SYS_WIN32
118 #undef X509_CERT_PAIR
119 #undef X509_EXTENSIONS
122 #define X509_FILETYPE_PEM 1
123 #define X509_FILETYPE_ASN1 2
124 #define X509_FILETYPE_DEFAULT 3
126 #define X509v3_KU_DIGITAL_SIGNATURE 0x0080
127 #define X509v3_KU_NON_REPUDIATION 0x0040
128 #define X509v3_KU_KEY_ENCIPHERMENT 0x0020
129 #define X509v3_KU_DATA_ENCIPHERMENT 0x0010
130 #define X509v3_KU_KEY_AGREEMENT 0x0008
131 #define X509v3_KU_KEY_CERT_SIGN 0x0004
132 #define X509v3_KU_CRL_SIGN 0x0002
133 #define X509v3_KU_ENCIPHER_ONLY 0x0001
134 #define X509v3_KU_DECIPHER_ONLY 0x8000
135 #define X509v3_KU_UNDEF 0xffff
189 #ifndef OPENSSL_NO_BUFFER
195 unsigned char *canon_enc;
201 #define X509_EX_V_NETSCAPE_HACK 0x8000
202 #define X509_EX_V_INIT 0x0001
206 ASN1_BOOLEAN critical;
291 unsigned long ex_flags;
292 unsigned long ex_kusage;
293 unsigned long ex_xkusage;
294 unsigned long ex_nscert;
297 X509_POLICY_CACHE *policy_cache;
301 #ifndef OPENSSL_NO_RFC3779
305 #ifndef OPENSSL_NO_SHA
306 unsigned char sha1_hash[SHA_DIGEST_LENGTH];
311 DECLARE_STACK_OF(
X509)
312 DECLARE_ASN1_SET_OF(
X509)
319 int (*check_trust)(
struct x509_trust_st *,
X509 *, int);
334 #define X509_TRUST_DEFAULT -1
336 #define X509_TRUST_COMPAT 1
337 #define X509_TRUST_SSL_CLIENT 2
338 #define X509_TRUST_SSL_SERVER 3
339 #define X509_TRUST_EMAIL 4
340 #define X509_TRUST_OBJECT_SIGN 5
341 #define X509_TRUST_OCSP_SIGN 6
342 #define X509_TRUST_OCSP_REQUEST 7
343 #define X509_TRUST_TSA 8
346 #define X509_TRUST_MIN 1
347 #define X509_TRUST_MAX 8
351 #define X509_TRUST_DYNAMIC 1
352 #define X509_TRUST_DYNAMIC_NAME 2
356 #define X509_TRUST_TRUSTED 1
357 #define X509_TRUST_REJECTED 2
358 #define X509_TRUST_UNTRUSTED 3
362 #define X509_FLAG_COMPAT 0
363 #define X509_FLAG_NO_HEADER 1L
364 #define X509_FLAG_NO_VERSION (1L << 1)
365 #define X509_FLAG_NO_SERIAL (1L << 2)
366 #define X509_FLAG_NO_SIGNAME (1L << 3)
367 #define X509_FLAG_NO_ISSUER (1L << 4)
368 #define X509_FLAG_NO_VALIDITY (1L << 5)
369 #define X509_FLAG_NO_SUBJECT (1L << 6)
370 #define X509_FLAG_NO_PUBKEY (1L << 7)
371 #define X509_FLAG_NO_EXTENSIONS (1L << 8)
372 #define X509_FLAG_NO_SIGDUMP (1L << 9)
373 #define X509_FLAG_NO_AUX (1L << 10)
374 #define X509_FLAG_NO_ATTRIBUTES (1L << 11)
380 #define XN_FLAG_SEP_MASK (0xf << 16)
382 #define XN_FLAG_COMPAT 0
383 #define XN_FLAG_SEP_COMMA_PLUS (1 << 16)
384 #define XN_FLAG_SEP_CPLUS_SPC (2 << 16)
385 #define XN_FLAG_SEP_SPLUS_SPC (3 << 16)
386 #define XN_FLAG_SEP_MULTILINE (4 << 16)
388 #define XN_FLAG_DN_REV (1 << 20)
392 #define XN_FLAG_FN_MASK (0x3 << 21)
394 #define XN_FLAG_FN_SN 0
395 #define XN_FLAG_FN_LN (1 << 21)
396 #define XN_FLAG_FN_OID (2 << 21)
397 #define XN_FLAG_FN_NONE (3 << 21)
399 #define XN_FLAG_SPC_EQ (1 << 23)
405 #define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24)
407 #define XN_FLAG_FN_ALIGN (1 << 25)
411 #define XN_FLAG_RFC2253 (ASN1_STRFLGS_RFC2253 | \
412 XN_FLAG_SEP_COMMA_PLUS | \
415 XN_FLAG_DUMP_UNKNOWN_FIELDS)
419 #define XN_FLAG_ONELINE (ASN1_STRFLGS_RFC2253 | \
420 ASN1_STRFLGS_ESC_QUOTE | \
421 XN_FLAG_SEP_CPLUS_SPC | \
427 #define XN_FLAG_MULTILINE (ASN1_STRFLGS_ESC_CTRL | \
428 ASN1_STRFLGS_ESC_MSB | \
429 XN_FLAG_SEP_MULTILINE | \
478 #ifndef OPENSSL_NO_SHA
479 unsigned char sha1_hash[SHA_DIGEST_LENGTH];
481 STACK_OF(GENERAL_NAMES) *issuers;
482 const X509_CRL_METHOD *meth;
510 #ifndef OPENSSL_NO_EVP
548 STACK_OF(
X509) *certs;
586 #define PKCS8_NO_OCTET 1
587 #define PKCS8_EMBEDDED_PARAM 2
588 #define PKCS8_NS_DB 3
589 #define PKCS8_NEG_PRIVKEY 4
600 #include <openssl/x509_vfy.h>
601 #include <openssl/pkcs7.h>
607 #define X509_EXT_PACK_UNKNOWN 1
608 #define X509_EXT_PACK_STRING 2
610 #define X509_get_version(x) ASN1_INTEGER_get((x)->cert_info->version)
612 #define X509_get_notBefore(x) ((x)->cert_info->validity->notBefore)
613 #define X509_get_notAfter(x) ((x)->cert_info->validity->notAfter)
614 #define X509_extract_key(x) X509_get_pubkey(x)
615 #define X509_REQ_get_version(x) ASN1_INTEGER_get((x)->req_info->version)
616 #define X509_REQ_get_subject_name(x) ((x)->req_info->subject)
617 #define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a)
618 #define X509_name_cmp(a,b) X509_NAME_cmp((a),(b))
619 #define X509_get_signature_type(x) EVP_PKEY_type(OBJ_obj2nid((x)->sig_alg->algorithm))
621 #define X509_CRL_get_version(x) ASN1_INTEGER_get((x)->crl->version)
622 #define X509_CRL_get_lastUpdate(x) ((x)->crl->lastUpdate)
623 #define X509_CRL_get_nextUpdate(x) ((x)->crl->nextUpdate)
624 #define X509_CRL_get_issuer(x) ((x)->crl->issuer)
625 #define X509_CRL_get_REVOKED(x) ((x)->crl->revoked)
627 void X509_CRL_set_default_method(
const X509_CRL_METHOD *meth);
628 X509_CRL_METHOD *X509_CRL_METHOD_new(
634 void X509_CRL_METHOD_free(X509_CRL_METHOD *m);
636 void X509_CRL_set_meth_data(
X509_CRL *crl,
void *dat);
637 void *X509_CRL_get_meth_data(
X509_CRL *crl);
641 #define X509_get_X509_PUBKEY(x) ((x)->cert_info->key)
644 const char *X509_verify_cert_error_string(
long n);
646 #ifndef OPENSSL_NO_EVP
653 NETSCAPE_SPKI * NETSCAPE_SPKI_b64_decode(
const char *str,
int len);
660 int X509_signature_dump(
BIO *bp,
const ASN1_STRING *sig,
int indent);
671 int X509_pubkey_digest(
const X509 *data,
const EVP_MD *type,
672 unsigned char *md,
unsigned int *len);
673 int X509_digest(
const X509 *data,
const EVP_MD *type,
674 unsigned char *md,
unsigned int *len);
676 unsigned char *md,
unsigned int *len);
678 unsigned char *md,
unsigned int *len);
680 unsigned char *md,
unsigned int *len);
683 #ifndef OPENSSL_NO_FP_API
684 X509 *d2i_X509_fp(FILE *fp,
X509 **x509);
685 int i2d_X509_fp(FILE *fp,
X509 *x509);
687 int i2d_X509_CRL_fp(FILE *fp,
X509_CRL *crl);
689 int i2d_X509_REQ_fp(FILE *fp,
X509_REQ *req);
690 #ifndef OPENSSL_NO_RSA
691 RSA *d2i_RSAPrivateKey_fp(FILE *fp,
RSA **rsa);
692 int i2d_RSAPrivateKey_fp(FILE *fp,
RSA *rsa);
693 RSA *d2i_RSAPublicKey_fp(FILE *fp,
RSA **rsa);
694 int i2d_RSAPublicKey_fp(FILE *fp,
RSA *rsa);
695 RSA *d2i_RSA_PUBKEY_fp(FILE *fp,
RSA **rsa);
696 int i2d_RSA_PUBKEY_fp(FILE *fp,
RSA *rsa);
698 #ifndef OPENSSL_NO_DSA
699 DSA *d2i_DSA_PUBKEY_fp(FILE *fp,
DSA **dsa);
700 int i2d_DSA_PUBKEY_fp(FILE *fp,
DSA *dsa);
701 DSA *d2i_DSAPrivateKey_fp(FILE *fp,
DSA **dsa);
702 int i2d_DSAPrivateKey_fp(FILE *fp,
DSA *dsa);
704 #ifndef OPENSSL_NO_EC
705 EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey);
706 int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey);
707 EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey);
708 int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey);
711 int i2d_PKCS8_fp(FILE *fp,
X509_SIG *p8);
715 int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp,
EVP_PKEY *key);
716 int i2d_PrivateKey_fp(FILE *fp,
EVP_PKEY *pkey);
718 int i2d_PUBKEY_fp(FILE *fp,
EVP_PKEY *pkey);
722 #ifndef OPENSSL_NO_BIO
724 int i2d_X509_bio(
BIO *bp,
X509 *x509);
729 #ifndef OPENSSL_NO_RSA
730 RSA *d2i_RSAPrivateKey_bio(
BIO *bp,
RSA **rsa);
731 int i2d_RSAPrivateKey_bio(
BIO *bp,
RSA *rsa);
732 RSA *d2i_RSAPublicKey_bio(
BIO *bp,
RSA **rsa);
733 int i2d_RSAPublicKey_bio(
BIO *bp,
RSA *rsa);
734 RSA *d2i_RSA_PUBKEY_bio(
BIO *bp,
RSA **rsa);
735 int i2d_RSA_PUBKEY_bio(
BIO *bp,
RSA *rsa);
737 #ifndef OPENSSL_NO_DSA
738 DSA *d2i_DSA_PUBKEY_bio(
BIO *bp,
DSA **dsa);
739 int i2d_DSA_PUBKEY_bio(
BIO *bp,
DSA *dsa);
740 DSA *d2i_DSAPrivateKey_bio(
BIO *bp,
DSA **dsa);
741 int i2d_DSAPrivateKey_bio(
BIO *bp,
DSA *dsa);
743 #ifndef OPENSSL_NO_EC
744 EC_KEY *d2i_EC_PUBKEY_bio(
BIO *bp, EC_KEY **eckey);
745 int i2d_EC_PUBKEY_bio(
BIO *bp, EC_KEY *eckey);
746 EC_KEY *d2i_ECPrivateKey_bio(
BIO *bp, EC_KEY **eckey);
747 int i2d_ECPrivateKey_bio(
BIO *bp, EC_KEY *eckey);
754 int i2d_PKCS8PrivateKeyInfo_bio(
BIO *bp,
EVP_PKEY *key);
768 void X509_ALGOR_get0(
ASN1_OBJECT **paobj,
int *pptype,
void **ppval,
775 int X509_cmp_time(
const ASN1_TIME *s, time_t *t);
776 int X509_cmp_current_time(
const ASN1_TIME *s);
779 int offset_day,
long offset_sec, time_t *t);
782 const char * X509_get_default_cert_area(
void );
783 const char * X509_get_default_cert_dir(
void );
784 const char * X509_get_default_cert_file(
void );
785 const char * X509_get_default_cert_dir_env(
void );
786 const char * X509_get_default_cert_file_env(
void );
787 const char * X509_get_default_private_dir(
void );
793 DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS)
800 int X509_get_pubkey_parameters(
EVP_PKEY *pkey,
801 STACK_OF(
X509) *chain);
802 int i2d_PUBKEY(
EVP_PKEY *a,
unsigned char **pp);
805 #ifndef OPENSSL_NO_RSA
806 int i2d_RSA_PUBKEY(
RSA *a,
unsigned char **pp);
807 RSA * d2i_RSA_PUBKEY(
RSA **a,
const unsigned char **pp,
810 #ifndef OPENSSL_NO_DSA
811 int i2d_DSA_PUBKEY(
DSA *a,
unsigned char **pp);
812 DSA * d2i_DSA_PUBKEY(
DSA **a,
const unsigned char **pp,
815 #ifndef OPENSSL_NO_EC
816 int i2d_EC_PUBKEY(EC_KEY *a,
unsigned char **pp);
817 EC_KEY *d2i_EC_PUBKEY(EC_KEY **a,
const unsigned char **pp,
826 X509_ATTRIBUTE *X509_ATTRIBUTE_create(
int nid,
int atrtype,
void *value);
829 DECLARE_ASN1_ENCODE_FUNCTIONS(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS)
839 DECLARE_ASN1_FUNCTIONS(
X509)
844 int X509_get_ex_new_index(
long argl,
void *argp, CRYPTO_EX_new *new_func,
845 CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);
846 int X509_set_ex_data(
X509 *r,
int idx,
void *arg);
847 void *X509_get_ex_data(
X509 *r,
int idx);
848 int i2d_X509_AUX(
X509 *a,
unsigned char **pp);
849 X509 * d2i_X509_AUX(
X509 **a,const
unsigned char **pp,
long length);
851 int X509_alias_set1(
X509 *x,
unsigned char *name,
int len);
852 int X509_keyid_set1(
X509 *x,
unsigned char *
id,
int len);
853 unsigned char * X509_alias_get0(
X509 *x,
int *len);
854 unsigned char * X509_keyid_get0(
X509 *x,
int *len);
855 int (*X509_TRUST_set_default(
int (*trust)(
int ,
X509 *,
int)))(
int, X509 *,
int);
856 int X509_TRUST_set(
int *t,
int trust);
857 int X509_add1_trust_object(X509 *x,
ASN1_OBJECT *obj);
858 int X509_add1_reject_object(X509 *x,
ASN1_OBJECT *obj);
859 void X509_trust_clear(X509 *x);
860 void X509_reject_clear(X509 *x);
867 int X509_CRL_get0_by_serial(
X509_CRL *crl,
873 int i2d_X509_PKEY(
X509_PKEY *a,
unsigned char **pp);
880 #ifndef OPENSSL_NO_EVP
883 char * X509_NAME_oneline(
X509_NAME *a,
char *buf,
int size);
885 int ASN1_verify(i2d_of_void *i2d,
X509_ALGOR *algor1,
888 int ASN1_digest(i2d_of_void *i2d,
const EVP_MD *type,
char *data,
889 unsigned char *md,
unsigned int *len);
891 int ASN1_sign(i2d_of_void *i2d,
X509_ALGOR *algor1,
895 int ASN1_item_digest(
const ASN1_ITEM *it,
const EVP_MD *type,
void *data,
896 unsigned char *md,
unsigned int *len);
904 int ASN1_item_sign_ctx(
const ASN1_ITEM *it,
909 int X509_set_version(X509 *x,
long version);
910 int X509_set_serialNumber(X509 *x,
ASN1_INTEGER *serial);
912 int X509_set_issuer_name(X509 *x,
X509_NAME *name);
913 X509_NAME * X509_get_issuer_name(X509 *a);
914 int X509_set_subject_name(X509 *x,
X509_NAME *name);
915 X509_NAME * X509_get_subject_name(X509 *a);
916 int X509_set_notBefore(X509 *x,
const ASN1_TIME *tm);
917 int X509_set_notAfter(X509 *x,
const ASN1_TIME *tm);
918 int X509_set_pubkey(X509 *x,
EVP_PKEY *pkey);
919 EVP_PKEY * X509_get_pubkey(X509 *x);
921 int X509_certificate_type(X509 *x,
EVP_PKEY *pubkey );
923 int X509_REQ_set_version(
X509_REQ *x,
long version);
927 int X509_REQ_extension_nid(
int nid);
928 int * X509_REQ_get_extension_nids(
void);
929 void X509_REQ_set_extension_nids(
int *nids);
934 int X509_REQ_get_attr_count(
const X509_REQ *req);
935 int X509_REQ_get_attr_by_NID(
const X509_REQ *req,
int nid,
942 int X509_REQ_add1_attr_by_OBJ(
X509_REQ *req,
944 const unsigned char *bytes,
int len);
945 int X509_REQ_add1_attr_by_NID(
X509_REQ *req,
947 const unsigned char *bytes,
int len);
948 int X509_REQ_add1_attr_by_txt(
X509_REQ *req,
949 const char *attrname,
int type,
950 const unsigned char *bytes,
int len);
952 int X509_CRL_set_version(
X509_CRL *x,
long version);
963 int X509_check_private_key(X509 *x509,
EVP_PKEY *pkey);
965 int X509_issuer_and_serial_cmp(
const X509 *a,
const X509 *b);
966 unsigned long X509_issuer_and_serial_hash(X509 *a);
968 int X509_issuer_name_cmp(
const X509 *a,
const X509 *b);
969 unsigned long X509_issuer_name_hash(X509 *a);
971 int X509_subject_name_cmp(
const X509 *a,
const X509 *b);
972 unsigned long X509_subject_name_hash(X509 *x);
974 #ifndef OPENSSL_NO_MD5
975 unsigned long X509_issuer_name_hash_old(X509 *a);
976 unsigned long X509_subject_name_hash_old(X509 *x);
979 int X509_cmp(
const X509 *a,
const X509 *b);
981 unsigned long X509_NAME_hash(
X509_NAME *x);
982 unsigned long X509_NAME_hash_old(
X509_NAME *x);
986 #ifndef OPENSSL_NO_FP_API
987 int X509_print_ex_fp(FILE *bp,X509 *x,
unsigned long nmflag,
unsigned long cflag);
988 int X509_print_fp(FILE *bp,X509 *x);
989 int X509_CRL_print_fp(FILE *bp,
X509_CRL *x);
990 int X509_REQ_print_fp(FILE *bp,
X509_REQ *req);
991 int X509_NAME_print_ex_fp(FILE *fp,
X509_NAME *nm,
int indent,
unsigned long flags);
994 #ifndef OPENSSL_NO_BIO
995 int X509_NAME_print(
BIO *bp,
X509_NAME *name,
int obase);
996 int X509_NAME_print_ex(
BIO *out,
X509_NAME *nm,
int indent,
unsigned long flags);
997 int X509_print_ex(
BIO *bp,X509 *x,
unsigned long nmflag,
unsigned long cflag);
998 int X509_print(
BIO *bp,X509 *x);
999 int X509_ocspid_print(
BIO *bp,X509 *x);
1002 int X509_REQ_print_ex(
BIO *bp,
X509_REQ *x,
unsigned long nmflag,
unsigned long cflag);
1006 int X509_NAME_entry_count(
X509_NAME *name);
1007 int X509_NAME_get_text_by_NID(
X509_NAME *name,
int nid,
1014 int X509_NAME_get_index_by_NID(
X509_NAME *name,
int nid,
int lastpos);
1022 unsigned char *bytes,
int len,
int loc,
int set);
1023 int X509_NAME_add_entry_by_NID(
X509_NAME *name,
int nid,
int type,
1024 unsigned char *bytes,
int len,
int loc,
int set);
1026 const char *field,
int type,
const unsigned char *bytes,
int len);
1028 int type,
unsigned char *bytes,
int len);
1029 int X509_NAME_add_entry_by_txt(
X509_NAME *name,
const char *field,
int type,
1030 const unsigned char *bytes,
int len,
int loc,
int set);
1032 ASN1_OBJECT *obj,
int type,
const unsigned char *bytes,
1037 const unsigned char *bytes,
int len);
1043 int nid,
int lastpos);
1046 int X509v3_get_ext_by_critical(
const STACK_OF(
X509_EXTENSION) *x,
1047 int crit,
int lastpos);
1053 int X509_get_ext_count(X509 *x);
1054 int X509_get_ext_by_NID(X509 *x,
int nid,
int lastpos);
1055 int X509_get_ext_by_OBJ(X509 *x,
ASN1_OBJECT *obj,
int lastpos);
1056 int X509_get_ext_by_critical(X509 *x,
int crit,
int lastpos);
1060 void * X509_get_ext_d2i(X509 *x,
int nid,
int *crit,
int *idx);
1061 int X509_add1_ext_i2d(X509 *x,
int nid,
void *value,
int crit,
1062 unsigned long flags);
1064 int X509_CRL_get_ext_count(
X509_CRL *x);
1065 int X509_CRL_get_ext_by_NID(
X509_CRL *x,
int nid,
int lastpos);
1067 int X509_CRL_get_ext_by_critical(
X509_CRL *x,
int crit,
int lastpos);
1071 void * X509_CRL_get_ext_d2i(
X509_CRL *x,
int nid,
int *crit,
int *idx);
1072 int X509_CRL_add1_ext_i2d(
X509_CRL *x,
int nid,
void *value,
int crit,
1073 unsigned long flags);
1076 int X509_REVOKED_get_ext_by_NID(
X509_REVOKED *x,
int nid,
int lastpos);
1078 int X509_REVOKED_get_ext_by_critical(
X509_REVOKED *x,
int crit,
int lastpos);
1082 void * X509_REVOKED_get_ext_d2i(
X509_REVOKED *x,
int nid,
int *crit,
int *idx);
1083 int X509_REVOKED_add1_ext_i2d(
X509_REVOKED *x,
int nid,
void *value,
int crit,
1084 unsigned long flags);
1099 int X509at_get_attr_by_NID(
const STACK_OF(
X509_ATTRIBUTE) *x,
int nid,
1109 const unsigned char *bytes,
int len);
1112 const unsigned char *bytes,
int len);
1114 const char *attrname,
int type,
1115 const unsigned char *bytes,
int len);
1119 int atrtype,
const void *data,
int len);
1121 const ASN1_OBJECT *obj,
int atrtype,
const void *data,
int len);
1123 const char *atrname,
int type,
const unsigned char *bytes,
int len);
1125 int X509_ATTRIBUTE_set1_data(
X509_ATTRIBUTE *attr,
int attrtype,
const void *data,
int len);
1127 int atrtype,
void *data);
1132 int EVP_PKEY_get_attr_count(
const EVP_PKEY *key);
1133 int EVP_PKEY_get_attr_by_NID(
const EVP_PKEY *key,
int nid,
1140 int EVP_PKEY_add1_attr_by_OBJ(
EVP_PKEY *key,
1142 const unsigned char *bytes,
int len);
1143 int EVP_PKEY_add1_attr_by_NID(
EVP_PKEY *key,
1145 const unsigned char *bytes,
int len);
1146 int EVP_PKEY_add1_attr_by_txt(
EVP_PKEY *key,
1147 const char *attrname,
int type,
1148 const unsigned char *bytes,
int len);
1153 X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) *sk,
X509_NAME *name,
1155 X509 *X509_find_by_subject(STACK_OF(X509) *sk,
X509_NAME *name);
1161 int PKCS5_pbe_set0_algor(
X509_ALGOR *algor,
int alg,
int iter,
1162 const
unsigned char *salt,
int saltlen);
1165 const
unsigned char *salt,
int saltlen);
1167 unsigned char *salt,
int saltlen);
1169 unsigned char *salt,
int saltlen,
1170 unsigned char *aiv,
int prf_nid);
1172 X509_ALGOR *PKCS5_pbkdf2_set(
int iter,
unsigned char *salt,
int saltlen,
1173 int prf_nid,
int keylen);
1185 int version,
int ptype,
void *pval,
1186 unsigned char *penc,
int penclen);
1188 const
unsigned char **pk,
int *ppklen,
1193 int ptype,
void *pval,
1194 unsigned char *penc,
int penclen);
1196 const
unsigned char **pk,
int *ppklen,
1200 int X509_check_trust(X509 *x,
int id,
int flags);
1201 int X509_TRUST_get_count(
void);
1203 int X509_TRUST_get_by_id(
int id);
1204 int X509_TRUST_add(
int id,
int flags,
int (*ck)(
X509_TRUST *, X509 *,
int),
1205 char *name,
int arg1,
void *arg2);
1206 void X509_TRUST_cleanup(
void);
1207 int X509_TRUST_get_flags(X509_TRUST *xp);
1208 char *X509_TRUST_get0_name(X509_TRUST *xp);
1209 int X509_TRUST_get_trust(X509_TRUST *xp);
1215 void ERR_load_X509_strings(
void);
1220 #define X509_F_ADD_CERT_DIR 100
1221 #define X509_F_BY_FILE_CTRL 101
1222 #define X509_F_CHECK_POLICY 145
1223 #define X509_F_DIR_CTRL 102
1224 #define X509_F_GET_CERT_BY_SUBJECT 103
1225 #define X509_F_NETSCAPE_SPKI_B64_DECODE 129
1226 #define X509_F_NETSCAPE_SPKI_B64_ENCODE 130
1227 #define X509_F_X509AT_ADD1_ATTR 135
1228 #define X509_F_X509V3_ADD_EXT 104
1229 #define X509_F_X509_ATTRIBUTE_CREATE_BY_NID 136
1230 #define X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ 137
1231 #define X509_F_X509_ATTRIBUTE_CREATE_BY_TXT 140
1232 #define X509_F_X509_ATTRIBUTE_GET0_DATA 139
1233 #define X509_F_X509_ATTRIBUTE_SET1_DATA 138
1234 #define X509_F_X509_CHECK_PRIVATE_KEY 128
1235 #define X509_F_X509_CRL_PRINT_FP 147
1236 #define X509_F_X509_EXTENSION_CREATE_BY_NID 108
1237 #define X509_F_X509_EXTENSION_CREATE_BY_OBJ 109
1238 #define X509_F_X509_GET_PUBKEY_PARAMETERS 110
1239 #define X509_F_X509_LOAD_CERT_CRL_FILE 132
1240 #define X509_F_X509_LOAD_CERT_FILE 111
1241 #define X509_F_X509_LOAD_CRL_FILE 112
1242 #define X509_F_X509_NAME_ADD_ENTRY 113
1243 #define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 114
1244 #define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 131
1245 #define X509_F_X509_NAME_ENTRY_SET_OBJECT 115
1246 #define X509_F_X509_NAME_ONELINE 116
1247 #define X509_F_X509_NAME_PRINT 117
1248 #define X509_F_X509_PRINT_EX_FP 118
1249 #define X509_F_X509_PUBKEY_GET 119
1250 #define X509_F_X509_PUBKEY_SET 120
1251 #define X509_F_X509_REQ_CHECK_PRIVATE_KEY 144
1252 #define X509_F_X509_REQ_PRINT_EX 121
1253 #define X509_F_X509_REQ_PRINT_FP 122
1254 #define X509_F_X509_REQ_TO_X509 123
1255 #define X509_F_X509_STORE_ADD_CERT 124
1256 #define X509_F_X509_STORE_ADD_CRL 125
1257 #define X509_F_X509_STORE_CTX_GET1_ISSUER 146
1258 #define X509_F_X509_STORE_CTX_INIT 143
1259 #define X509_F_X509_STORE_CTX_NEW 142
1260 #define X509_F_X509_STORE_CTX_PURPOSE_INHERIT 134
1261 #define X509_F_X509_TO_X509_REQ 126
1262 #define X509_F_X509_TRUST_ADD 133
1263 #define X509_F_X509_TRUST_SET 141
1264 #define X509_F_X509_VERIFY_CERT 127
1267 #define X509_R_BAD_X509_FILETYPE 100
1268 #define X509_R_BASE64_DECODE_ERROR 118
1269 #define X509_R_CANT_CHECK_DH_KEY 114
1270 #define X509_R_CERT_ALREADY_IN_HASH_TABLE 101
1271 #define X509_R_ERR_ASN1_LIB 102
1272 #define X509_R_INVALID_DIRECTORY 113
1273 #define X509_R_INVALID_FIELD_NAME 119
1274 #define X509_R_INVALID_TRUST 123
1275 #define X509_R_KEY_TYPE_MISMATCH 115
1276 #define X509_R_KEY_VALUES_MISMATCH 116
1277 #define X509_R_LOADING_CERT_DIR 103
1278 #define X509_R_LOADING_DEFAULTS 104
1279 #define X509_R_METHOD_NOT_SUPPORTED 124
1280 #define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105
1281 #define X509_R_PUBLIC_KEY_DECODE_ERROR 125
1282 #define X509_R_PUBLIC_KEY_ENCODE_ERROR 126
1283 #define X509_R_SHOULD_RETRY 106
1284 #define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107
1285 #define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108
1286 #define X509_R_UNKNOWN_KEY_TYPE 117
1287 #define X509_R_UNKNOWN_NID 109
1288 #define X509_R_UNKNOWN_PURPOSE_ID 121
1289 #define X509_R_UNKNOWN_TRUST_ID 120
1290 #define X509_R_UNSUPPORTED_ALGORITHM 111
1291 #define X509_R_WRONG_LOOKUP_TYPE 112
1292 #define X509_R_WRONG_TYPE 122
Definition: x509_vfy.h:230