diff options
Diffstat (limited to 'src/lib/libcrypto/x509/x509_lu.c')
-rw-r--r-- | src/lib/libcrypto/x509/x509_lu.c | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/src/lib/libcrypto/x509/x509_lu.c b/src/lib/libcrypto/x509/x509_lu.c index b780dae5e2..cd2cfb6d85 100644 --- a/src/lib/libcrypto/x509/x509_lu.c +++ b/src/lib/libcrypto/x509/x509_lu.c | |||
@@ -187,10 +187,8 @@ X509_STORE *X509_STORE_new(void) | |||
187 | ret->verify=0; | 187 | ret->verify=0; |
188 | ret->verify_cb=0; | 188 | ret->verify_cb=0; |
189 | 189 | ||
190 | ret->purpose = 0; | 190 | if ((ret->param = X509_VERIFY_PARAM_new()) == NULL) |
191 | ret->trust = 0; | 191 | return NULL; |
192 | |||
193 | ret->flags = 0; | ||
194 | 192 | ||
195 | ret->get_issuer = 0; | 193 | ret->get_issuer = 0; |
196 | ret->check_issued = 0; | 194 | ret->check_issued = 0; |
@@ -202,7 +200,6 @@ X509_STORE *X509_STORE_new(void) | |||
202 | 200 | ||
203 | CRYPTO_new_ex_data(CRYPTO_EX_INDEX_X509_STORE, ret, &ret->ex_data); | 201 | CRYPTO_new_ex_data(CRYPTO_EX_INDEX_X509_STORE, ret, &ret->ex_data); |
204 | ret->references=1; | 202 | ret->references=1; |
205 | ret->depth=0; | ||
206 | return ret; | 203 | return ret; |
207 | } | 204 | } |
208 | 205 | ||
@@ -244,6 +241,8 @@ void X509_STORE_free(X509_STORE *vfy) | |||
244 | sk_X509_OBJECT_pop_free(vfy->objs, cleanup); | 241 | sk_X509_OBJECT_pop_free(vfy->objs, cleanup); |
245 | 242 | ||
246 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_X509_STORE, vfy, &vfy->ex_data); | 243 | CRYPTO_free_ex_data(CRYPTO_EX_INDEX_X509_STORE, vfy, &vfy->ex_data); |
244 | if (vfy->param) | ||
245 | X509_VERIFY_PARAM_free(vfy->param); | ||
247 | OPENSSL_free(vfy); | 246 | OPENSSL_free(vfy); |
248 | } | 247 | } |
249 | 248 | ||
@@ -498,7 +497,7 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x) | |||
498 | if (ok == X509_LU_RETRY) | 497 | if (ok == X509_LU_RETRY) |
499 | { | 498 | { |
500 | X509_OBJECT_free_contents(&obj); | 499 | X509_OBJECT_free_contents(&obj); |
501 | X509err(X509_F_X509_VERIFY_CERT,X509_R_SHOULD_RETRY); | 500 | X509err(X509_F_X509_STORE_CTX_GET1_ISSUER,X509_R_SHOULD_RETRY); |
502 | return -1; | 501 | return -1; |
503 | } | 502 | } |
504 | else if (ok != X509_LU_FAIL) | 503 | else if (ok != X509_LU_FAIL) |
@@ -538,19 +537,30 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x) | |||
538 | return 0; | 537 | return 0; |
539 | } | 538 | } |
540 | 539 | ||
541 | void X509_STORE_set_flags(X509_STORE *ctx, long flags) | 540 | int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags) |
542 | { | 541 | { |
543 | ctx->flags |= flags; | 542 | return X509_VERIFY_PARAM_set_flags(ctx->param, flags); |
543 | } | ||
544 | |||
545 | int X509_STORE_set_depth(X509_STORE *ctx, int depth) | ||
546 | { | ||
547 | X509_VERIFY_PARAM_set_depth(ctx->param, depth); | ||
548 | return 1; | ||
544 | } | 549 | } |
545 | 550 | ||
546 | int X509_STORE_set_purpose(X509_STORE *ctx, int purpose) | 551 | int X509_STORE_set_purpose(X509_STORE *ctx, int purpose) |
547 | { | 552 | { |
548 | return X509_PURPOSE_set(&ctx->purpose, purpose); | 553 | return X509_VERIFY_PARAM_set_purpose(ctx->param, purpose); |
549 | } | 554 | } |
550 | 555 | ||
551 | int X509_STORE_set_trust(X509_STORE *ctx, int trust) | 556 | int X509_STORE_set_trust(X509_STORE *ctx, int trust) |
552 | { | 557 | { |
553 | return X509_TRUST_set(&ctx->trust, trust); | 558 | return X509_VERIFY_PARAM_set_trust(ctx->param, trust); |
559 | } | ||
560 | |||
561 | int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *param) | ||
562 | { | ||
563 | return X509_VERIFY_PARAM_set1(ctx->param, param); | ||
554 | } | 564 | } |
555 | 565 | ||
556 | IMPLEMENT_STACK_OF(X509_LOOKUP) | 566 | IMPLEMENT_STACK_OF(X509_LOOKUP) |