EVP_PKEY_todata.3ossl - Man Page

functions to return keys as an array of key parameters


 #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);


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

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 similiar 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 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.


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-DSA(7), EVP_PKEY-DH(7), EVP_PKEY-EC(7), EVP_PKEY-ED448(7), EVP_PKEY-X25519(7), EVP_PKEY-X448(7), EVP_PKEY-ED25519(7)


These functions were added in OpenSSL 3.0.

Referenced By

evp.7ossl(7), EVP_PKEY_fromdata.3ossl(3), migration_guide.7ossl(7).

The man page EVP_PKEY_export.3ossl(3) is an alias of EVP_PKEY_todata.3ossl(3).

2021-09-09 3.0.0 OpenSSL