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