~ubuntu-branches/ubuntu/precise/openssl098/precise

« back to all changes in this revision

Viewing changes to doc/apps/rsa.pod

  • Committer: Bazaar Package Importer
  • Author(s): Kurt Roeckx
  • Date: 2011-03-23 19:50:31 UTC
  • Revision ID: james.westby@ubuntu.com-20110323195031-6h9crj4bymhhr8b8
Tags: upstream-0.9.8o
ImportĀ upstreamĀ versionĀ 0.9.8o

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
=pod
 
3
 
 
4
=head1 NAME
 
5
 
 
6
rsa - RSA key processing tool
 
7
 
 
8
=head1 SYNOPSIS
 
9
 
 
10
B<openssl> B<rsa>
 
11
[B<-inform PEM|NET|DER>]
 
12
[B<-outform PEM|NET|DER>]
 
13
[B<-in filename>]
 
14
[B<-passin arg>]
 
15
[B<-out filename>]
 
16
[B<-passout arg>]
 
17
[B<-sgckey>]
 
18
[B<-des>]
 
19
[B<-des3>]
 
20
[B<-idea>]
 
21
[B<-text>]
 
22
[B<-noout>]
 
23
[B<-modulus>]
 
24
[B<-check>]
 
25
[B<-pubin>]
 
26
[B<-pubout>]
 
27
[B<-engine id>]
 
28
 
 
29
=head1 DESCRIPTION
 
30
 
 
31
The B<rsa> command processes RSA keys. They can be converted between various
 
32
forms and their components printed out. B<Note> this command uses the
 
33
traditional SSLeay compatible format for private key encryption: newer
 
34
applications should use the more secure PKCS#8 format using the B<pkcs8>
 
35
utility.
 
36
 
 
37
=head1 COMMAND OPTIONS
 
38
 
 
39
=over 4
 
40
 
 
41
=item B<-inform DER|NET|PEM>
 
42
 
 
43
This specifies the input format. The B<DER> option uses an ASN1 DER encoded
 
44
form compatible with the PKCS#1 RSAPrivateKey or SubjectPublicKeyInfo format.
 
45
The B<PEM> form is the default format: it consists of the B<DER> format base64
 
46
encoded with additional header and footer lines. On input PKCS#8 format private
 
47
keys are also accepted. The B<NET> form is a format is described in the B<NOTES>
 
48
section.
 
49
 
 
50
=item B<-outform DER|NET|PEM>
 
51
 
 
52
This specifies the output format, the options have the same meaning as the 
 
53
B<-inform> option.
 
54
 
 
55
=item B<-in filename>
 
56
 
 
57
This specifies the input filename to read a key from or standard input if this
 
58
option is not specified. If the key is encrypted a pass phrase will be
 
59
prompted for.
 
60
 
 
61
=item B<-passin arg>
 
62
 
 
63
the input file password source. For more information about the format of B<arg>
 
64
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)|openssl(1)>.
 
65
 
 
66
=item B<-out filename>
 
67
 
 
68
This specifies the output filename to write a key to or standard output if this
 
69
option is not specified. If any encryption options are set then a pass phrase
 
70
will be prompted for. The output filename should B<not> be the same as the input
 
71
filename.
 
72
 
 
73
=item B<-passout password>
 
74
 
 
75
the output file password source. For more information about the format of B<arg>
 
76
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)|openssl(1)>.
 
77
 
 
78
=item B<-sgckey>
 
79
 
 
80
use the modified NET algorithm used with some versions of Microsoft IIS and SGC
 
81
keys.
 
82
 
 
83
=item B<-des|-des3|-idea>
 
84
 
 
85
These options encrypt the private key with the DES, triple DES, or the 
 
86
IDEA ciphers respectively before outputting it. A pass phrase is prompted for.
 
87
If none of these options is specified the key is written in plain text. This
 
88
means that using the B<rsa> utility to read in an encrypted key with no
 
