openssl/providers/implementations/keymgmt
Richard Levitte adc9f73126 EVP: Clarify the states of an EVP_PKEY
EVP_PKEY is rather complex, even before provider side keys entered the
stage.
You could have untyped / unassigned keys (pk->type == EVP_PKEY_NONE),
keys that had been assigned a type but no data (pk->pkey.ptr == NULL),
and fully assigned keys (pk->type != EVP_PKEY_NONE && pk->pkey.ptr != NULL).

For provider side keys, the corresponding states weren't well defined,
and the code didn't quite account for all the possibilities.

We also guard most of the legacy fields in EVP_PKEY with FIPS_MODE, so
they don't exist at all in the FIPS module.

Most of all, code needs to adapt to the case where an EVP_PKEY's
|keymgmt| is non-NULL, but its |keydata| is NULL.

Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/11375)
2020-03-25 17:00:39 +01:00
..
build.info [PROV][KMGMT][KEXCH][EC] Implement EC keymgtm and ECDH 2020-02-18 19:11:10 +02:00
dh_kmgmt.c EVP: Clarify the states of an EVP_PKEY 2020-03-25 17:00:39 +01:00
dsa_kmgmt.c EVP: Clarify the states of an EVP_PKEY 2020-03-25 17:00:39 +01:00
ec_kmgmt.c EVP: Clarify the states of an EVP_PKEY 2020-03-25 17:00:39 +01:00
ec_kmgmt_imexport.inc [PROV][KMGMT][KEXCH][EC] Implement EC keymgtm and ECDH 2020-02-18 19:11:10 +02:00
ecx_kmgmt.c EVP: Clarify the states of an EVP_PKEY 2020-03-25 17:00:39 +01:00
rsa_kmgmt.c EVP: Clarify the states of an EVP_PKEY 2020-03-25 17:00:39 +01:00