| =pod |
| |
| =head1 NAME |
| |
| dhparam - DH parameter manipulation and generation |
| |
| =head1 SYNOPSIS |
| |
| B<openssl dhparam> |
| [B<-inform DER|PEM>] |
| [B<-outform DER|PEM>] |
| [B<-in> I<filename>] |
| [B<-out> I<filename>] |
| [B<-dsaparam>] |
| [B<-noout>] |
| [B<-text>] |
| [B<-C>] |
| [B<-2>] |
| [B<-5>] |
| [B<-rand> I<file(s)>] |
| [I<numbits>] |
| |
| =head1 DESCRIPTION |
| |
| This command is used to manipulate DH parameter files. |
| |
| =head1 OPTIONS |
| |
| =over 4 |
| |
| =item B<-inform DER|PEM> |
| |
| This specifies the input format. The B<DER> option uses an ASN1 DER encoded |
| form compatible with the PKCS#3 DHparameter structure. The PEM form is the |
| default format: it consists of the B<DER> format base64 encoded with |
| additional header and footer lines. |
| |
| =item B<-outform DER|PEM> |
| |
| This specifies the output format, the options have the same meaning as the |
| B<-inform> option. |
| |
| =item B<-in> I<filename> |
| |
| This specifies the input filename to read parameters from or standard input if |
| this option is not specified. |
| |
| =item B<-out> I<filename> |
| |
| This specifies the output filename parameters to. Standard output is used |
| if this option is not present. The output filename should B<not> be the same |
| as the input filename. |
| |
| =item B<-dsaparam> |
| |
| If this option is used, DSA rather than DH parameters are read or created; |
| they are converted to DH format. Otherwise, "strong" primes (such |
| that (p-1)/2 is also prime) will be used for DH parameter generation. |
| |
| DH parameter generation with the B<-dsaparam> option is much faster, |
| and the recommended exponent length is shorter, which makes DH key |
| exchange more efficient. Beware that with such DSA-style DH |
| parameters, a fresh DH key should be created for each use to |
| avoid small-subgroup attacks that may be possible otherwise. |
| |
| =item B<-2>, B<-5> |
| |
| The generator to use, either 2 or 5. 2 is the default. If present then the |
| input file is ignored and parameters are generated instead. |
| |
| =item B<-rand> I<file(s)> |
| |
| a file or files containing random data used to seed the random number |
| generator, or an EGD socket (see L<RAND_egd(3)|RAND_egd(3)>). |
| Multiple files can be specified separated by a OS-dependent character. |
| The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for |
| all others. |
| |
| =item I<numbits> |
| |
| this option specifies that a parameter set should be generated of size |
| I<numbits>. It must be the last option. If not present then a value of 512 |
| is used. If this option is present then the input file is ignored and |
| parameters are generated instead. |
| |
| =item B<-noout> |
| |
| this option inhibits the output of the encoded version of the parameters. |
| |
| =item B<-text> |
| |
| this option prints out the DH parameters in human readable form. |
| |
| =item B<-C> |
| |
| this option converts the parameters into C code. The parameters can then |
| be loaded by calling the B<get_dh>I<numbits>B<()> function. |
| |
| =back |
| |
| =head1 WARNINGS |
| |
| The program B<dhparam> combines the functionality of the programs B<dh> and |
| B<gendh> in previous versions of OpenSSL and SSLeay. The B<dh> and B<gendh> |
| programs are retained for now but may have different purposes in future |
| versions of OpenSSL. |
| |
| =head1 NOTES |
| |
| PEM format DH parameters use the header and footer lines: |
| |
| -----BEGIN DH PARAMETERS----- |
| -----END DH PARAMETERS----- |
| |
| OpenSSL currently only supports the older PKCS#3 DH, not the newer X9.42 |
| DH. |
| |
| This program manipulates DH parameters not keys. |
| |
| =head1 BUGS |
| |
| There should be a way to generate and manipulate DH keys. |
| |
| =head1 SEE ALSO |
| |
| L<dsaparam(1)|dsaparam(1)> |
| |
| =head1 HISTORY |
| |
| The B<dhparam> command was added in OpenSSL 0.9.5. |
| The B<-dsaparam> option was added in OpenSSL 0.9.6. |
| |
| =cut |