]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/man1/openssl-dhparam.pod
evp_pkey_ctx_free_old_ops(): Make sure to assign NULL to freed pointers
[thirdparty/openssl.git] / doc / man1 / openssl-dhparam.pod
CommitLineData
ef7eaa4c
DSH
1=pod
2
3=head1 NAME
4
b6b66573 5openssl-dhparam - DH parameter manipulation and generation
ef7eaa4c
DSH
6
7=head1 SYNOPSIS
8
41918458 9B<openssl dhparam>
169394d4 10[B<-help>]
e8769719
RS
11[B<-inform> B<DER>|B<PEM>]
12[B<-outform> B<DER>|B<PEM>]
41918458
BM
13[B<-in> I<filename>]
14[B<-out> I<filename>]
15[B<-dsaparam>]
fc1d88f0 16[B<-check>]
ef7eaa4c
DSH
17[B<-noout>]
18[B<-text>]
19[B<-C>]
09483c58 20[B<-2>]
a38c878c 21[B<-3>]
09483c58 22[B<-5>]
fed8bd90 23[B<-rand> I<files>]
e8769719
RS
24[B<-writerand> I<file>]
25[B<-engine> I<id>]
41918458 26[I<numbits>]
ef7eaa4c 27
9f3c076b 28=for openssl ifdef dsaparam engine
1738c0ce 29
ef7eaa4c
DSH
30=head1 DESCRIPTION
31
32This command is used to manipulate DH parameter files.
33
34=head1 OPTIONS
35
36=over 4
37
169394d4
MR
38=item B<-help>
39
40Print out a usage message.
41
777182a0 42=item B<-inform> B<DER>|B<PEM>, B<-outform> B<DER>|B<PEM>
ef7eaa4c 43
777182a0
RS
44The input format and output format; the default is B<PEM>.
45The object is compatible with the PKCS#3 B<DHparameter> structure.
46See L<openssl(1)/Format Options> for details.
ef7eaa4c 47
41918458 48=item B<-in> I<filename>
ef7eaa4c
DSH
49
50This specifies the input filename to read parameters from or standard input if
51this option is not specified.
52
41918458 53=item B<-out> I<filename>
ef7eaa4c
DSH
54
55This specifies the output filename parameters to. Standard output is used
56if this option is not present. The output filename should B<not> be the same
57as the input filename.
58
41918458
BM
59=item B<-dsaparam>
60
61If this option is used, DSA rather than DH parameters are read or created;
62they are converted to DH format. Otherwise, "strong" primes (such
63that (p-1)/2 is also prime) will be used for DH parameter generation.
64
65DH parameter generation with the B<-dsaparam> option is much faster,
66and the recommended exponent length is shorter, which makes DH key
67exchange more efficient. Beware that with such DSA-style DH
68parameters, a fresh DH key should be created for each use to
69avoid small-subgroup attacks that may be possible otherwise.
70
fc1d88f0
RS
71=item B<-check>
72
eeb21772
MC
73Performs numerous checks to see if the supplied parameters are valid and
74displays a warning if not.
fc1d88f0 75
a38c878c 76=item B<-2>, B<-3>, B<-5>
09483c58 77
a38c878c 78The generator to use, either 2, 3 or 5. If present then the
b5a379aa 79input file is ignored and parameters are generated instead. If not
2f0ea936 80present but I<numbits> is present, parameters are generated with the
b5a379aa 81default generator 2.
09483c58 82
a397aca4 83=item B<-rand> I<files>, B<-writerand> I<file>
09483c58 84
a397aca4 85See L<openssl(1)/Random State Options> for more information.
3ee1eac2 86
41918458 87=item I<numbits>
09483c58 88
c4de074e 89This option specifies that a parameter set should be generated of size
b5a379aa
EK
90I<numbits>. It must be the last option. If this option is present then
91the input file is ignored and parameters are generated instead. If
6de1fe90 92this option is not present but a generator (B<-2>, B<-3> or B<-5>) is
b5a379aa 93present, parameters are generated with a default length of 2048 bits.
6de1fe90 94The minimim length is 512 bits. The maximum length is 10000 bits.
09483c58 95
ef7eaa4c
DSH
96=item B<-noout>
97
c4de074e 98This option inhibits the output of the encoded version of the parameters.
ef7eaa4c
DSH
99
100=item B<-text>
101
c4de074e 102This option prints out the DH parameters in human readable form.
ef7eaa4c
DSH
103
104=item B<-C>
105
c4de074e 106This option converts the parameters into C code. The parameters can then
bbd86bf5 107be loaded by calling the get_dhNNNN() function.
ef7eaa4c 108
e8769719 109=item B<-engine> I<id>
bfa35550 110
2f0ea936 111Specifying an engine (by its unique I<id> string) will cause B<dhparam>
bfa35550
RL
112to attempt to obtain a functional reference to the specified engine,
113thus initialising it if needed. The engine will then be set as the default
114for all available algorithms.
115
ef7eaa4c
DSH
116=back
117
09483c58
DSH
118=head1 WARNINGS
119
35a810bb
RL
120This command combines the functionality of the L<openssl-dh(1)> and the
121L<openssl-gendh(1)> commands in previous OpenSSL versions.
122The L<openssl-dh(1)> and L<openssl-gendh(1)> commands are retained for now but
123may have different purposes in future versions of OpenSSL.
09483c58 124
ef7eaa4c
DSH
125=head1 NOTES
126
ef7eaa4c
DSH
127OpenSSL currently only supports the older PKCS#3 DH, not the newer X9.42
128DH.
129
130This program manipulates DH parameters not keys.
131
132=head1 BUGS
133
ef7eaa4c
DSH
134There should be a way to generate and manipulate DH keys.
135
136=head1 SEE ALSO
137
b6b66573
DMSP
138L<openssl(1)>,
139L<openssl-dsaparam(1)>
ef7eaa4c 140
e2f92610
RS
141=head1 COPYRIGHT
142
a38c878c 143Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved.
e2f92610 144
449040b4 145Licensed under the Apache License 2.0 (the "License"). You may not use
e2f92610
RS
146this file except in compliance with the License. You can obtain a copy
147in the file LICENSE in the source distribution or at
148L<https://www.openssl.org/source/license.html>.
149
150=cut