• R
    Add basic EVP_KEYMGMT API and libcrypto <-> provider interface · a94a3e0d
    Richard Levitte 提交于
    The idea with the key management "operation" is to support the
    following set of functionality:
    
    - Key domain parameter generation
    - Key domain parameter import
    - Key domain parameter export
    
    - Key generation
    - Key import
    - Key export
    - Key loading (HSM / hidden key support)
    
    With that set of function, we can support handling domain parameters
    on one provider, key handling on another, and key usage on a third,
    with transparent export / import of applicable data.  Of course, if a
    provider doesn't offer export / import functionality, then all
    operations surrounding a key must be performed with the same
    provider.
    
    This method also avoids having to do anything special with legacy
    assignment of libcrypto key structures, i.e. EVP_PKEY_assign_RSA().
    They will simply be used as keys to be exported from whenever they are
    used with provider based operations.
    
    This change only adds the EVP_KEYMGMT API and the libcrypto <->
    provider interface.  Further changes will integrate them into existing
    libcrypto functionality.
    Reviewed-by: NMatt Caswell <matt@openssl.org>
    (Merged from https://github.com/openssl/openssl/pull/9312)
    a94a3e0d
evp_locl.h 6.8 KB