📄 x509_vfy.h
字号:
X509_STORE *store_ctx; /* who owns us */ } /* X509_LOOKUP */;/* This is a used when verifying cert chains. Since the * gathering of the cert chain can take some time (and have to be * 'retried', this needs to be kept and passed around. */struct x509_store_ctx_st /* X509_STORE_CTX */ { X509_STORE *ctx; int current_method; /* used when looking up certs */ /* The following are set by the caller */ X509 *cert; /* The cert to check */ STACK_OF(X509) *untrusted; /* chain of X509s - untrusted - passed in */ int purpose; /* purpose to check untrusted certificates */ int trust; /* trust setting to check */ time_t check_time; /* time to make verify at */ unsigned long flags; /* Various verify flags */ void *other_ctx; /* Other info for use with get_issuer() */ /* Callbacks for various operations */ int (*verify)(X509_STORE_CTX *ctx); /* called to verify a certificate */ int (*verify_cb)(int ok,X509_STORE_CTX *ctx); /* error callback */ int (*get_issuer)(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); /* get issuers cert from ctx */ int (*check_issued)(X509_STORE_CTX *ctx, X509 *x, X509 *issuer); /* check issued */ int (*check_revocation)(X509_STORE_CTX *ctx); /* Check revocation status of chain */ int (*get_crl)(X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); /* retrieve CRL */ int (*check_crl)(X509_STORE_CTX *ctx, X509_CRL *crl); /* Check CRL validity */ int (*cert_crl)(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); /* Check certificate against CRL */ int (*cleanup)(X509_STORE_CTX *ctx); /* The following is built up */ int depth; /* how far to go looking up certs */ int valid; /* if 0, rebuild chain */ int last_untrusted; /* index of last untrusted cert */ STACK_OF(X509) *chain; /* chain of X509s - built up and trusted */ /* When something goes wrong, this is why */ int error_depth; int error; X509 *current_cert; X509 *current_issuer; /* cert currently being tested as valid issuer */ X509_CRL *current_crl; /* current CRL */ CRYPTO_EX_DATA ex_data; } /* X509_STORE_CTX */;#define X509_STORE_CTX_set_depth(ctx,d) ((ctx)->depth=(d))#define X509_STORE_CTX_set_app_data(ctx,data) \ X509_STORE_CTX_set_ex_data(ctx,0,data)#define X509_STORE_CTX_get_app_data(ctx) \ X509_STORE_CTX_get_ex_data(ctx,0)#define X509_L_FILE_LOAD 1#define X509_L_ADD_DIR 2#define X509_LOOKUP_load_file(x,name,type) \ X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL)#define X509_LOOKUP_add_dir(x,name,type) \ X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL)#define X509_V_OK 0/* illegal error (for uninitialized values, to avoid X509_V_OK): 1 */#define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2#define X509_V_ERR_UNABLE_TO_GET_CRL 3#define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4#define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5#define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6#define X509_V_ERR_CERT_SIGNATURE_FAILURE 7#define X509_V_ERR_CRL_SIGNATURE_FAILURE 8#define X509_V_ERR_CERT_NOT_YET_VALID 9 #define X509_V_ERR_CERT_HAS_EXPIRED 10#define X509_V_ERR_CRL_NOT_YET_VALID 11#define X509_V_ERR_CRL_HAS_EXPIRED 12#define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13#define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14#define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15#define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16#define X509_V_ERR_OUT_OF_MEM 17#define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18#define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19#define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20#define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21#define X509_V_ERR_CERT_CHAIN_TOO_LONG 22#define X509_V_ERR_CERT_REVOKED 23#define X509_V_ERR_INVALID_CA 24#define X509_V_ERR_PATH_LENGTH_EXCEEDED 25#define X509_V_ERR_INVALID_PURPOSE 26#define X509_V_ERR_CERT_UNTRUSTED 27#define X509_V_ERR_CERT_REJECTED 28/* These are 'informational' when looking for issuer cert */#define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29#define X509_V_ERR_AKID_SKID_MISMATCH 30#define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31#define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32#define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33#define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34/* The application is not happy */#define X509_V_ERR_APPLICATION_VERIFICATION 50/* Certificate verify flags */#define X509_V_FLAG_CB_ISSUER_CHECK 0x1 /* Send issuer+subject checks to verify_cb */#define X509_V_FLAG_USE_CHECK_TIME 0x2 /* Use check time instead of current time */#define X509_V_FLAG_CRL_CHECK 0x4 /* Lookup CRLs */#define X509_V_FLAG_CRL_CHECK_ALL 0x8 /* Lookup CRLs for whole chain */#define X509_V_FLAG_IGNORE_CRITICAL 0x10 /* Ignore unhandled critical extensions */int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, int type, X509_NAME *name);X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h,int type,X509_NAME *name);X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, X509_OBJECT *x);void X509_OBJECT_up_ref_count(X509_OBJECT *a);void X509_OBJECT_free_contents(X509_OBJECT *a);X509_STORE *X509_STORE_new(void );void X509_STORE_free(X509_STORE *v);void X509_STORE_set_flags(X509_STORE *ctx, long flags);int X509_STORE_set_purpose(X509_STORE *ctx, int purpose);int X509_STORE_set_trust(X509_STORE *ctx, int trust);X509_STORE_CTX *X509_STORE_CTX_new(void);int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x);void X509_STORE_CTX_free(X509_STORE_CTX *ctx);int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, X509 *x509, STACK_OF(X509) *chain);void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk);void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx);X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m);X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void);X509_LOOKUP_METHOD *X509_LOOKUP_file(void);int X509_STORE_add_cert(X509_STORE *ctx, X509 *x);int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x);int X509_STORE_get_by_subject(X509_STORE_CTX *vs,int type,X509_NAME *name, X509_OBJECT *ret);int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, long argl, char **ret);#ifndef OPENSSL_NO_STDIOint X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type);int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type);int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type);#endifX509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method);void X509_LOOKUP_free(X509_LOOKUP *ctx);int X509_LOOKUP_init(X509_LOOKUP *ctx);int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, int type, X509_NAME *name, X509_OBJECT *ret);int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, int type, X509_NAME *name, ASN1_INTEGER *serial, X509_OBJECT *ret);int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, int type, unsigned char *bytes, int len, X509_OBJECT *ret);int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, char *str, int len, X509_OBJECT *ret);int X509_LOOKUP_shutdown(X509_LOOKUP *ctx);#ifndef OPENSSL_NO_STDIOint X509_STORE_load_locations (X509_STORE *ctx, const char *file, const char *dir);int X509_STORE_set_default_paths(X509_STORE *ctx);#endifint X509_STORE_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx,int idx,void *data);void * X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx,int idx);int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx);void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx,int s);int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx);X509 * X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx);STACK_OF(X509) *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx);STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx);void X509_STORE_CTX_set_cert(X509_STORE_CTX *c,X509 *x);void X509_STORE_CTX_set_chain(X509_STORE_CTX *c,STACK_OF(X509) *sk);int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose);int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust);int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, int purpose, int trust);void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, long flags);void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, long flags, time_t t);void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, int (*verify_cb)(int, X509_STORE_CTX *));#ifdef __cplusplus}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -