| 
									
										
										
										
											1999-11-10 10:52:17 +08:00
										 |  |  | =pod | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 NAME | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | genrsa - generate an RSA private key | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 SYNOPSIS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | B<openssl> B<genrsa> | 
					
						
							| 
									
										
										
										
											2016-02-06 00:58:45 +08:00
										 |  |  | [B<-help>] | 
					
						
							| 
									
										
										
										
											1999-11-10 10:52:17 +08:00
										 |  |  | [B<-out filename>] | 
					
						
							| 
									
										
										
										
											2000-02-17 07:16:01 +08:00
										 |  |  | [B<-passout arg>] | 
					
						
							| 
									
										
										
										
											2014-07-03 10:42:40 +08:00
										 |  |  | [B<-aes128>] | 
					
						
							|  |  |  | [B<-aes192>] | 
					
						
							|  |  |  | [B<-aes256>] | 
					
						
							|  |  |  | [B<-camellia128>] | 
					
						
							|  |  |  | [B<-camellia192>] | 
					
						
							|  |  |  | [B<-camellia256>] | 
					
						
							| 
									
										
										
										
											1999-11-10 10:52:17 +08:00
										 |  |  | [B<-des>] | 
					
						
							|  |  |  | [B<-des3>] | 
					
						
							|  |  |  | [B<-idea>] | 
					
						
							|  |  |  | [B<-f4>] | 
					
						
							|  |  |  | [B<-3>] | 
					
						
							| 
									
										
										
										
											2000-01-16 07:19:22 +08:00
										 |  |  | [B<-rand file(s)>] | 
					
						
							| 
									
										
										
										
											2003-01-31 06:02:27 +08:00
										 |  |  | [B<-engine id>] | 
					
						
							| 
									
										
										
										
											1999-11-10 10:52:17 +08:00
										 |  |  | [B<numbits>] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 DESCRIPTION | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The B<genrsa> command generates an RSA private key. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 OPTIONS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =over 4 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-06 00:58:45 +08:00
										 |  |  | =item B<-help> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Print out a usage message. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-02-08 09:34:59 +08:00
										 |  |  | =item B<-out filename> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-02-06 00:58:45 +08:00
										 |  |  | Output the key to the specified file. If this argument is not specified then | 
					
						
							|  |  |  | standard output is used. | 
					
						
							| 
									
										
										
										
											2000-02-08 09:34:59 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-02-17 07:16:01 +08:00
										 |  |  | =item B<-passout arg> | 
					
						
							| 
									
										
										
										
											2000-02-08 09:34:59 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-02-17 07:16:01 +08:00
										 |  |  | the output file password source. For more information about the format of B<arg> | 
					
						
							| 
									
										
										
										
											2015-08-18 03:21:33 +08:00
										 |  |  | see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>. | 
					
						
							| 
									
										
										
										
											2000-02-08 09:34:59 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-03 10:42:40 +08:00
										 |  |  | =item B<-aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea> | 
					
						
							| 
									
										
										
										
											1999-11-10 10:52:17 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-07-03 10:42:40 +08:00
										 |  |  | These options encrypt the private key with specified | 
					
						
							|  |  |  | cipher before outputting it. If none of these options is | 
					
						
							| 
									
										
										
										
											2000-02-08 09:34:59 +08:00
										 |  |  | specified no encryption is used. If encryption is used a pass phrase is prompted | 
					
						
							| 
									
										
										
										
											2000-02-17 07:16:01 +08:00
										 |  |  | for if it is not supplied via the B<-passout> argument. | 
					
						
							| 
									
										
										
										
											1999-11-10 10:52:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =item B<-F4|-3> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | the public exponent to use, either 65537 or 3. The default is 65537. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2000-01-16 07:19:22 +08:00
										 |  |  | =item B<-rand file(s)> | 
					
						
							| 
									
										
										
										
											1999-11-10 10:52:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | a file or files containing random data used to seed the random number | 
					
						
							| 
									
										
										
										
											2015-08-18 03:21:33 +08:00
										 |  |  | generator, or an EGD socket (see L<RAND_egd(3)>). | 
					
						
							| 
									
										
										
										
											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. | 
					
						
							| 
									
										
										
										
											2003-01-31 06:02:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =item B<-engine id> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-04-15 23:27:03 +08:00
										 |  |  | specifying an engine (by its unique B<id> string) will cause B<genrsa> | 
					
						
							| 
									
										
										
										
											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. | 
					
						
							| 
									
										
										
										
											1999-11-10 10:52:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =item B<numbits> | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | the size of the private key to generate in bits. This must be the last option | 
					
						
							|  |  |  | specified. The default is 512. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =back | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 NOTES | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | RSA private key generation essentially involves the generation of two prime | 
					
						
							|  |  |  | numbers. When generating a private key various symbols will be output to | 
					
						
							| 
									
										
										
										
											2000-02-17 07:16:01 +08:00
										 |  |  | indicate the progress of the generation. A B<.> represents each number which | 
					
						
							|  |  |  | has passed an initial sieve test, B<+> means a number has passed a single | 
					
						
							|  |  |  | round of the Miller-Rabin primality test. A newline means that the number has | 
					
						
							|  |  |  | passed all the prime tests (the actual number depends on the key size). | 
					
						
							| 
									
										
										
										
											1999-11-10 10:52:17 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | Because key generation is a random process the time taken to generate a key | 
					
						
							|  |  |  | may vary somewhat. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 BUGS | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | A quirk of the prime generation algorithm is that it cannot generate small | 
					
						
							|  |  |  | primes. Therefore the number of bits should not be less that 64. For typical | 
					
						
							|  |  |  | private keys this will not matter because for security reasons they will | 
					
						
							|  |  |  | be much larger (typically 1024 bits). | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | =head1 SEE ALSO | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-08-18 03:21:33 +08:00
										 |  |  | L<gendsa(1)> | 
					
						
							| 
									
										
										
										
											2000-03-19 06:00:26 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =cut | 
					
						
							| 
									
										
										
										
											2016-05-18 23:44:05 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | =head1 COPYRIGHT | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | Licensed under the OpenSSL license (the "License").  You may not use | 
					
						
							|  |  |  | 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 |