]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/man3/DH_generate_parameters.pod
Fix doc-nits from previous commit
[thirdparty/openssl.git] / doc / man3 / DH_generate_parameters.pod
CommitLineData
4486d0cd
UM
1=pod
2
3=head1 NAME
4
aafbe1cc 5DH_generate_parameters_ex, DH_generate_parameters,
6f8950a3
RL
6DH_check, DH_check_params - generate and check Diffie-Hellman
7parameters
4486d0cd
UM
8
9=head1 SYNOPSIS
10
11 #include <openssl/dh.h>
12
aebb9aac 13 int DH_generate_parameters_ex(DH *dh, int prime_len, int generator, BN_GENCB *cb);
4486d0cd
UM
14
15 int DH_check(DH *dh, int *codes);
6f8950a3 16 int DH_check_params(DH *dh, int *codes);
4486d0cd 17
aafbe1cc
MC
18Deprecated:
19
98186eb4 20 #if OPENSSL_API_COMPAT < 0x00908000L
aafbe1cc 21 DH *DH_generate_parameters(int prime_len, int generator,
e9b77246 22 void (*callback)(int, int, void *), void *cb_arg);
98186eb4 23 #endif
aafbe1cc 24
4486d0cd
UM
25=head1 DESCRIPTION
26
aafbe1cc
MC
27DH_generate_parameters_ex() generates Diffie-Hellman parameters that can
28be shared among a group of users, and stores them in the provided B<DH>
29structure. The pseudo-random number generator must be
b3696a55
RS
30seeded before calling it.
31The parameters generated by DH_generate_parameters_ex() should not be used in
32signature schemes.
4486d0cd
UM
33
34B<prime_len> is the length in bits of the safe prime to be generated.
1bc74519 35B<generator> is a small number E<gt> 1, typically 2 or 5.
4486d0cd
UM
36
37A callback function may be used to provide feedback about the progress
aafbe1cc 38of the key generation. If B<cb> is not B<NULL>, it will be
9b86974e 39called as described in L<BN_generate_prime(3)> while a random prime
aafbe1cc 40number is generated, and when a prime has been found, B<BN_GENCB_call(cb, 3, 0)>
b3696a55 41is called. See L<BN_generate_prime_ex(3)> for information on
aafbe1cc 42the BN_GENCB_call() function.
4486d0cd 43
b3696a55
RS
44DH_generate_parameters() is similar to DH_generate_prime_ex() but
45expects an old-style callback function; see
46L<BN_generate_prime(3)> for information on the old-style callback.
47
6f8950a3
RL
48DH_check_params() confirms that the B<p> and B<g> are likely enough to
49be valid.
50This is a lightweight check, if a more thorough check is needed, use
51DH_check().
52The value of B<*codes> is updated with any problems found.
53If B<*codes> is zero then no problems were found, otherwise the
54following bits may be set:
55
56=over 4
57
58=item DH_CHECK_P_NOT_PRIME
59
60The parameter B<p> has been determined to not being an odd prime.
61Note that the lack of this bit doesn't guarantee that B<p> is a
62prime.
63
64=item DH_NOT_SUITABLE_GENERATOR
65
66The generator B<g> is not suitable.
67Note that the lack of this bit doesn't guarantee that B<g> is
68suitable, unless B<p> is known to be a strong prime.
69
70=back
71
eeb21772
MC
72DH_check() confirms that the Diffie-Hellman parameters B<dh> are valid. The
73value of B<*codes> is updated with any problems found. If B<*codes> is zero then
74no problems were found, otherwise the following bits may be set:
75
76=over 4
77
78=item DH_CHECK_P_NOT_PRIME
79
80The parameter B<p> is not prime.
81
82=item DH_CHECK_P_NOT_SAFE_PRIME
83
84The parameter B<p> is not a safe prime and no B<q> value is present.
85
86=item DH_UNABLE_TO_CHECK_GENERATOR
87
88The generator B<g> cannot be checked for suitability.
89
90=item DH_NOT_SUITABLE_GENERATOR
91
92The generator B<g> is not suitable.
93
94=item DH_CHECK_Q_NOT_PRIME
95
96The parameter B<q> is not prime.
97
98=item DH_CHECK_INVALID_Q_VALUE
99
100The parameter B<q> is invalid.
101
102=item DH_CHECK_INVALID_J_VALUE
103
104The parameter B<j> is invalid.
105
106=back
4486d0cd
UM
107
108=head1 RETURN VALUES
109
6f8950a3
RL
110DH_generate_parameters_ex(), DH_check() and DH_check_params() return 1
111if the check could be performed, 0 otherwise.
aafbe1cc 112
b3696a55
RS
113DH_generate_parameters() returns a pointer to the DH structure or NULL if
114the parameter generation fails.
4486d0cd 115
9b86974e 116The error codes can be obtained by L<ERR_get_error(3)>.
4486d0cd 117
4486d0cd
UM
118=head1 SEE ALSO
119
b97fdb57 120L<DH_new(3)>, L<ERR_get_error(3)>, L<RAND_bytes(3)>,
9b86974e 121L<DH_free(3)>
4486d0cd 122
b3696a55
RS
123=head1 HISTORY
124
02eca5c6 125DH_generate_parameters() was deprecated in OpenSSL 0.9.8; use
b3696a55
RS
126DH_generate_parameters_ex() instead.
127
e2f92610
RS
128=head1 COPYRIGHT
129
130Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
131
132Licensed under the OpenSSL license (the "License"). You may not use
133this file except in compliance with the License. You can obtain a copy
134in the file LICENSE in the source distribution or at
135L<https://www.openssl.org/source/license.html>.
136
137=cut