]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/man1/openssl-pkey.pod.in
Apps: change provider_path option to provider-path.
[thirdparty/openssl.git] / doc / man1 / openssl-pkey.pod.in
CommitLineData
49131a7d
DSH
1=pod
2
018aaeb4
RS
3=begin comment
4{- join("\n", @autowarntext) -}
5
6=end comment
7
49131a7d
DSH
8=head1 NAME
9
4b537191 10openssl-pkey - public or private key processing command
49131a7d
DSH
11
12=head1 SYNOPSIS
13
14B<openssl> B<pkey>
169394d4 15[B<-help>]
6d382c74 16[B<-inform> B<DER>|B<PEM>|B<P12>|B<ENGINE>]
e8769719
RS
17[B<-outform> B<DER>|B<PEM>]
18[B<-in> I<filename>]
19[B<-passin> I<arg>]
20[B<-out> I<filename>]
21[B<-passout> I<arg>]
05dba815 22[B<-traditional>]
8dc57d76 23[B<-I<cipher>>]
49131a7d
DSH
24[B<-text>]
25[B<-text_pub>]
26[B<-noout>]
27[B<-pubin>]
28[B<-pubout>]
2aee35d3 29[B<-check>]
b0004708 30[B<-pubcheck>]
92fee421
P
31[B<-ec_conv_form> I<arg>]
32[B<-ec_param_enc> I<arg>]
018aaeb4 33{- $OpenSSL::safe::opt_engine_synopsis -}
6bd4e3f2 34{- $OpenSSL::safe::opt_provider_synopsis -}
49131a7d 35
9f3c076b 36=for openssl ifdef engine
1738c0ce 37
49131a7d
DSH
38=head1 DESCRIPTION
39
35a810bb
RL
40This command processes public or private keys. They can be
41converted between various forms and their components printed out.
49131a7d 42
3dfda1a6 43=head1 OPTIONS
49131a7d
DSH
44
45=over 4
46
169394d4
MR
47=item B<-help>
48
49Print out a usage message.
50
6d382c74 51=item B<-inform> B<DER>|B<PEM>|B<P12>|B<ENGINE>
49131a7d 52
6d382c74
DDO
53The key input format; the default is B<PEM>.
54The only value with effect is B<ENGINE>; all others have become obsolete.
55See L<openssl(1)/Format Options> for details.
56
57=item B<-outform> B<DER>|B<PEM>
58
59The key output formats; the default is B<PEM>.
777182a0 60See L<openssl(1)/Format Options> for details.
49131a7d 61
e8769719 62=item B<-in> I<filename>
49131a7d
DSH
63
64This specifies the input filename to read a key from or standard input if this
65option is not specified. If the key is encrypted a pass phrase will be
66prompted for.
67
3a4e43de 68=item B<-passin> I<arg>, B<-passout> I<arg>
49131a7d 69
3a4e43de
RS
70The password source for the input and output file.
71For more information about the format of B<arg>
72see L<openssl(1)/Pass Phrase Options>.
49131a7d 73
e8769719 74=item B<-out> I<filename>
49131a7d
DSH
75
76This specifies the output filename to write a key to or standard output if this
77option is not specified. If any encryption options are set then a pass phrase
78will be prompted for. The output filename should B<not> be the same as the input
79filename.
80
05dba815
DSH
81=item B<-traditional>
82
c4de074e 83Normally a private key is written using standard format: this is PKCS#8 form
05dba815
DSH
84with the appropriate encryption algorithm (if any). If the B<-traditional>
85option is specified then the older "traditional" format is used instead.
86
8dc57d76 87=item B<-I<cipher>>
49131a7d
DSH
88
89These options encrypt the private key with the supplied cipher. Any algorithm
90name accepted by EVP_get_cipherbyname() is acceptable such as B<des3>.
91
92=item B<-text>
93
c4de074e 94Prints out the various public or private key components in
1bc74519 95plain text in addition to the encoded version.
49131a7d
DSH
96
97=item B<-text_pub>
98
c4de074e 99Print out only public key components even if a private key is being processed.
49131a7d
DSH
100
101=item B<-noout>
102
c4de074e 103Do not output the encoded version of the key.
49131a7d
DSH
104
105=item B<-pubin>
106
c4de074e 107By default a private key is read from the input file: with this
49131a7d
DSH
108option a public key is read instead.
109
110=item B<-pubout>
111
c4de074e 112By default a private key is output: with this option a public
49131a7d
DSH
113key will be output instead. This option is automatically set if
114the input is a public key.
115
2aee35d3
PY
116=item B<-check>
117
118This option checks the consistency of a key pair for both public and private
119components.
120
b0004708
PY
121=item B<-pubcheck>
122
123This option checks the correctness of either a public key or the public component
124of a key pair.
125
92fee421
P
126=item B<-ec_conv_form> I<arg>
127
128This option only applies to elliptic curve based public and private keys.
129
130This specifies how the points on the elliptic curve are converted
131into octet strings. Possible values are: B<compressed> (the default
132value), B<uncompressed> and B<hybrid>. For more information regarding
133the point conversion forms please read the X9.62 standard.
134B<Note> Due to patent issues the B<compressed> option is disabled
135by default for binary curves and can be enabled by defining
136the preprocessor macro B<OPENSSL_EC_BIN_PT_COMP> at compile time.
137
138=item B<-ec_param_enc> I<arg>
139
140This option only applies to elliptic curve based public and private keys.
141
142This specifies how the elliptic curve parameters are encoded.
143Possible value are: B<named_curve>, i.e. the ec parameters are
144specified by an OID, or B<explicit> where the ec parameters are
145explicitly given (see RFC 3279 for the definition of the
146EC parameters structures). The default value is B<named_curve>.
147B<Note> the B<implicitlyCA> alternative, as specified in RFC 3279,
148is currently not implemented in OpenSSL.
149
018aaeb4
RS
150{- $OpenSSL::safe::opt_engine_item -}
151
6bd4e3f2
P
152{- $OpenSSL::safe::opt_provider_item -}
153
49131a7d
DSH
154=back
155
156=head1 EXAMPLES
157
35eb4588 158To remove the pass phrase on a private key:
49131a7d
DSH
159
160 openssl pkey -in key.pem -out keyout.pem
161
162To encrypt a private key using triple DES:
163
164 openssl pkey -in key.pem -des3 -out keyout.pem
165
1bc74519 166To convert a private key from PEM to DER format:
49131a7d
DSH
167
168 openssl pkey -in key.pem -outform DER -out keyout.der
169
170To print out the components of a private key to standard output:
171
172 openssl pkey -in key.pem -text -noout
173
174To print out the public components of a private key to standard output:
175
176 openssl pkey -in key.pem -text_pub -noout
177
178To just output the public part of a private key:
179
180 openssl pkey -in key.pem -pubout -out pubkey.pem
181
92fee421
P
182To change the EC parameters encoding to B<explicit>:
183
184 openssl pkey -in key.pem -ec_param_enc explicit -out keyout.pem
185
186To change the EC point conversion form to B<compressed>:
187
188 openssl pkey -in key.pem -ec_conv_form compressed -out keyout.pem
189
49131a7d
DSH
190=head1 SEE ALSO
191
b6b66573
DMSP
192L<openssl(1)>,
193L<openssl-genpkey(1)>,
194L<openssl-rsa(1)>,
195L<openssl-pkcs8(1)>,
196L<openssl-dsa(1)>,
197L<openssl-genrsa(1)>,
198L<openssl-gendsa(1)>
49131a7d 199
0f221d9c
P
200=head1 HISTORY
201
202The B<-engine> option was deprecated in OpenSSL 3.0.
203
e2f92610
RS
204=head1 COPYRIGHT
205
33388b44 206Copyright 2006-2020 The OpenSSL Project Authors. All Rights Reserved.
e2f92610 207
449040b4 208Licensed under the Apache License 2.0 (the "License"). You may not use
e2f92610
RS
209this file except in compliance with the License. You can obtain a copy
210in the file LICENSE in the source distribution or at
211L<https://www.openssl.org/source/license.html>.
212
213=cut