Dr. Stephen Henson | aba3e65 | 1999-11-10 02:52:17 +0000 | [diff] [blame] | 1 | =pod |
| 2 | |
| 3 | =head1 NAME |
| 4 | |
| 5 | genrsa - generate an RSA private key |
| 6 | |
Dr. Stephen Henson | aba3e65 | 1999-11-10 02:52:17 +0000 | [diff] [blame] | 7 | =head1 SYNOPSIS |
| 8 | |
| 9 | B<openssl> B<genrsa> |
A J Mohan Rao | 169394d | 2016-02-05 11:58:45 -0500 | [diff] [blame] | 10 | [B<-help>] |
Dr. Stephen Henson | aba3e65 | 1999-11-10 02:52:17 +0000 | [diff] [blame] | 11 | [B<-out filename>] |
Dr. Stephen Henson | a3fe382 | 2000-02-16 23:16:01 +0000 | [diff] [blame] | 12 | [B<-passout arg>] |
Rich Salz | fc1d88f | 2014-07-02 22:42:40 -0400 | [diff] [blame] | 13 | [B<-aes128>] |
Rich Salz | fc1d88f | 2014-07-02 22:42:40 -0400 | [diff] [blame] | 14 | [B<-aes192>] |
| 15 | [B<-aes256>] |
Pauli | d42d0a4 | 2017-02-01 10:10:13 +1000 | [diff] [blame] | 16 | [B<-aria128>] |
| 17 | [B<-aria192>] |
| 18 | [B<-aria256>] |
Rich Salz | fc1d88f | 2014-07-02 22:42:40 -0400 | [diff] [blame] | 19 | [B<-camellia128>] |
| 20 | [B<-camellia192>] |
| 21 | [B<-camellia256>] |
Dr. Stephen Henson | aba3e65 | 1999-11-10 02:52:17 +0000 | [diff] [blame] | 22 | [B<-des>] |
| 23 | [B<-des3>] |
| 24 | [B<-idea>] |
| 25 | [B<-f4>] |
| 26 | [B<-3>] |
Richard Levitte | 9597902 | 2000-01-15 23:19:22 +0000 | [diff] [blame] | 27 | [B<-rand file(s)>] |
Richard Levitte | bfa3555 | 2003-01-30 22:02:27 +0000 | [diff] [blame] | 28 | [B<-engine id>] |
Dr. Stephen Henson | aba3e65 | 1999-11-10 02:52:17 +0000 | [diff] [blame] | 29 | [B<numbits>] |
| 30 | |
| 31 | =head1 DESCRIPTION |
| 32 | |
| 33 | The B<genrsa> command generates an RSA private key. |
| 34 | |
| 35 | =head1 OPTIONS |
| 36 | |
| 37 | =over 4 |
| 38 | |
A J Mohan Rao | 169394d | 2016-02-05 11:58:45 -0500 | [diff] [blame] | 39 | =item B<-help> |
| 40 | |
| 41 | Print out a usage message. |
| 42 | |
Dr. Stephen Henson | f07fb9b | 2000-02-08 01:34:59 +0000 | [diff] [blame] | 43 | =item B<-out filename> |
| 44 | |
A J Mohan Rao | 169394d | 2016-02-05 11:58:45 -0500 | [diff] [blame] | 45 | Output the key to the specified file. If this argument is not specified then |
| 46 | standard output is used. |
Dr. Stephen Henson | f07fb9b | 2000-02-08 01:34:59 +0000 | [diff] [blame] | 47 | |
Dr. Stephen Henson | a3fe382 | 2000-02-16 23:16:01 +0000 | [diff] [blame] | 48 | =item B<-passout arg> |
Dr. Stephen Henson | f07fb9b | 2000-02-08 01:34:59 +0000 | [diff] [blame] | 49 | |
Dr. Stephen Henson | a3fe382 | 2000-02-16 23:16:01 +0000 | [diff] [blame] | 50 | the output file password source. For more information about the format of B<arg> |
Rich Salz | 9b86974 | 2015-08-17 15:21:33 -0400 | [diff] [blame] | 51 | see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>. |
Dr. Stephen Henson | f07fb9b | 2000-02-08 01:34:59 +0000 | [diff] [blame] | 52 | |
Pauli | d42d0a4 | 2017-02-01 10:10:13 +1000 | [diff] [blame] | 53 | =item B<-aes128|-aes192|-aes256|-aria128|-aria192|-aria256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea> |
Dr. Stephen Henson | aba3e65 | 1999-11-10 02:52:17 +0000 | [diff] [blame] | 54 | |
Rich Salz | fc1d88f | 2014-07-02 22:42:40 -0400 | [diff] [blame] | 55 | These options encrypt the private key with specified |
| 56 | cipher before outputting it. If none of these options is |
Dr. Stephen Henson | f07fb9b | 2000-02-08 01:34:59 +0000 | [diff] [blame] | 57 | specified no encryption is used. If encryption is used a pass phrase is prompted |
Dr. Stephen Henson | a3fe382 | 2000-02-16 23:16:01 +0000 | [diff] [blame] | 58 | for if it is not supplied via the B<-passout> argument. |
Dr. Stephen Henson | aba3e65 | 1999-11-10 02:52:17 +0000 | [diff] [blame] | 59 | |
| 60 | =item B<-F4|-3> |
| 61 | |
| 62 | the public exponent to use, either 65537 or 3. The default is 65537. |
| 63 | |
Richard Levitte | 9597902 | 2000-01-15 23:19:22 +0000 | [diff] [blame] | 64 | =item B<-rand file(s)> |
Dr. Stephen Henson | aba3e65 | 1999-11-10 02:52:17 +0000 | [diff] [blame] | 65 | |
| 66 | a file or files containing random data used to seed the random number |
Rich Salz | 9b86974 | 2015-08-17 15:21:33 -0400 | [diff] [blame] | 67 | generator, or an EGD socket (see L<RAND_egd(3)>). |
Alex Gaynor | 35ed393 | 2016-03-19 12:28:58 -0400 | [diff] [blame] | 68 | Multiple files can be specified separated by an OS-dependent character. |
Richard Levitte | b87ef94 | 2000-04-12 16:48:20 +0000 | [diff] [blame] | 69 | The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for |
Ulf Möller | a4cfd17 | 2000-02-24 17:18:51 +0000 | [diff] [blame] | 70 | all others. |
Dr. Stephen Henson | aba3e65 | 1999-11-10 02:52:17 +0000 | [diff] [blame] | 71 | |
Richard Levitte | bfa3555 | 2003-01-30 22:02:27 +0000 | [diff] [blame] | 72 | =item B<-engine id> |
| 73 | |
Dr. Stephen Henson | e5fa864 | 2009-04-15 15:27:03 +0000 | [diff] [blame] | 74 | specifying an engine (by its unique B<id> string) will cause B<genrsa> |
Richard Levitte | bfa3555 | 2003-01-30 22:02:27 +0000 | [diff] [blame] | 75 | to attempt to obtain a functional reference to the specified engine, |
| 76 | thus initialising it if needed. The engine will then be set as the default |
| 77 | for all available algorithms. |
| 78 | |
Dr. Stephen Henson | aba3e65 | 1999-11-10 02:52:17 +0000 | [diff] [blame] | 79 | =item B<numbits> |
| 80 | |
| 81 | the size of the private key to generate in bits. This must be the last option |
Adrian Vollmer | 013bc44 | 2017-02-27 15:51:21 +0100 | [diff] [blame^] | 82 | specified. The default is 2048. |
Dr. Stephen Henson | aba3e65 | 1999-11-10 02:52:17 +0000 | [diff] [blame] | 83 | |
| 84 | =back |
| 85 | |
| 86 | =head1 NOTES |
| 87 | |
| 88 | RSA private key generation essentially involves the generation of two prime |
| 89 | numbers. When generating a private key various symbols will be output to |
Dr. Stephen Henson | a3fe382 | 2000-02-16 23:16:01 +0000 | [diff] [blame] | 90 | indicate the progress of the generation. A B<.> represents each number which |
| 91 | has passed an initial sieve test, B<+> means a number has passed a single |
| 92 | round of the Miller-Rabin primality test. A newline means that the number has |
| 93 | passed all the prime tests (the actual number depends on the key size). |
Dr. Stephen Henson | aba3e65 | 1999-11-10 02:52:17 +0000 | [diff] [blame] | 94 | |
| 95 | Because key generation is a random process the time taken to generate a key |
| 96 | may vary somewhat. |
| 97 | |
| 98 | =head1 BUGS |
| 99 | |
| 100 | A quirk of the prime generation algorithm is that it cannot generate small |
| 101 | primes. Therefore the number of bits should not be less that 64. For typical |
| 102 | private keys this will not matter because for security reasons they will |
| 103 | be much larger (typically 1024 bits). |
| 104 | |
| 105 | =head1 SEE ALSO |
| 106 | |
Rich Salz | 9b86974 | 2015-08-17 15:21:33 -0400 | [diff] [blame] | 107 | L<gendsa(1)> |
Ulf Möller | 369782a | 2000-03-18 22:00:26 +0000 | [diff] [blame] | 108 | |
Rich Salz | e2f9261 | 2016-05-18 11:44:05 -0400 | [diff] [blame] | 109 | =head1 COPYRIGHT |
| 110 | |
Pauli | d42d0a4 | 2017-02-01 10:10:13 +1000 | [diff] [blame] | 111 | Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved. |
Rich Salz | e2f9261 | 2016-05-18 11:44:05 -0400 | [diff] [blame] | 112 | |
| 113 | Licensed under the OpenSSL license (the "License"). You may not use |
| 114 | this file except in compliance with the License. You can obtain a copy |
| 115 | in the file LICENSE in the source distribution or at |
| 116 | L<https://www.openssl.org/source/license.html>. |
| 117 | |
| 118 | =cut |