1 .\" $NetBSD: libcrypto.pl,v 1.3 2007/11/27 22:16:03 christos Exp $
3 .\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
6 .\" ========================================================================
7 .de Sh \" Subsection heading
15 .de Sp \" Vertical space (when we can't use .PP)
19 .de Vb \" Begin verbatim text
24 .de Ve \" End verbatim text
28 .\" Set up some character translations and predefined strings. \*(-- will
29 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
30 .\" double quote, and \*(R" will give a right double quote. \*(C+ will
31 .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
32 .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
33 .\" nothing in troff, for use with C<>.
35 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
39 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
40 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
53 .\" Escape single quotes in literal strings from groff's Unicode transform.
57 .\" If the F register is turned on, we'll generate index entries on stderr for
58 .\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
59 .\" entries marked with X<> in POD. Of course, you'll have to process the
60 .\" output yourself in some meaningful fashion.
63 . tm Index:\\$1\t\\n%\t"\\$2"
73 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
74 .\" Fear. Run. Save yourself. No user-serviceable parts.
75 . \" fudge factors for nroff and troff
84 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
90 . \" simple accents for nroff and troff
100 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
101 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
102 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
103 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
104 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
105 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
107 . \" troff and (daisy-wheel) nroff accents
108 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
109 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
110 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
111 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
112 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
113 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
114 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
115 .ds ae a\h'-(\w'a'u*4/10)'e
116 .ds Ae A\h'-(\w'A'u*4/10)'E
117 . \" corrections for vroff
118 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
119 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
120 . \" for low resolution devices (crt and lpr)
121 .if \n(.H>23 .if \n(.V>19 \
134 .\" ========================================================================
136 .IX Title "GENPKEY 1"
137 .TH GENPKEY 1 "2009-04-15" "1.1.0-dev" "OpenSSL"
138 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
139 .\" way too many mistakes in technical documents.
143 genpkey \- generate a private key
147 .IX Header "SYNOPSIS"
148 \&\fBopenssl\fR \fBgenpkey\fR
149 [\fB\-out filename\fR]
150 [\fB\-outform PEM|DER\fR]
154 [\fB\-paramfile file\fR]
155 [\fB\-algorithm alg\fR]
156 [\fB\-pkeyopt opt:value\fR]
160 .IX Header "DESCRIPTION"
161 The \fBgenpkey\fR command generates a private key.
164 .IP "\fB\-out filename\fR" 4
165 .IX Item "-out filename"
166 the output filename. If this argument is not specified then standard output is
168 .IP "\fB\-outform DER|PEM\fR" 4
169 .IX Item "-outform DER|PEM"
170 This specifies the output format \s-1DER\s0 or \s-1PEM\s0.
171 .IP "\fB\-pass arg\fR" 4
173 the output file password source. For more information about the format of \fBarg\fR
174 see the \fB\s-1PASS\s0 \s-1PHRASE\s0 \s-1ARGUMENTS\s0\fR section in \fIopenssl\fR\|(1).
175 .IP "\fB\-cipher\fR" 4
177 This option encrypts the private key with the supplied cipher. Any algorithm
178 name accepted by \fIEVP_get_cipherbyname()\fR is acceptable such as \fBdes3\fR.
179 .IP "\fB\-engine id\fR" 4
180 .IX Item "-engine id"
181 specifying an engine (by its unique \fBid\fR string) will cause \fBgenpkey\fR
182 to attempt to obtain a functional reference to the specified engine,
183 thus initialising it if needed. The engine will then be set as the default
184 for all available algorithms. If used this option should precede all other
186 .IP "\fB\-algorithm alg\fR" 4
187 .IX Item "-algorithm alg"
188 public key algorithm to use such as \s-1RSA\s0, \s-1DSA\s0 or \s-1DH\s0. If used this option must
189 precede any \fB\-pkeyopt\fR options. The options \fB\-paramfile\fR and \fB\-algorithm\fR
190 are mutually exclusive.
191 .IP "\fB\-pkeyopt opt:value\fR" 4
192 .IX Item "-pkeyopt opt:value"
193 set the public key algorithm option \fBopt\fR to \fBvalue\fR. The precise set of
194 options supported depends on the public key algorithm used and its
195 implementation. See \fB\s-1KEY\s0 \s-1GENERATION\s0 \s-1OPTIONS\s0\fR below for more details.
196 .IP "\fB\-genparam\fR" 4
198 generate a set of parameters instead of a private key. If used this option must
199 precede and \fB\-algorithm\fR, \fB\-paramfile\fR or \fB\-pkeyopt\fR options.
200 .IP "\fB\-paramfile filename\fR" 4
201 .IX Item "-paramfile filename"
202 Some public key algorithms generate a private key based on a set of parameters.
203 They can be supplied using this option. If this option is used the public key
204 algorithm used is determined by the parameters. If used this option must
205 precede and \fB\-pkeyopt\fR options. The options \fB\-paramfile\fR and \fB\-algorithm\fR
206 are mutually exclusive.
209 Print an (unencrypted) text representation of private and public keys and
210 parameters along with the \s-1PEM\s0 or \s-1DER\s0 structure.
211 .SH "KEY GENERATION OPTIONS"
212 .IX Header "KEY GENERATION OPTIONS"
213 The options supported by each algorith and indeed each implementation of an
214 algorithm can vary. The options for the OpenSSL implementations are detailed
216 .SH "RSA KEY GENERATION OPTIONS"
217 .IX Header "RSA KEY GENERATION OPTIONS"
218 .IP "\fBrsa_keygen_bits:numbits\fR" 4
219 .IX Item "rsa_keygen_bits:numbits"
220 The number of bits in the generated key. If not specified 1024 is used.
221 .IP "\fBrsa_keygen_pubexp:value\fR" 4
222 .IX Item "rsa_keygen_pubexp:value"
223 The \s-1RSA\s0 public exponent value. This can be a large decimal or
224 hexadecimal value if preceded by \fB0x\fR. Default value is 65537.
225 .SH "DSA PARAMETER GENERATION OPTIONS"
226 .IX Header "DSA PARAMETER GENERATION OPTIONS"
227 .IP "\fBdsa_paramgen_bits:numbits\fR" 4
228 .IX Item "dsa_paramgen_bits:numbits"
229 The number of bits in the generated parameters. If not specified 1024 is used.
230 .SH "DH PARAMETER GENERATION OPTIONS"
231 .IX Header "DH PARAMETER GENERATION OPTIONS"
232 .IP "\fBdh_paramgen_prime_len:numbits\fR" 4
233 .IX Item "dh_paramgen_prime_len:numbits"
234 The number of bits in the prime parameter \fBp\fR.
235 .IP "\fBdh_paramgen_generator:value\fR" 4
236 .IX Item "dh_paramgen_generator:value"
237 The value to use for the generator \fBg\fR.
238 .SH "EC PARAMETER GENERATION OPTIONS"
239 .IX Header "EC PARAMETER GENERATION OPTIONS"
240 .IP "\fBec_paramgen_curve:curve\fR" 4
241 .IX Item "ec_paramgen_curve:curve"
242 the \s-1EC\s0 curve to use.
243 .SH "GOST2001 KEY GENERATION AND PARAMETER OPTIONS"
244 .IX Header "GOST2001 KEY GENERATION AND PARAMETER OPTIONS"
245 Gost 2001 support is not enabled by default. To enable this algorithm,
246 one should load the ccgost engine in the OpenSSL configuration file.
247 See \s-1README\s0.gost file in the engines/ccgost directiry of the source
248 distribution for more details.
250 Use of a parameter file for the \s-1GOST\s0 R 34.10 algorithm is optional.
251 Parameters can be specified during key generation directly as well as
252 during generation of parameter file.
253 .IP "\fBparamset:name\fR" 4
254 .IX Item "paramset:name"
255 Specifies \s-1GOST\s0 R 34.10\-2001 parameter set according to \s-1RFC\s0 4357.
256 Parameter set can be specified using abbreviated name, object short name or
257 numeric \s-1OID\s0. Following parameter sets are supported:
260 \& paramset OID Usage
261 \& A 1.2.643.2.2.35.1 Signature
262 \& B 1.2.643.2.2.35.2 Signature
263 \& C 1.2.643.2.2.35.3 Signature
264 \& XA 1.2.643.2.2.36.0 Key exchange
265 \& XB 1.2.643.2.2.36.1 Key exchange
266 \& test 1.2.643.2.2.35.0 Test purposes
270 The use of the genpkey program is encouraged over the algorithm specific
271 utilities because additional algorithm options and \s-1ENGINE\s0 provided algorithms
274 .IX Header "EXAMPLES"
275 Generate an \s-1RSA\s0 private key using default parameters:
278 \& openssl genpkey \-algorithm RSA \-out key.pem
281 Encrypt output private key using 128 bit \s-1AES\s0 and the passphrase \*(L"hello\*(R":
284 \& openssl genpkey \-algorithm RSA \-out key.pem \-aes\-128\-cbc \-pass pass:hello
287 Generate a 2048 bit \s-1RSA\s0 key using 3 as the public exponent:
290 \& openssl genpkey \-algorithm RSA \-out key.pem \-pkeyopt rsa_keygen_bits:2048 \e
291 \& \-pkeyopt rsa_keygen_pubexp:3
294 Generate 1024 bit \s-1DSA\s0 parameters:
297 \& openssl genpkey \-genparam \-algorithm DSA \-out dsap.pem \e
298 \& \-pkeyopt dsa_paramgen_bits:1024
301 Generate \s-1DSA\s0 key from parameters:
304 \& openssl genpkey \-paramfile dsap.pem \-out dsakey.pem
307 Generate 1024 bit \s-1DH\s0 parameters:
310 \& openssl genpkey \-genparam \-algorithm DH \-out dhp.pem \e
311 \& \-pkeyopt dh_paramgen_prime_len:1024
314 Generate \s-1DH\s0 key from parameters:
317 \& openssl genpkey \-paramfile dhp.pem \-out dhkey.pem
320 .IX Header "POD ERRORS"
321 Hey! \fBThe above document had some coding errors, which are explained below:\fR
322 .IP "Around line 117:" 4
323 .IX Item "Around line 117:"
324 You forgot a '=back' before '=head1'