| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | =pod | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 NAME | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-22 07:04:41 +08:00
										 |  |  | openssl-dhparam - DH parameter manipulation and generation | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 SYNOPSIS | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-03-04 06:18:19 +08:00
										 |  |  | B<openssl dhparam> | 
					
						
							| 
									
										
										
										
											2016-02-06 00:58:45 +08:00
										 |  |  | [B<-help>] | 
					
						
							| 
									
										
										
										
											2019-09-26 03:20:11 +08:00
										 |  |  | [B<-inform> B<DER>|B<PEM>] | 
					
						
							|  |  |  | [B<-outform> B<DER>|B<PEM>] | 
					
						
							| 
									
										
										
										
											2000-03-04 06:18:19 +08:00
										 |  |  | [B<-in> I<filename>] | 
					
						
							|  |  |  | [B<-out> I<filename>] | 
					
						
							|  |  |  | [B<-dsaparam>] | 
					
						
							| 
									
										
										
										
											2014-07-03 10:42:40 +08:00
										 |  |  | [B<-check>] | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | [B<-noout>] | 
					
						
							|  |  |  | [B<-text>] | 
					
						
							|  |  |  | [B<-C>] | 
					
						
							| 
									
										
										
										
											2000-01-22 21:58:29 +08:00
										 |  |  | [B<-2>] | 
					
						
							| 
									
										
										
										
											2019-07-10 21:52:36 +08:00
										 |  |  | [B<-3>] | 
					
						
							| 
									
										
										
										
											2000-01-22 21:58:29 +08:00
										 |  |  | [B<-5>] | 
					
						
							| 
									
										
										
										
											2019-09-26 03:20:11 +08:00
										 |  |  | [B<-rand> I<file...>] | 
					
						
							|  |  |  | [B<-writerand> I<file>] | 
					
						
							|  |  |  | [B<-engine> I<id>] | 
					
						
							| 
									
										
										
										
											2000-03-04 06:18:19 +08:00
										 |  |  | [I<numbits>] | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 DESCRIPTION | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | This command is used to manipulate DH parameter files. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 OPTIONS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =over 4 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-06 00:58:45 +08:00
										 |  |  | =item B<-help> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Print out a usage message. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-26 03:20:11 +08:00
										 |  |  | =item B<-inform> B<DER>|B<PEM> | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-26 03:20:11 +08:00
										 |  |  | =item B<-outform> B<DER>|B<PEM> | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-08-09 21:20:43 +08:00
										 |  |  | This specifies the output format, the options have the same meaning and default | 
					
						
							|  |  |  | as the B<-inform> option. | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-03-04 06:18:19 +08:00
										 |  |  | =item B<-in> I<filename> | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | This specifies the input filename to read parameters from or standard input if | 
					
						
							|  |  |  | this option is not specified. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-03-04 06:18:19 +08:00
										 |  |  | =item B<-out> I<filename> | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-03-04 06:18:19 +08:00
										 |  |  | =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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-03 10:42:40 +08:00
										 |  |  | =item B<-check> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-27 20:26:03 +08:00
										 |  |  | Performs numerous checks to see if the supplied parameters are valid and | 
					
						
							|  |  |  | displays a warning if not. | 
					
						
							| 
									
										
										
										
											2014-07-03 10:42:40 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-10 21:52:36 +08:00
										 |  |  | =item B<-2>, B<-3>, B<-5> | 
					
						
							| 
									
										
										
										
											2000-01-22 21:58:29 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-10 21:52:36 +08:00
										 |  |  | The generator to use, either 2, 3 or 5. If present then the | 
					
						
							| 
									
										
										
										
											2015-05-13 18:05:41 +08:00
										 |  |  | input file is ignored and parameters are generated instead. If not | 
					
						
							|  |  |  | present but B<numbits> is present, parameters are generated with the | 
					
						
							|  |  |  | default generator 2. | 
					
						
							| 
									
										
										
										
											2000-01-22 21:58:29 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-26 03:20:11 +08:00
										 |  |  | =item B<-rand> I<file...> | 
					
						
							| 
									
										
										
										
											2000-01-22 21:58:29 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-30 05:38:30 +08:00
										 |  |  | A file or files containing random data used to seed the random number | 
					
						
							| 
									
										
										
										
											2017-07-05 22:58:48 +08:00
										 |  |  | generator. | 
					
						
							| 
									
										
										
										
											2016-03-20 00:28:58 +08:00
										 |  |  | Multiple files can be specified separated by an OS-dependent character. | 
					
						
							| 
									
										
										
										
											2000-04-13 00:48:20 +08:00
										 |  |  | The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for | 
					
						
							| 
									
										
										
										
											2000-02-25 01:18:51 +08:00
										 |  |  | all others. | 
					
						
							| 
									
										
										
										
											2000-01-22 21:58:29 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-26 03:20:11 +08:00
										 |  |  | =item B<-writerand> I<file> | 
					
						
							| 
									
										
										
										
											2017-07-05 22:58:48 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | Writes random data to the specified I<file> upon exit. | 
					
						
							|  |  |  | This can be used with a subsequent B<-rand> flag. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-03-04 06:18:19 +08:00
										 |  |  | =item I<numbits> | 
					
						
							| 
									
										
										
										
											2000-01-22 21:58:29 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-30 05:38:30 +08:00
										 |  |  | This option specifies that a parameter set should be generated of size | 
					
						
							| 
									
										
										
										
											2015-05-13 18:05:41 +08:00
										 |  |  | I<numbits>. It must be the last option. If this option is present then | 
					
						
							|  |  |  | the input file is ignored and parameters are generated instead. If | 
					
						
							| 
									
										
										
										
											2019-07-23 04:50:19 +08:00
										 |  |  | this option is not present but a generator (B<-2>, B<-3> or B<-5>) is | 
					
						
							| 
									
										
										
										
											2015-05-13 18:05:41 +08:00
										 |  |  | present, parameters are generated with a default length of 2048 bits. | 
					
						
							| 
									
										
										
										
											2019-07-23 04:50:19 +08:00
										 |  |  | The minimim length is 512 bits. The maximum length is 10000 bits. | 
					
						
							| 
									
										
										
										
											2000-01-22 21:58:29 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | =item B<-noout> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-30 05:38:30 +08:00
										 |  |  | This option inhibits the output of the encoded version of the parameters. | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =item B<-text> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-30 05:38:30 +08:00
										 |  |  | This option prints out the DH parameters in human readable form. | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =item B<-C> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-30 05:38:30 +08:00
										 |  |  | This option converts the parameters into C code. The parameters can then | 
					
						
							| 
									
										
										
										
											2016-01-08 04:06:38 +08:00
										 |  |  | be loaded by calling the get_dhNNNN() function. | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-09-26 03:20:11 +08:00
										 |  |  | =item B<-engine> I<id> | 
					
						
							| 
									
										
										
										
											2003-01-31 06:02:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-30 05:38:30 +08:00
										 |  |  | Specifying an engine (by its unique B<id> string) will cause B<dhparam> | 
					
						
							| 
									
										
										
										
											2003-01-31 06:02:27 +08:00
										 |  |  | 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. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | =back | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-01-22 21:58:29 +08:00
										 |  |  | =head1 WARNINGS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The program B<dhparam> combines the functionality of the programs B<dh> and | 
					
						
							| 
									
										
										
										
											2015-10-28 03:11:48 +08:00
										 |  |  | B<gendh> in previous versions of OpenSSL. The B<dh> and B<gendh> | 
					
						
							| 
									
										
										
										
											2016-05-20 20:11:46 +08:00
										 |  |  | programs are retained for now but may have different purposes in future | 
					
						
							| 
									
										
										
										
											2000-01-22 21:58:29 +08:00
										 |  |  | versions of OpenSSL. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | =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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-22 07:04:41 +08:00
										 |  |  | L<openssl(1)>, | 
					
						
							|  |  |  | L<openssl-dsaparam(1)> | 
					
						
							| 
									
										
										
										
											2000-01-08 21:36:17 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-05-18 23:44:05 +08:00
										 |  |  | =head1 COPYRIGHT | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-07-10 21:52:36 +08:00
										 |  |  | Copyright 2000-2019 The OpenSSL Project Authors. All Rights Reserved. | 
					
						
							| 
									
										
										
										
											2016-05-18 23:44:05 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-12-06 21:04:11 +08:00
										 |  |  | Licensed under the Apache License 2.0 (the "License").  You may not use | 
					
						
							| 
									
										
										
										
											2016-05-18 23:44:05 +08:00
										 |  |  | this file except in compliance with the License.  You can obtain a copy | 
					
						
							|  |  |  | in the file LICENSE in the source distribution or at | 
					
						
							|  |  |  | L<https://www.openssl.org/source/license.html>. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =cut |