• R
    EVP: Downgrade keys rather than upgrade · acb90ba8
    Richard Levitte 提交于
    Upgrading EVP_PKEYs from containing legacy keys to containing provider
    side keys proved to be risky, with a number of unpleasant corner
    cases, and with functions like EVP_PKEY_get0_DSA() failing
    unexpectedly.
    
    We therefore change course, and instead of upgrading legacy internal
    keys to provider side internal keys, we downgrade provider side
    internal keys to legacy ones.  To be able to do this, we add
    |import_from| and make it a callback function designed for
    evp_keymgmt_export().
    
    This means that evp_pkey_upgrade_to_provider() is replaced with
    evp_pkey_downgrade().
    
    EVP_PKEY_copy_parameters() is the most deeply affected function of
    this change.
    
    Fixes #11366
    Reviewed-by: NMatt Caswell <matt@openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/11375)
    acb90ba8
CHANGES.md 676.2 KB