EVP_PKEY_CTX_new
,
EVP_PKEY_CTX_new_id
,
EVP_PKEY_CTX_dup
,
EVP_PKEY_CTX_free
— public
key algorithm context functions
#include
<openssl/evp.h>
EVP_PKEY_CTX *
EVP_PKEY_CTX_new
(EVP_PKEY *pkey,
ENGINE *engine);
EVP_PKEY_CTX *
EVP_PKEY_CTX_new_id
(int id,
ENGINE *engine);
EVP_PKEY_CTX *
EVP_PKEY_CTX_dup
(EVP_PKEY_CTX
*ctx);
void
EVP_PKEY_CTX_free
(EVP_PKEY_CTX
*ctx);
The
EVP_PKEY_CTX_new
()
function allocates a public key algorithm context using the algorithm
specified in pkey. The ENGINE
*engine argument is always ignored and passing
NULL
is recommended.
The
EVP_PKEY_CTX_new_id
()
function allocates a public key algorithm context using the algorithm
specified by id. The ENGINE
*engine argument is always ignored and passing
NULL
is recommended. It is normally used when no
EVP_PKEY structure is associated with the operations,
for example during parameter generation of key generation for some
algorithms. The id argument can be any of the
constants that
EVP_PKEY_base_id(3)
and
EVP_PKEY_id(3)
may return.
EVP_PKEY_CTX_dup
()
duplicates the context ctx.
EVP_PKEY_CTX_free
()
frees up the context ctx. If ctx
is a NULL
pointer, no action occurs.
EVP_PKEY_CTX_new
(),
EVP_PKEY_CTX_new_id
(), and
EVP_PKEY_CTX_dup
() return either the newly allocated
EVP_PKEY_CTX structure or NULL
if an error occurred.
EVP_DigestSignInit(3),
EVP_DigestVerifyInit(3),
EVP_PKEY_base_id(3),
EVP_PKEY_CTX_ctrl(3),
EVP_PKEY_CTX_get_operation(3),
EVP_PKEY_CTX_hkdf_mode(3),
EVP_PKEY_decrypt(3),
EVP_PKEY_derive(3),
EVP_PKEY_encrypt(3),
EVP_PKEY_keygen(3),
EVP_PKEY_new(3),
EVP_PKEY_sign(3),
EVP_PKEY_verify(3),
EVP_PKEY_verify_recover(3),
RSA_pkey_ctx_ctrl(3),
X25519(3)
These functions first appeared in OpenSSL 1.0.0 and have been
available since OpenBSD 4.9.
The EVP_PKEY_CTX structure is an opaque
public key algorithm context used by the OpenSSL high level public key API.
Contexts MUST
NOT be shared between threads. It is not permissible to use the same
context simultaneously in two threads.