diff options
author | Pauli <ppzgs1@gmail.com> | 2021-02-08 11:03:01 +1000 |
---|---|---|
committer | Pauli <ppzgs1@gmail.com> | 2021-02-12 12:28:55 +1000 |
commit | 7dce37e2ec3d580eccce65c32f8d60dea600a28a (patch) | |
tree | 4691397be7030fde07088a3ac9fa6c211217e4ec /crypto/provider_core.c | |
parent | 499f2ae9e989015b75c5a3895994f26bc0a7334a (diff) | |
download | openssl-new-7dce37e2ec3d580eccce65c32f8d60dea600a28a.tar.gz |
Prov: add an option to force provider fetches to not be cached.
If the macro OSSL_FORCE_NO_CACHE_FETCH is defined, no provider will have its
fetches cached.
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14126)
Diffstat (limited to 'crypto/provider_core.c')
-rw-r--r-- | crypto/provider_core.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/crypto/provider_core.c b/crypto/provider_core.c index 5016d54d55..627ff384e1 100644 --- a/crypto/provider_core.c +++ b/crypto/provider_core.c @@ -914,8 +914,17 @@ const OSSL_ALGORITHM *ossl_provider_query_operation(const OSSL_PROVIDER *prov, int operation_id, int *no_cache) { - return prov->query_operation == NULL - ? NULL : prov->query_operation(prov->provctx, operation_id, no_cache); + const OSSL_ALGORITHM *res; + + if (prov->query_operation == NULL) + return NULL; + res = prov->query_operation(prov->provctx, operation_id, no_cache); +#if defined(OPENSSL_NO_CACHED_FETCH) + /* Forcing the non-caching of queries */ + if (no_cache != NULL) + *no_cache = 1; +#endif + return res; } int ossl_provider_set_operation_bit(OSSL_PROVIDER *provider, size_t bitnum) |