diff options
Diffstat (limited to 'src/lib/libcrypto/x509/x509_vfy.h')
| -rw-r--r-- | src/lib/libcrypto/x509/x509_vfy.h | 261 |
1 files changed, 145 insertions, 116 deletions
diff --git a/src/lib/libcrypto/x509/x509_vfy.h b/src/lib/libcrypto/x509/x509_vfy.h index dfc060f899..f0be21f452 100644 --- a/src/lib/libcrypto/x509/x509_vfy.h +++ b/src/lib/libcrypto/x509/x509_vfy.h | |||
| @@ -56,16 +56,26 @@ | |||
| 56 | * [including the GNU Public Licence.] | 56 | * [including the GNU Public Licence.] |
| 57 | */ | 57 | */ |
| 58 | 58 | ||
| 59 | #ifndef HEADER_X509_H | ||
| 60 | #include <openssl/x509.h> | ||
| 61 | /* openssl/x509.h ends up #include-ing this file at about the only | ||
| 62 | * appropriate moment. */ | ||
| 63 | #endif | ||
| 64 | |||
| 59 | #ifndef HEADER_X509_VFY_H | 65 | #ifndef HEADER_X509_VFY_H |
| 60 | #define HEADER_X509_VFY_H | 66 | #define HEADER_X509_VFY_H |
| 61 | 67 | ||
| 68 | #ifndef OPENSSL_NO_LHASH | ||
| 69 | #include <openssl/lhash.h> | ||
| 70 | #endif | ||
| 71 | #include <openssl/bio.h> | ||
| 72 | #include <openssl/crypto.h> | ||
| 73 | #include <openssl/symhacks.h> | ||
| 74 | |||
| 62 | #ifdef __cplusplus | 75 | #ifdef __cplusplus |
| 63 | extern "C" { | 76 | extern "C" { |
| 64 | #endif | 77 | #endif |
| 65 | 78 | ||
| 66 | #include "bio.h" | ||
| 67 | #include "crypto.h" | ||
| 68 | |||
| 69 | /* Outer object */ | 79 | /* Outer object */ |
| 70 | typedef struct x509_hash_dir_st | 80 | typedef struct x509_hash_dir_st |
| 71 | { | 81 | { |
| @@ -119,43 +129,66 @@ typedef struct x509_object_st | |||
| 119 | } data; | 129 | } data; |
| 120 | } X509_OBJECT; | 130 | } X509_OBJECT; |
| 121 | 131 | ||
| 132 | typedef struct x509_lookup_st X509_LOOKUP; | ||
| 133 | |||
| 134 | DECLARE_STACK_OF(X509_LOOKUP) | ||
| 135 | DECLARE_STACK_OF(X509_OBJECT) | ||
| 136 | |||
| 122 | /* This is a static that defines the function interface */ | 137 | /* This is a static that defines the function interface */ |
| 123 | typedef struct x509_lookup_method_st | 138 | typedef struct x509_lookup_method_st |
| 124 | { | 139 | { |
| 125 | char *name; | 140 | const char *name; |
| 126 | int (*new_item)(); | 141 | int (*new_item)(X509_LOOKUP *ctx); |
| 127 | void (*free)(); | 142 | void (*free)(X509_LOOKUP *ctx); |
| 128 | int (*init)(/* meth, char ** */); | 143 | int (*init)(X509_LOOKUP *ctx); |
| 129 | int (*shutdown)( /* meth, char ** */); | 144 | int (*shutdown)(X509_LOOKUP *ctx); |
| 130 | int (*ctrl)( /* meth, char **, int cmd, char *argp, int argi */); | 145 | int (*ctrl)(X509_LOOKUP *ctx,int cmd,const char *argc,long argl, |
| 131 | int (*get_by_subject)(/* meth, char **, XNAME *, X509 **ret */); | 146 | char **ret); |
| 132 | int (*get_by_issuer_serial)(); | 147 | int (*get_by_subject)(X509_LOOKUP *ctx,int type,X509_NAME *name, |
| 133 | int (*get_by_fingerprint)(); | 148 | X509_OBJECT *ret); |
| 134 | int (*get_by_alias)(); | 149 | int (*get_by_issuer_serial)(X509_LOOKUP *ctx,int type,X509_NAME *name, |
| 150 | ASN1_INTEGER *serial,X509_OBJECT *ret); | ||
| 151 | int (*get_by_fingerprint)(X509_LOOKUP *ctx,int type, | ||
| 152 | unsigned char *bytes,int len, | ||
| 153 | X509_OBJECT *ret); | ||
| 154 | int (*get_by_alias)(X509_LOOKUP *ctx,int type,char *str,int len, | ||
| 155 | X509_OBJECT *ret); | ||
| 135 | } X509_LOOKUP_METHOD; | 156 | } X509_LOOKUP_METHOD; |
| 136 | 157 | ||
| 137 | /* This is used to hold everything. It is used for all certificate | 158 | /* This is used to hold everything. It is used for all certificate |
| 138 | * validation. Once we have a certificate chain, the 'verify' | 159 | * validation. Once we have a certificate chain, the 'verify' |
| 139 | * function is then called to actually check the cert chain. */ | 160 | * function is then called to actually check the cert chain. */ |
| 140 | typedef struct x509_store_st | 161 | struct x509_store_st |
| 141 | { | 162 | { |
| 142 | /* The following is a cache of trusted certs */ | 163 | /* The following is a cache of trusted certs */ |
| 143 | int cache; /* if true, stash any hits */ | 164 | int cache; /* if true, stash any hits */ |
| 144 | #ifdef HEADER_LHASH_H | 165 | STACK_OF(X509_OBJECT) *objs; /* Cache of all objects */ |
| 145 | LHASH *certs; /* cached certs; */ | ||
| 146 | #else | ||
| 147 | char *certs; | ||
| 148 | #endif | ||
| 149 | 166 | ||
| 150 | /* These are external lookup methods */ | 167 | /* These are external lookup methods */ |
| 151 | STACK *get_cert_methods;/* X509_LOOKUP */ | 168 | STACK_OF(X509_LOOKUP) *get_cert_methods; |
| 152 | int (*verify)(); /* called to verify a certificate */ | 169 | |
| 153 | int (*verify_cb)(); /* error callback */ | 170 | /* The following fields are not used by X509_STORE but are |
| 171 | * inherited by X509_STORE_CTX when it is initialised. | ||
| 172 | */ | ||
| 173 | |||
| 174 | unsigned long flags; /* Various verify flags */ | ||
| 175 | int purpose; | ||
| 176 | int trust; | ||
| 177 | /* Callbacks for various operations */ | ||
| 178 | int (*verify)(X509_STORE_CTX *ctx); /* called to verify a certificate */ | ||
| 179 | int (*verify_cb)(int ok,X509_STORE_CTX *ctx); /* error callback */ | ||
| 180 | int (*get_issuer)(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); /* get issuers cert from ctx */ | ||
| 181 | int (*check_issued)(X509_STORE_CTX *ctx, X509 *x, X509 *issuer); /* check issued */ | ||
| 182 | int (*check_revocation)(X509_STORE_CTX *ctx); /* Check revocation status of chain */ | ||
| 183 | int (*get_crl)(X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); /* retrieve CRL */ | ||
| 184 | int (*check_crl)(X509_STORE_CTX *ctx, X509_CRL *crl); /* Check CRL validity */ | ||
| 185 | int (*cert_crl)(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); /* Check certificate against CRL */ | ||
| 186 | int (*cleanup)(X509_STORE_CTX *ctx); | ||
| 154 | 187 | ||
| 155 | CRYPTO_EX_DATA ex_data; | 188 | CRYPTO_EX_DATA ex_data; |
| 156 | int references; | 189 | int references; |
| 157 | int depth; /* how deep to look */ | 190 | int depth; /* how deep to look (still unused -- X509_STORE_CTX's depth is used) */ |
| 158 | } X509_STORE; | 191 | } /* X509_STORE */; |
| 159 | 192 | ||
| 160 | #define X509_STORE_set_depth(ctx,d) ((ctx)->depth=(d)) | 193 | #define X509_STORE_set_depth(ctx,d) ((ctx)->depth=(d)) |
| 161 | 194 | ||
| @@ -163,7 +196,7 @@ typedef struct x509_store_st | |||
| 163 | #define X509_STORE_set_verify_func(ctx,func) ((ctx)->verify=(func)) | 196 | #define X509_STORE_set_verify_func(ctx,func) ((ctx)->verify=(func)) |
| 164 | 197 | ||
| 165 | /* This is the functions plus an instance of the local variables. */ | 198 | /* This is the functions plus an instance of the local variables. */ |
| 166 | typedef struct x509_lookup_st | 199 | struct x509_lookup_st |
| 167 | { | 200 | { |
| 168 | int init; /* have we been started */ | 201 | int init; /* have we been started */ |
| 169 | int skip; /* don't use us. */ | 202 | int skip; /* don't use us. */ |
| @@ -171,33 +204,53 @@ typedef struct x509_lookup_st | |||
| 171 | char *method_data; /* method data */ | 204 | char *method_data; /* method data */ |
| 172 | 205 | ||
| 173 | X509_STORE *store_ctx; /* who owns us */ | 206 | X509_STORE *store_ctx; /* who owns us */ |
| 174 | } X509_LOOKUP; | 207 | } /* X509_LOOKUP */; |
| 175 | 208 | ||
| 176 | /* This is a temporary used when processing cert chains. Since the | 209 | /* This is a used when verifying cert chains. Since the |
| 177 | * gathering of the cert chain can take some time (and have to be | 210 | * gathering of the cert chain can take some time (and have to be |
| 178 | * 'retried', this needs to be kept and passed around. */ | 211 | * 'retried', this needs to be kept and passed around. */ |
| 179 | typedef struct x509_store_state_st | 212 | struct x509_store_ctx_st /* X509_STORE_CTX */ |
| 180 | { | 213 | { |
| 181 | X509_STORE *ctx; | 214 | X509_STORE *ctx; |
| 182 | int current_method; /* used when looking up certs */ | 215 | int current_method; /* used when looking up certs */ |
| 183 | 216 | ||
| 184 | /* The following are set by the caller */ | 217 | /* The following are set by the caller */ |
| 185 | X509 *cert; /* The cert to check */ | 218 | X509 *cert; /* The cert to check */ |
| 186 | STACK *untrusted; /* chain of X509s - untrusted - passed in */ | 219 | STACK_OF(X509) *untrusted; /* chain of X509s - untrusted - passed in */ |
| 220 | int purpose; /* purpose to check untrusted certificates */ | ||
| 221 | int trust; /* trust setting to check */ | ||
| 222 | time_t check_time; /* time to make verify at */ | ||
| 223 | unsigned long flags; /* Various verify flags */ | ||
| 224 | void *other_ctx; /* Other info for use with get_issuer() */ | ||
| 225 | |||
| 226 | /* Callbacks for various operations */ | ||
| 227 | int (*verify)(X509_STORE_CTX *ctx); /* called to verify a certificate */ | ||
| 228 | int (*verify_cb)(int ok,X509_STORE_CTX *ctx); /* error callback */ | ||
| 229 | int (*get_issuer)(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); /* get issuers cert from ctx */ | ||
| 230 | int (*check_issued)(X509_STORE_CTX *ctx, X509 *x, X509 *issuer); /* check issued */ | ||
| 231 | int (*check_revocation)(X509_STORE_CTX *ctx); /* Check revocation status of chain */ | ||
| 232 | int (*get_crl)(X509_STORE_CTX *ctx, X509_CRL **crl, X509 *x); /* retrieve CRL */ | ||
| 233 | int (*check_crl)(X509_STORE_CTX *ctx, X509_CRL *crl); /* Check CRL validity */ | ||
| 234 | int (*cert_crl)(X509_STORE_CTX *ctx, X509_CRL *crl, X509 *x); /* Check certificate against CRL */ | ||
| 235 | int (*cleanup)(X509_STORE_CTX *ctx); | ||
| 187 | 236 | ||
| 188 | /* The following is built up */ | 237 | /* The following is built up */ |
| 189 | int depth; /* how far to go looking up certs */ | 238 | int depth; /* how far to go looking up certs */ |
| 190 | int valid; /* if 0, rebuild chain */ | 239 | int valid; /* if 0, rebuild chain */ |
| 191 | int last_untrusted; /* index of last untrusted cert */ | 240 | int last_untrusted; /* index of last untrusted cert */ |
| 192 | STACK *chain; /* chain of X509s - built up and trusted */ | 241 | STACK_OF(X509) *chain; /* chain of X509s - built up and trusted */ |
| 193 | 242 | ||
| 194 | /* When something goes wrong, this is why */ | 243 | /* When something goes wrong, this is why */ |
| 195 | int error_depth; | 244 | int error_depth; |
| 196 | int error; | 245 | int error; |
| 197 | X509 *current_cert; | 246 | X509 *current_cert; |
| 247 | X509 *current_issuer; /* cert currently being tested as valid issuer */ | ||
| 248 | X509_CRL *current_crl; /* current CRL */ | ||
| 198 | 249 | ||
| 199 | CRYPTO_EX_DATA ex_data; | 250 | CRYPTO_EX_DATA ex_data; |
| 200 | } X509_STORE_CTX; | 251 | } /* X509_STORE_CTX */; |
| 252 | |||
| 253 | #define X509_STORE_CTX_set_depth(ctx,d) ((ctx)->depth=(d)) | ||
| 201 | 254 | ||
| 202 | #define X509_STORE_CTX_set_app_data(ctx,data) \ | 255 | #define X509_STORE_CTX_set_app_data(ctx,data) \ |
| 203 | X509_STORE_CTX_set_ex_data(ctx,0,data) | 256 | X509_STORE_CTX_set_ex_data(ctx,0,data) |
| @@ -207,15 +260,14 @@ typedef struct x509_store_state_st | |||
| 207 | #define X509_L_FILE_LOAD 1 | 260 | #define X509_L_FILE_LOAD 1 |
| 208 | #define X509_L_ADD_DIR 2 | 261 | #define X509_L_ADD_DIR 2 |
| 209 | 262 | ||
| 210 | X509_LOOKUP_METHOD *X509_LOOKUP_file(); | ||
| 211 | #define X509_LOOKUP_load_file(x,name,type) \ | 263 | #define X509_LOOKUP_load_file(x,name,type) \ |
| 212 | X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL) | 264 | X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL) |
| 213 | 265 | ||
| 214 | X509_LOOKUP_METHOD *X509_LOOKUP_dir(); | ||
| 215 | #define X509_LOOKUP_add_dir(x,name,type) \ | 266 | #define X509_LOOKUP_add_dir(x,name,type) \ |
| 216 | X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) | 267 | X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) |
| 217 | 268 | ||
| 218 | #define X509_V_OK 0 | 269 | #define X509_V_OK 0 |
| 270 | /* illegal error (for uninitialized values, to avoid X509_V_OK): 1 */ | ||
| 219 | 271 | ||
| 220 | #define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 | 272 | #define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 |
| 221 | #define X509_V_ERR_UNABLE_TO_GET_CRL 3 | 273 | #define X509_V_ERR_UNABLE_TO_GET_CRL 3 |
| @@ -239,21 +291,52 @@ X509_LOOKUP_METHOD *X509_LOOKUP_dir(); | |||
| 239 | #define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21 | 291 | #define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21 |
| 240 | #define X509_V_ERR_CERT_CHAIN_TOO_LONG 22 | 292 | #define X509_V_ERR_CERT_CHAIN_TOO_LONG 22 |
| 241 | #define X509_V_ERR_CERT_REVOKED 23 | 293 | #define X509_V_ERR_CERT_REVOKED 23 |
| 294 | #define X509_V_ERR_INVALID_CA 24 | ||
| 295 | #define X509_V_ERR_PATH_LENGTH_EXCEEDED 25 | ||
| 296 | #define X509_V_ERR_INVALID_PURPOSE 26 | ||
| 297 | #define X509_V_ERR_CERT_UNTRUSTED 27 | ||
| 298 | #define X509_V_ERR_CERT_REJECTED 28 | ||
| 299 | /* These are 'informational' when looking for issuer cert */ | ||
| 300 | #define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29 | ||
| 301 | #define X509_V_ERR_AKID_SKID_MISMATCH 30 | ||
| 302 | #define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31 | ||
| 303 | #define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32 | ||
| 304 | |||
| 305 | #define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33 | ||
| 306 | #define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34 | ||
| 242 | 307 | ||
| 243 | /* The application is not happy */ | 308 | /* The application is not happy */ |
| 244 | #define X509_V_ERR_APPLICATION_VERIFICATION 50 | 309 | #define X509_V_ERR_APPLICATION_VERIFICATION 50 |
| 245 | 310 | ||
| 246 | #ifndef NOPROTO | 311 | /* Certificate verify flags */ |
| 247 | #ifdef HEADER_LHASH_H | 312 | |
| 248 | X509_OBJECT *X509_OBJECT_retrive_by_subject(LHASH *h,int type,X509_NAME *name); | 313 | #define X509_V_FLAG_CB_ISSUER_CHECK 0x1 /* Send issuer+subject checks to verify_cb */ |
| 249 | #endif | 314 | #define X509_V_FLAG_USE_CHECK_TIME 0x2 /* Use check time instead of current time */ |
| 315 | #define X509_V_FLAG_CRL_CHECK 0x4 /* Lookup CRLs */ | ||
| 316 | #define X509_V_FLAG_CRL_CHECK_ALL 0x8 /* Lookup CRLs for whole chain */ | ||
| 317 | #define X509_V_FLAG_IGNORE_CRITICAL 0x10 /* Ignore unhandled critical extensions */ | ||
| 318 | |||
| 319 | int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, int type, | ||
| 320 | X509_NAME *name); | ||
| 321 | X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h,int type,X509_NAME *name); | ||
| 322 | X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, X509_OBJECT *x); | ||
| 250 | void X509_OBJECT_up_ref_count(X509_OBJECT *a); | 323 | void X509_OBJECT_up_ref_count(X509_OBJECT *a); |
| 251 | void X509_OBJECT_free_contents(X509_OBJECT *a); | 324 | void X509_OBJECT_free_contents(X509_OBJECT *a); |
| 252 | X509_STORE *X509_STORE_new(void ); | 325 | X509_STORE *X509_STORE_new(void ); |
| 253 | void X509_STORE_free(X509_STORE *v); | 326 | void X509_STORE_free(X509_STORE *v); |
| 254 | 327 | ||
| 255 | void X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, | 328 | void X509_STORE_set_flags(X509_STORE *ctx, long flags); |
| 256 | X509 *x509, STACK *chain); | 329 | int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); |
| 330 | int X509_STORE_set_trust(X509_STORE *ctx, int trust); | ||
| 331 | |||
| 332 | X509_STORE_CTX *X509_STORE_CTX_new(void); | ||
| 333 | |||
| 334 | int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); | ||
| 335 | |||
| 336 | void X509_STORE_CTX_free(X509_STORE_CTX *ctx); | ||
| 337 | int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, | ||
| 338 | X509 *x509, STACK_OF(X509) *chain); | ||
| 339 | void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); | ||
| 257 | void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); | 340 | void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); |
| 258 | 341 | ||
| 259 | X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); | 342 | X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); |
| @@ -267,17 +350,15 @@ int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); | |||
| 267 | int X509_STORE_get_by_subject(X509_STORE_CTX *vs,int type,X509_NAME *name, | 350 | int X509_STORE_get_by_subject(X509_STORE_CTX *vs,int type,X509_NAME *name, |
| 268 | X509_OBJECT *ret); | 351 | X509_OBJECT *ret); |
| 269 | 352 | ||
| 270 | int X509_LOOKUP_ctrl(X509_LOOKUP *ctx,int cmd,char *argc,long argl,char **ret); | 353 | int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, |
| 354 | long argl, char **ret); | ||
| 271 | 355 | ||
| 272 | #ifndef NO_STDIO | 356 | #ifndef OPENSSL_NO_STDIO |
| 273 | int X509_load_cert_file(X509_LOOKUP *ctx, char *file, int type); | 357 | int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); |
| 274 | int X509_load_crl_file(X509_LOOKUP *ctx, char *file, int type); | 358 | int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); |
| 359 | int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); | ||
| 275 | #endif | 360 | #endif |
| 276 | 361 | ||
| 277 | void X509v3_cleanup_extensions(void ); | ||
| 278 | int X509v3_add_extension(X509_EXTENSION_METHOD *x); | ||
| 279 | int X509v3_add_netscape_extensions(void ); | ||
| 280 | int X509v3_add_standard_extensions(void ); | ||
| 281 | 362 | ||
| 282 | X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); | 363 | X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); |
| 283 | void X509_LOOKUP_free(X509_LOOKUP *ctx); | 364 | void X509_LOOKUP_free(X509_LOOKUP *ctx); |
| @@ -292,84 +373,32 @@ int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, int type, char *str, | |||
| 292 | int len, X509_OBJECT *ret); | 373 | int len, X509_OBJECT *ret); |
| 293 | int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); | 374 | int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); |
| 294 | 375 | ||
| 295 | #ifndef NO_STDIO | 376 | #ifndef OPENSSL_NO_STDIO |
| 296 | int X509_STORE_load_locations (X509_STORE *ctx, | 377 | int X509_STORE_load_locations (X509_STORE *ctx, |
| 297 | char *file, char *dir); | 378 | const char *file, const char *dir); |
| 298 | int X509_STORE_set_default_paths(X509_STORE *ctx); | 379 | int X509_STORE_set_default_paths(X509_STORE *ctx); |
| 299 | #endif | 380 | #endif |
| 300 | 381 | ||
| 301 | int X509_STORE_CTX_get_ex_new_index(long argl, char *argp, int (*new_func)(), | 382 | int X509_STORE_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, |
| 302 | int (*dup_func)(), void (*free_func)()); | 383 | CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func); |
| 303 | int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx,int idx,char *data); | 384 | int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx,int idx,void *data); |
| 304 | char * X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx,int idx); | 385 | void * X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx,int idx); |
| 305 | int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); | 386 | int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); |
| 306 | void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx,int s); | 387 | void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx,int s); |
| 307 | int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); | 388 | int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); |
| 308 | X509 * X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); | 389 | X509 * X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); |
| 309 | STACK * X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx); | 390 | STACK_OF(X509) *X509_STORE_CTX_get_chain(X509_STORE_CTX *ctx); |
| 391 | STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); | ||
| 310 | void X509_STORE_CTX_set_cert(X509_STORE_CTX *c,X509 *x); | 392 | void X509_STORE_CTX_set_cert(X509_STORE_CTX *c,X509 *x); |
| 311 | void X509_STORE_CTX_set_chain(X509_STORE_CTX *c,STACK /* X509 */ *sk); | 393 | void X509_STORE_CTX_set_chain(X509_STORE_CTX *c,STACK_OF(X509) *sk); |
| 312 | 394 | int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); | |
| 313 | #else | 395 | int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); |
| 314 | 396 | int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, | |
| 315 | #ifdef HEADER_LHASH_H | 397 | int purpose, int trust); |
| 316 | X509_OBJECT *X509_OBJECT_retrive_by_subject(); | 398 | void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, long flags); |
| 317 | #endif | 399 | void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, long flags, time_t t); |
| 318 | void X509_OBJECT_up_ref_count(); | 400 | void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, |
| 319 | void X509_OBJECT_free_contents(); | 401 | int (*verify_cb)(int, X509_STORE_CTX *)); |
| 320 | X509_STORE *X509_STORE_new(); | ||
| 321 | void X509_STORE_free(); | ||
| 322 | |||
| 323 | void X509_STORE_CTX_init(); | ||
| 324 | void X509_STORE_CTX_cleanup(); | ||
| 325 | |||
| 326 | X509_LOOKUP *X509_STORE_add_lookup(); | ||
| 327 | |||
| 328 | X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(); | ||
| 329 | X509_LOOKUP_METHOD *X509_LOOKUP_file(); | ||
| 330 | |||
| 331 | int X509_STORE_add_cert(); | ||
| 332 | int X509_STORE_add_crl(); | ||
| 333 | |||
| 334 | int X509_STORE_get_by_subject(); | ||
| 335 | |||
| 336 | int X509_LOOKUP_ctrl(); | ||
| 337 | |||
| 338 | #ifndef NO_STDIO | ||
| 339 | int X509_load_cert_file(); | ||
| 340 | int X509_load_crl_file(); | ||
| 341 | #endif | ||
| 342 | |||
| 343 | void X509v3_cleanup_extensions(); | ||
| 344 | int X509v3_add_extension(); | ||
| 345 | int X509v3_add_netscape_extensions(); | ||
| 346 | int X509v3_add_standard_extensions(); | ||
| 347 | |||
| 348 | X509_LOOKUP *X509_LOOKUP_new(); | ||
| 349 | void X509_LOOKUP_free(); | ||
| 350 | int X509_LOOKUP_init(); | ||
| 351 | int X509_LOOKUP_by_subject(); | ||
| 352 | int X509_LOOKUP_by_issuer_serial(); | ||
| 353 | int X509_LOOKUP_by_fingerprint(); | ||
| 354 | int X509_LOOKUP_by_alias(); | ||
| 355 | int X509_LOOKUP_shutdown(); | ||
| 356 | |||
| 357 | #ifndef NO_STDIO | ||
| 358 | int X509_STORE_load_locations (); | ||
| 359 | int X509_STORE_set_default_paths(); | ||
| 360 | #endif | ||
| 361 | |||
| 362 | int X509_STORE_CTX_set_ex_data(); | ||
| 363 | char * X509_STORE_CTX_get_ex_data(); | ||
| 364 | int X509_STORE_CTX_get_error(); | ||
| 365 | void X509_STORE_CTX_set_error(); | ||
| 366 | int X509_STORE_CTX_get_error_depth(); | ||
| 367 | X509 * X509_STORE_CTX_get_current_cert(); | ||
| 368 | STACK * X509_STORE_CTX_get_chain(); | ||
| 369 | void X509_STORE_CTX_set_cert(); | ||
| 370 | void X509_STORE_CTX_set_chain(); | ||
| 371 | |||
| 372 | #endif | ||
| 373 | 402 | ||
| 374 | #ifdef __cplusplus | 403 | #ifdef __cplusplus |
| 375 | } | 404 | } |
