Very preliminary POD format documentation for some
[openssl.git] / doc / man / pkcs8.pod
1 =pod
2
3 =head1 NAME
4
5 pkcs8 - PKCS#8 format private key processing tool
6
7 =head1 SYNOPSIS
8
9 B<openssl> B<pkcs8>
10 [B<-topk8>]
11 [B<-inform PEM|DER>]
12 [B<-outform PEM|DER>]
13 [B<-in filename>]
14 [B<-out filename>]
15 [B<-noiter>]
16 [B<-nocrypt>]
17 [B<-nooct>]
18 [B<-v2 alg>]
19
20 =head1 DESCRIPTION
21
22 The B<pkcs8> command processes private keys in PKCS#8 format. It can handle
23 both unencrypted PKCS#8 PrivateKeyInfo format and EncryptedPrivateKeyInfo
24 format with a variety of PKCS#5 (v1.5 and v2.0) and PKCS#12 algorithms.
25
26 =head1 COMMAND OPTIONS
27
28 =over 4
29
30 =item B<-topk8>
31
32 Normally a PKCS#8 private key is expected on input and a "traditional" format
33 private key will be written. With the B<-topk8> option the situation is
34 reversed: it reads a traditional format private key and writes a PKCS#8
35 format key.
36
37 =item B<-inform DER|PEM>
38
39 This specifies the input format. If a PKCS#8 format key is expected on input
40 then either a B<DER> or B<PEM> encoded version of a PKCS#8 key will be
41 expected. Otherwise the B<DER> or B<PEM> format of the "traditional" format
42 private key is used.
43
44 =item B<-outform DER|NET|PEM>
45
46 This specifies the output format, the options have the same meaning as the 
47 B<-inform> option.
48
49 =item B<-in filename>
50
51 This specifies the input filename to read a key from or standard input if this
52 option is not specified. If the key is encrypted a pass phrase will be
53 prompted for.
54
55 =item B<-out filename>
56
57 This specifies the output filename to write a key to or standard output by
58 is not specified. If any encryption options are set then a pass phrase will be
59 prompted for. The output filename should B<not> be the same as the input
60 filename.
61
62 =item B<-des|-des3|-idea>
63
64 These options encrypt the private key with the DES, triple DES, or the 
65 IDEA ciphers respectively before outputting it. A pass phrase is prompted for.
66 If none of these options is specified the key is written in plain text. This
67 means that using the B<rsa> utility to read in an encrypted key with no
68 encryption option can be used to remove the pass phrase from a key, or by
69 setting the encryption options it can be use to add or change the pass phrase.
70 These options can only be used with PEM format output files.
71
72 =item B<-text>
73
74 prints out the various public or private key components in
75 plain text in addition to the encoded version. 
76
77 =item B<-noout>
78
79 this option prevents output of the encoded version of the key.
80
81 =item B<-modulus>
82
83 this option prints out the value of the modulus of the key.
84
85 =item B<-check>
86
87 this option checks the consistency of an RSA private key.
88
89 =item B<-pubin>
90
91 by default a private key is input file with this option a public key is input
92 instead.
93
94 =item B<-pubout>
95
96 by default a private key is output with this option a public
97 key will be output instead. This option is automatically set if the input is
98 a public key.
99
100 =back
101
102 =head1 EXAMPLES
103
104 To remove the pass phrase on an RSA private key:
105
106 C<openssl rsa -in key.pem -out keyout.pem>
107
108 To encrypt a private key using triple DES:
109
110 C<openssl rsa -in key.pem -des3 -out keyout.pem>
111
112 To convert a private key from PEM to DER format: 
113
114 C<openssl rsa -in key.pem -outform DER -out keyout.der>
115
116 To print out the components of a private key to standard output:
117
118 C<openssl rsa -in key.pem -text -noout>
119
120 To just output the public part of a private key:
121
122 C<openssl rsa -in key.pem -pubout -out pubkey.pem>
123
124 =head1 BUGS
125
126 It should be possible to read or produce PKCS#8 format encrypted RSA keys:
127 at present it isn't.
128
129 =head1 SEE ALSO
130
131 L<pkcs8>, dsa(1), genrsa(1), gendsa(1)
132
133 =cut