logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

EVP_PKEY_todata, EVP_PKEY_export - functions to return keys as an array of key parameters

Description

       The functions described here are used to extract EVP_PKEY key values as an array of OSSL_PARAM(3).

       EVP_PKEY_todata() extracts values from a key pkey using the selection.  selection is described in
       "Selections" in EVP_PKEY_fromdata(3).  OSSL_PARAM_free(3) should be used to free the returned parameters
       in *params.

       EVP_PKEY_export() is similar to EVP_PKEY_todata() but uses a callback export_cb that gets passed the
       value of export_cbarg.  See openssl-core.h(7) for more information about the callback. Note that the
       OSSL_PARAM(3) array that is passed to the callback is not persistent after the callback returns. The user
       must preserve the items of interest, or use EVP_PKEY_todata() if persistence is required.

History

       These functions were added in OpenSSL 3.0.

       Support for ML-DSA, ML-KEM and SLH-DSA was added in OpenSSL 3.5.

Name

       EVP_PKEY_todata, EVP_PKEY_export - functions to return keys as an array of key parameters

Notes

       These functions only work with key management methods coming from a provider.  This is the mirror
       function to EVP_PKEY_fromdata(3).

Return Values

EVP_PKEY_todata() and EVP_PKEY_export() return 1 for success and 0 for failure.

See Also

OSSL_PARAM(3), openssl-core.h(7), EVP_PKEY_fromdata(3), EVP_PKEY-RSA(7), EVP_PKEY-EC(7), EVP_PKEY-DSA(7),
       EVP_PKEY-ED25519(7) EVP_PKEY-ED448(7), EVP_PKEY-DH(7), EVP_PKEY-X25519(7), EVP_PKEY-X448(7),
       EVP_PKEY-ML-DSA(7), EVP_PKEY-ML-KEM(7), EVP_PKEY-SLH-DSA(7).

Synopsis

        #include <openssl/evp.h>

        int EVP_PKEY_todata(const EVP_PKEY *pkey, int selection, OSSL_PARAM **params);
        int EVP_PKEY_export(const EVP_PKEY *pkey, int selection,
                            OSSL_CALLBACK *export_cb, void *export_cbarg);

See Also