DOC: Extend EVP_PKEY-DSA(7) / EVP_PKEY_DH(7) with FFC information
[openssl.git] / doc / man3 / DH_new_by_nid.pod
1 =pod
2
3 =head1 NAME
4
5 DH_new_by_nid, DH_get_nid - get or find DH named parameters
6
7 =head1 SYNOPSIS
8
9  #include <openssl/dh.h>
10  DH *DH_new_by_nid(int nid);
11
12 Deprecated since OpenSSL 3.0, can be hidden entirely by defining
13 B<OPENSSL_API_COMPAT> with a suitable version value, see
14 L<openssl_user_macros(7)>:
15
16  int *DH_get_nid(DH *dh);
17
18 =head1 DESCRIPTION
19
20 DH_new_by_nid() creates and returns a DH structure containing named parameters
21 B<nid>. Currently B<nid> must be B<NID_ffdhe2048>, B<NID_ffdhe3072>,
22 B<NID_ffdhe4096>, B<NID_ffdhe6144>, B<NID_ffdhe8192>,
23 B<NID_modp_1536>, B<NID_modp_2048>, B<NID_modp_3072>,
24 B<NID_modp_4096>, B<NID_modp_6144> or B<NID_modp_8192>.
25
26 DH_get_nid() determines if the parameters contained in B<dh> match
27 any named safe prime group. It returns the NID corresponding to the matching
28 parameters or B<NID_undef> if there is no match.
29 Internally it caches the nid, so that any subsequent calls can fetch the
30 cached value.
31 If a matching p and g are not found and the value of parameter q is not set,
32 then it is set to q = (p - 1) / 2.
33 If parameter q is already set then it must also match the expected q otherwise
34 no match will be found.
35 This function is deprecated.
36
37 =head1 RETURN VALUES
38
39 DH_new_by_nid() returns a set of DH parameters or B<NULL> if an error occurred.
40
41 DH_get_nid() returns the NID of the matching set of parameters for p and g
42 and optionally q, otherwise it returns B<NID_undef> if there is no match.
43
44 =head1 HISTORY
45
46 The DH_get_nid() function was deprecated in OpenSSL 3.0.
47
48 =head1 COPYRIGHT
49
50 Copyright 2017-2020 The OpenSSL Project Authors. All Rights Reserved.
51
52 Licensed under the Apache License 2.0 (the "License").  You may not use
53 this file except in compliance with the License.  You can obtain a copy
54 in the file LICENSE in the source distribution or at
55 L<https://www.openssl.org/source/license.html>.
56
57 =cut