OpenBSD manual page server

Manual Page Search Parameters

EVP_PKEY_CTX_NEW(3) Library Functions Manual EVP_PKEY_CTX_NEW(3)

EVP_PKEY_CTX_new, EVP_PKEY_CTX_new_id, EVP_PKEY_CTX_dup, EVP_PKEY_CTX_freepublic key algorithm context functions

#include <openssl/evp.h>

EVP_PKEY_CTX *
EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e);

EVP_PKEY_CTX *
EVP_PKEY_CTX_new_id(int id, ENGINE *e);

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 and using e unless it is NULL. If pkey is associated with an engine, that engine is used and e is ignored.

The EVP_PKEY_CTX_new_id() function allocates a public key algorithm context using the algorithm specified by id and using e unless it is NULL. 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 following id constants are supported: EVP_PKEY_CMAC, EVP_PKEY_DH, EVP_PKEY_DSA, EVP_PKEY_EC, EVP_PKEY_GOSTIMIT, EVP_PKEY_GOSTR01, EVP_PKEY_HMAC, EVP_PKEY_RSA, and EVP_PKEY_RSA_PSS. Application programs can define additional id values using EVP_PKEY_meth_new(3).

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_CTX_ctrl(3), EVP_PKEY_decrypt(3), EVP_PKEY_derive(3), EVP_PKEY_encrypt(3), EVP_PKEY_keygen(3), EVP_PKEY_meth_set_init(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.

November 1, 2019 OpenBSD-current