summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjsing <>2018-02-14 17:06:34 +0000
committerjsing <>2018-02-14 17:06:34 +0000
commitd6fd917a93bf5944b60715bb895744b26c7bfd4e (patch)
tree64a20b44f90ff6c3b7188730026c824f9e2ac041
parentc46ba7482ab6670501b4e03ceadbf235aa22b0e7 (diff)
downloadopenbsd-d6fd917a93bf5944b60715bb895744b26c7bfd4e.tar.gz
openbsd-d6fd917a93bf5944b60715bb895744b26c7bfd4e.tar.bz2
openbsd-d6fd917a93bf5944b60715bb895744b26c7bfd4e.zip
Provide X509_STORE_CTX_get0_{cert,untrusted}() and
X509_STORE_CTX_set0_{trusted_stack,untrusted}().
-rw-r--r--src/lib/libcrypto/Symbols.list4
-rw-r--r--src/lib/libcrypto/x509/x509_vfy.c26
-rw-r--r--src/lib/libcrypto/x509/x509_vfy.h8
3 files changed, 35 insertions, 3 deletions
diff --git a/src/lib/libcrypto/Symbols.list b/src/lib/libcrypto/Symbols.list
index 540213232b..d9cbe853a9 100644
--- a/src/lib/libcrypto/Symbols.list
+++ b/src/lib/libcrypto/Symbols.list
@@ -2741,11 +2741,13 @@ X509_SIG_it
2741X509_SIG_new 2741X509_SIG_new
2742X509_STORE_CTX_cleanup 2742X509_STORE_CTX_cleanup
2743X509_STORE_CTX_free 2743X509_STORE_CTX_free
2744X509_STORE_CTX_get0_cert
2744X509_STORE_CTX_get0_current_crl 2745X509_STORE_CTX_get0_current_crl
2745X509_STORE_CTX_get0_current_issuer 2746X509_STORE_CTX_get0_current_issuer
2746X509_STORE_CTX_get0_param 2747X509_STORE_CTX_get0_param
2747X509_STORE_CTX_get0_parent_ctx 2748X509_STORE_CTX_get0_parent_ctx
2748X509_STORE_CTX_get0_policy_tree 2749X509_STORE_CTX_get0_policy_tree
2750X509_STORE_CTX_get0_untrusted
2749X509_STORE_CTX_get1_chain 2751X509_STORE_CTX_get1_chain
2750X509_STORE_CTX_get1_issuer 2752X509_STORE_CTX_get1_issuer
2751X509_STORE_CTX_get_chain 2753X509_STORE_CTX_get_chain
@@ -2760,6 +2762,8 @@ X509_STORE_CTX_new
2760X509_STORE_CTX_purpose_inherit 2762X509_STORE_CTX_purpose_inherit
2761X509_STORE_CTX_set0_crls 2763X509_STORE_CTX_set0_crls
2762X509_STORE_CTX_set0_param 2764X509_STORE_CTX_set0_param
2765X509_STORE_CTX_set0_trusted_stack
2766X509_STORE_CTX_set0_untrusted
2763X509_STORE_CTX_set_cert 2767X509_STORE_CTX_set_cert
2764X509_STORE_CTX_set_chain 2768X509_STORE_CTX_set_chain
2765X509_STORE_CTX_set_default 2769X509_STORE_CTX_set_default
diff --git a/src/lib/libcrypto/x509/x509_vfy.c b/src/lib/libcrypto/x509/x509_vfy.c
index 8efff680c1..70e03cf436 100644
--- a/src/lib/libcrypto/x509/x509_vfy.c
+++ b/src/lib/libcrypto/x509/x509_vfy.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_vfy.c,v 1.66 2017/08/27 01:39:26 beck Exp $ */ 1/* $OpenBSD: x509_vfy.c,v 1.67 2018/02/14 17:06:34 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -2302,6 +2302,12 @@ X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk)
2302} 2302}
2303 2303
2304void 2304void
2305X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk)
2306{
2307 X509_STORE_CTX_trusted_stack(ctx, sk);
2308}
2309
2310void
2305X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx) 2311X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx)
2306{ 2312{
2307 if (ctx->cleanup) 2313 if (ctx->cleanup)
@@ -2349,6 +2355,24 @@ X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,
2349 ctx->verify_cb = verify_cb; 2355 ctx->verify_cb = verify_cb;
2350} 2356}
2351 2357
2358X509 *
2359X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx)
2360{
2361 return ctx->cert;
2362}
2363
2364STACK_OF(X509) *
2365X509_STORE_CTX_get0_untrusted(X509_STORE_CTX *ctx)
2366{
2367 return ctx->untrusted;
2368}
2369
2370void
2371X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk)
2372{
2373 ctx->untrusted = sk;
2374}
2375
2352X509_POLICY_TREE * 2376X509_POLICY_TREE *
2353X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx) 2377X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx)
2354{ 2378{
diff --git a/src/lib/libcrypto/x509/x509_vfy.h b/src/lib/libcrypto/x509/x509_vfy.h
index a9cf7e0eda..ed49179133 100644
--- a/src/lib/libcrypto/x509/x509_vfy.h
+++ b/src/lib/libcrypto/x509/x509_vfy.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: x509_vfy.h,v 1.19 2018/02/10 04:33:47 jsing Exp $ */ 1/* $OpenBSD: x509_vfy.h,v 1.20 2018/02/14 17:06:34 jsing Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -446,7 +446,11 @@ int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x);
446void X509_STORE_CTX_free(X509_STORE_CTX *ctx); 446void X509_STORE_CTX_free(X509_STORE_CTX *ctx);
447int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, 447int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
448 X509 *x509, STACK_OF(X509) *chain); 448 X509 *x509, STACK_OF(X509) *chain);
449X509 *X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx);
450STACK_OF(X509) *X509_STORE_CTX_get0_untrusted(X509_STORE_CTX *ctx);
451void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk);
449void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); 452void X509_STORE_CTX_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk);
453void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk);
450void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); 454void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx);
451 455
452X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); 456X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m);
@@ -512,7 +516,7 @@ void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags,
512 time_t t); 516 time_t t);
513void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, 517void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx,
514 int (*verify_cb)(int, X509_STORE_CTX *)); 518 int (*verify_cb)(int, X509_STORE_CTX *));
515 519
516X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx); 520X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx);
517int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx); 521int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx);
518 522