1=pod 2 3=head1 NAME 4 5EVP_PKEY_CTX_new, EVP_PKEY_CTX_new_id, EVP_PKEY_CTX_dup, EVP_PKEY_CTX_free - public key algorithm context functions. 6 7=head1 SYNOPSIS 8 9 #include <openssl/evp.h> 10 11 EVP_PKEY_CTX *EVP_PKEY_CTX_new(EVP_PKEY *pkey, ENGINE *e); 12 EVP_PKEY_CTX *EVP_PKEY_CTX_new_id(int id, ENGINE *e); 13 EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx); 14 void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); 15 16=head1 DESCRIPTION 17 18The EVP_PKEY_CTX_new() function allocates public key algorithm context using 19the algorithm specified in B<pkey> and ENGINE B<e>. 20 21The EVP_PKEY_CTX_new_id() function allocates public key algorithm context 22using the algorithm specified by B<id> and ENGINE B<e>. It is normally used 23when no B<EVP_PKEY> structure is associated with the operations, for example 24during parameter generation of key genration for some algorithms. 25 26EVP_PKEY_CTX_dup() duplicates the context B<ctx>. 27 28EVP_PKEY_CTX_free() frees up the context B<ctx>. 29 30=head1 NOTES 31 32The B<EVP_PKEY_CTX> structure is an opaque public key algorithm context used 33by the OpenSSL high level public key API. Contexts B<MUST NOT> be shared between 34threads: that is it is not permissible to use the same context simultaneously 35in two threads. 36 37=head1 RETURN VALUES 38 39EVP_PKEY_CTX_new(), EVP_PKEY_CTX_new_id(), EVP_PKEY_CTX_dup() returns either 40the newly allocated B<EVP_PKEY_CTX> structure of B<NULL> if an error occurred. 41 42EVP_PKEY_CTX_free() does not return a value. 43 44=head1 SEE ALSO 45 46L<EVP_PKEY_new(3)|EVP_PKEY_new(3)> 47 48=head1 HISTORY 49 50These functions were first added to OpenSSL 1.0.0. 51 52=cut 53