Fail if we fail to fetch the EVP_KEYMGMT
authorMatt Caswell <matt@openssl.org>
Wed, 13 May 2020 16:17:35 +0000 (17:17 +0100)
committerMatt Caswell <matt@openssl.org>
Thu, 28 May 2020 16:01:47 +0000 (17:01 +0100)
commitb533510f3bc70957dbf447f7ea8ec20765c5b314
tree33f865910bc41eab1d5165940a9418dd4a3ea778
parent9e6cb4344233aeefe91c6092567f887015ee345a
Fail if we fail to fetch the EVP_KEYMGMT

If we failed to fetch an EVP_KEYMGMT then we were falling back to legacy.
This is because some algorithms (such as MACs and KDFs used via an old
style EVP_PKEY) have not been transferred to providers.

Unfortunately this means that you cannot stop some algorithms from being
used by not loading the provider.

For example if you wanted to prevent RSA from being used, you might expect
to just not load any providers that make it available. Unfortunately that
doesn't work because we simply fall back to legacy if we fail to fetch
the EVP_KEYMGMT.

Instead we should fail *unless* the key type is one of those legacy key
types that we have not transferred.

Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/11826)
crypto/evp/pmeth_lib.c
test/evp_test.c