mirror of https://github.com/openssl/openssl.git
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) |
||
|---|---|---|
| .. | ||
| __DECC_INCLUDE_EPILOGUE.H | ||
| __DECC_INCLUDE_PROLOGUE.H | ||
| aes_platform.h | ||
| aria.h | ||
| asn1.h | ||
| asn1_dsa.h | ||
| async.h | ||
| bn.h | ||
| bn_conf.h.in | ||
| bn_dh.h | ||
| bn_srp.h | ||
| chacha.h | ||
| cmll_platform.h | ||
| cms.h | ||
| cryptlib.h | ||
| ctype.h | ||
| des_platform.h | ||
| dh.h | ||
| dsa.h | ||
| dso_conf.h.in | ||
| ec.h | ||
| ecx.h | ||
| engine.h | ||
| err.h | ||
| ess.h | ||
| evp.h | ||
| lhash.h | ||
| md32_common.h | ||
| modes.h | ||
| objects.h | ||
| poly1305.h | ||
| rand.h | ||
| rsa.h | ||
| security_bits.h | ||
| serializer.h | ||
| sha.h | ||
| siphash.h | ||
| siv.h | ||
| sm2.h | ||
| sm2err.h | ||
| sm4.h | ||
| sparse_array.h | ||
| store.h | ||
| x509.h | ||
| x509v3.h | ||