89
encryption option can be used to remove the pass phrase from a key, or by
 
90
setting the encryption options it can be use to add or change the pass phrase.
 
91
These options can only be used with PEM format output files.
 
92
 
 
93
=item B<-text>
 
94
 
 
95
prints out the various public or private key components in
 
96
plain text in addition to the encoded version. 
 
97
 
 
98
=item B<-noout>
 
99
 
 
100
this option prevents output of the encoded version of the key.
 
101
 
 
102
=item B<-modulus>
 
103
 
 
104
this option prints out the value of the modulus of the key.
 
105
 
 
106
=item B<-check>
 
107
 
 
108
this option checks the consistency of an RSA private key.
 
109
 
 
110
=item B<-pubin>
 
111
 
 
112
by default a private key is read from the input file: with this
 
113
option a public key is read instead.
 
114
 
 
115
=item B<-pubout>
 
116
 
 
117
by default a private key is output: with this option a public
 
118
key will be output instead. This option is automatically set if
 
119
the input is a public key.
 
120
 
 
121
=item B<-engine id>
 
122
 
 
123
specifying an engine (by it's unique B<id> string) will cause B<req>
 
124
to attempt to obtain a functional reference to the specified engine,
 
125
thus initialising it if needed. The engine will then be set as the default
 
126
for all available algorithms.
 
127
 
 
128
=back
 
129
 
 
130
=head1 NOTES
 
131
 
 
132
The PEM private key format uses the header and footer lines:
 
133
 
 
134
 -----BEGIN RSA PRIVATE KEY-----
 
135
 -----END RSA PRIVATE KEY-----
 
136
 
 
137
The PEM public key format uses the header and footer lines:
 
138
 
 
139
 -----BEGIN PUBLIC KEY-----
 
140
 -----END PUBLIC KEY-----
 
141
 
 
142
The B<NET> form is a format compatible with older Netscape servers
 
143
and Microsoft IIS .key files, this uses unsalted RC4 for its encryption.
 
144
It is not very secure and so should only be used when necessary.
 
145
 
 
146
Some newer version of IIS have additional data in the exported .key
 
147
files. To use these with the utility, view the file with a binary editor
 
148
and look for the string "private-key", then trace back to the byte
 
149
sequence 0x30, 0x82 (this is an ASN1 SEQUENCE). Copy all the data
 
150
from this point onwards to another file and use that as the input
 
151
to the B<rsa> utility with the B<-inform NET> option. If you get
 
152
an error after entering the password try the B<-sgckey> option.
 
153
 
 
154
=head1 EXAMPLES
 
155
 
 
156
To remove the pass phrase on an RSA private key:
 
157
 
 
158
 openssl rsa -in key.pem -out keyout.pem
 
159
 
 
160
To encrypt a private key using triple DES:
 
161
 
 
162
 openssl rsa -in key.pem -des3 -out keyout.pem
 
163
 
 
164
To convert a private key from PEM to DER format: 
 
165
 
 
166
 openssl rsa -in key.pem -outform DER -out keyout.der
 
167
 
 
168
To print out the components of a private key to standard output:
 
169
 
 
170
 openssl rsa -in key.pem -text -noout
 
171
 
 
172
To just output the public part of a private key:
 
173
 
 
174
 openssl rsa -in key.pem -pubout -out pubkey.pem
 
175
 
 
176
=head1 BUGS
 
177
 
 
178
The command line password arguments don't currently work with
 
179
B<NET> format.
 
180
 
 
181
There should be an option that automatically handles .key files,
 
182
without having to manually edit them.
 
183
 
 
184
=head1 SEE ALSO
 
185
 
 
186
L<pkcs8(1)|pkcs8(1)>, L<dsa(1)|dsa(1)>, L<genrsa(1)|genrsa(1)>,
 
187
L<gendsa(1)|gendsa(1)> 
 
188
 
 
189
=cut