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