aboutsummaryrefslogtreecommitdiffstats
path: root/crypto
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2021-04-16 11:13:30 +0100
committerMatt Caswell <matt@openssl.org>2021-04-19 10:52:18 +0100
commit978e323a4dbc9e790c13cc479b68c260677dc4c4 (patch)
treecd6e8ff536212de5b5f83b8ba049a7ff7602cbd4 /crypto
parent92b20fb8f742d50ca9eae8c28a855df94b9a3783 (diff)
downloadopenssl-978e323a4dbc9e790c13cc479b68c260677dc4c4.tar.gz
Add the function OSSL_LIB_CTX_get0_global_default()
An API function for obtaining the global default lib ctx. Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tim Hudson <tjh@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14890)
Diffstat (limited to 'crypto')
-rw-r--r--crypto/context.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/crypto/context.c b/crypto/context.c
index 07fff535ff..d7671d66a8 100644
--- a/crypto/context.c
+++ b/crypto/context.c
@@ -199,9 +199,17 @@ void OSSL_LIB_CTX_free(OSSL_LIB_CTX *ctx)
OPENSSL_free(ctx);
}
+#ifndef FIPS_MODULE
+OSSL_LIB_CTX *OSSL_LIB_CTX_get0_global_default(void)
+{
+ if (!RUN_ONCE(&default_context_init, default_context_do_init))
+ return NULL;
+
+ return &default_context_int;
+}
+
OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx)
{
-#ifndef FIPS_MODULE
OSSL_LIB_CTX *current_defctx;
if ((current_defctx = get_default_context()) != NULL) {
@@ -209,10 +217,10 @@ OSSL_LIB_CTX *OSSL_LIB_CTX_set0_default(OSSL_LIB_CTX *libctx)
set_default_context(libctx);
return current_defctx;
}
-#endif
return NULL;
}
+#endif
OSSL_LIB_CTX *ossl_lib_ctx_get_concrete(OSSL_LIB_CTX *ctx)
{