=pod =head1 NAME dhparam - DH parameter manipulation and generation =head1 SYNOPSIS B [B<-inform DER|PEM>] [B<-outform DER|PEM>] [B<-in> I] [B<-out> I] [B<-dsaparam>] [B<-check>] [B<-noout>] [B<-text>] [B<-C>] [B<-2>] [B<-5>] [B<-rand> I] [B<-engine id>] [I] =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 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 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 This specifies the input filename to read parameters from or standard input if this option is not specified. =item B<-out> I This specifies the output filename parameters to. Standard output is used if this option is not present. The output filename should B 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<-check> check if the parameters are valid primes and generator. =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 a file or files containing random data used to seed the random number generator, or an EGD socket (see L). 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 this option specifies that a parameter set should be generated of size I. 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 BIB<()> function. =item B<-engine id> specifying an engine (by its unique B string) will cause B to attempt to obtain a functional reference to the specified engine, thus initialising it if needed. The engine will then be set as the default for all available algorithms. =back =head1 WARNINGS The program B combines the functionality of the programs B and B in previous versions of OpenSSL and SSLeay. The B and B 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 =head1 HISTORY The B command was added in OpenSSL 0.9.5. The B<-dsaparam> option was added in OpenSSL 0.9.6. =cut