Add PKCS#12 documentation and new option in x509 to add certificate extensions.
[openssl.git] / doc / openssl.pod
1
2 =pod
3
4 =head1 NAME
5
6 openssl - OpenSSL command line tool
7
8 =head1 SYNOPSIS
9
10 B<openssl>
11 I<command>
12 [ I<command_opts> ]
13 [ I<command_args> ]
14
15 =head1 DESCRIPTION
16
17 OpenSSL is a cryptography toolkit implementing the Secure Sockets Layer (SSL
18 v2/v3) and Transport Layer Security (TLS v1) network protocols and related
19 cryptography standards required by them.
20
21 The B<openssl> program is a command line tool for using the various
22 cryptography functions of OpenSSL's B<crypto> library from the shell. 
23 It can be used for 
24
25  o  Creation of RSA, DH and DSA key parameters
26  o  Creation of X.509 certificates, CSRs and CRLs 
27  o  Calculation of Message Digests
28  o  Encryption and Decryption with Ciphers
29  o  SSL/TLS Client and Server Tests
30
31 =head1 COMMAND SUMMARY
32
33 The B<openssl> program provides a rich variety of commands (I<command> in the
34 SYNOPSIS above), each of which often has a wealth of options and arguments
35 (I<command_opts> and I<command_args> in the SYNOPSIS).
36
37 =head2 STANDARD COMMANDS
38
39 =over 10
40
41 =item B<asn1parse> 
42
43 Parse an ASN.1 sequence.
44
45 =item B<ca>
46
47 Certificate Authority (CA) Management.  
48
49 =item B<ciphers>
50
51 Cipher Suite Description Determination.
52
53 =item B<crl>
54
55 Certificate Revokation List (CRL) Management.
56
57 =item B<crl2pkcs7>      
58
59 CRL2 to PKCS#7 Conversion.
60
61 =item B<dgst>
62
63 Message Digest Calculation.
64
65 =item B<dh>
66
67 Diffie-Hellman Data Management.
68
69 =item B<dsa>
70
71 DSA Data Management.
72
73 =item B<dsaparam>
74
75 DSA Parameter Generation.
76
77 =item B<enc>            
78
79 Encoding with Ciphers.
80
81 =item B<errstr>
82
83 Error Number to Error String Conversion.
84
85 =item B<gendh>
86
87 Generation of Diffie-Hellman Parameters.
88
89 =item B<gendsa>
90
91 Generation of DSA Parameters.
92
93 =item B<genrsa>
94
95 Generation of RSA Parameters.
96
97 =item B<pkcs7>
98
99 PKCS#7 Data Management.
100
101 =item B<req>
102
103 X.509 Certificate Signing Request (CSR) Management.
104
105 =item B<rsa>
106
107 RSA Data Management.
108
109 =item B<s_client>
110
111 This implements a generic SSL/TLS client which can establish a transparent
112 connection to a remote server speaking SSL/TLS. It's intended for testing
113 purposes only and provides only rudimentary interface functionality but
114 internally uses mostly all functionality of the OpenSSL B<ssl> library.
115
116 =item B<s_server>
117
118 This implements a generic SSL/TLS server which accepts connections from remote
119 clients speaking SSL/TLS. It's intended for testing purposes only and provides
120 only rudimentary interface functionality but internally uses mostly all
121 functionality of the OpenSSL B<ssl> library.  It provides both an own command
122 line oriented protocol for testing SSL functions and a simple HTTP response
123 facility to emulate an SSL/TLS-aware webserver.
124
125 =item B<s_time>        
126
127 SSL Connection Timer.
128
129 =item B<sess_id>
130
131 SSL Session Data Management.
132
133 =item B<speed>
134
135 Algorithm Speed Measurement.
136
137 =item B<verify>
138
139 X.509 Certificate Verification.
140
141 =item B<version>
142
143 OpenSSL Version Information.
144
145 =item B<x509>           
146
147 X.509 Certificate Data Management.
148
149 =back
150
151 =head2 MESSAGE DIGEST COMMANDS
152
153 =over 10
154
155 =item B<md2>
156
157 MD2 Digest
158
159 =item B<md5>
160
161 MD5 Digest
162
163 =item B<mdc2>
164
165 MDC2 Digest
166
167 =item B<rmd160>
168
169 RMD-160 Digest
170
171 =item B<sha>            
172
173 SHA Digest
174
175 =item B<sha1>           
176
177 SHA-1 Digest
178
179 =back
180
181 =head2 ENCODING AND CIPHER COMMANDS
182
183 =over 10
184
185 =item B<base64>
186
187 Base64 Encoding
188
189 =item B<bf bf-cbc bf-cfb bf-ecb bf-ofb>
190
191 Blowfish Cipher
192
193 =item B<cast cast-cbc>
194
195 CAST Cipher
196
197 =item B<cast5-cbc cast5-cfb cast5-ecb cast5-ofb>
198
199 CAST5 Cipher
200
201 =item B<des des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ofb>
202
203 DES Cipher
204
205 =item B<des3 desx des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb>
206
207 Triple-DES Cipher
208
209 =item B<idea idea-cbc idea-cfb idea-ecb idea-ofb>
210
211 IDEA Cipher
212
213 =item B<rc2 rc2-cbc rc2-cfb rc2-ecb rc2-ofb>
214
215 RC2 Cipher
216
217 =item B<rc4>
218
219 RC4 Cipher
220
221 =item B<rc5 rc5-cbc rc5-cfb rc5-ecb rc5-ofb>
222
223 RC5 Cipher
224
225 =back
226
227 =head1 DETAILED COMMAND DESCRIPTION
228
229 The following is a detailed description of every B<openssl> I<command>.
230
231 =over 4
232
233 =item B<openssl> B<s_client>
234 [B<-connect> I<host>B<:>I<port>]
235 [B<-verify> I<arg>]
236 [B<-cert> I<arg>]
237 [B<-key> I<arg>]
238 [B<-CApath> I<arg>]
239 [B<-CAfile> I<arg>]
240 [B<-reconnect>]
241 [B<-pause>]
242 [B<-debug>]
243 [B<-nbio_test>]
244 [B<-state>]
245 [B<-nbio>]
246 [B<-quiet>]
247 [B<-ssl2>]
248 [B<-ssl3>]
249 [B<-tls1>]
250 [B<-no_ssl2>]
251 [B<-no_ssl3>]
252 [B<-no_tls1>]
253 [B<-bugs>]
254 [B<-cipher>]
255
256 The B<s_client> command implements a generic SSL/TLS client which can
257 establish a transparent connection to a remote I<host> and I<port> speaking
258 SSL/TLS. 
259
260 =item B<openssl> B<s_server>
261 [B<-accept> I<port>]
262 [B<-verify> I<arg>]
263 [B<-Verify> I<arg>]
264 [B<-cert> I<arg>]
265 [B<-key> I<arg>]
266 [B<-dcert> I<arg>]
267 [B<-dkey> I<arg>]
268 [B<-nbio>]
269 [B<-nbio_test>]
270 [B<-debug>]
271 [B<-state>]
272 [B<-CApath> I<arg>]
273 [B<-CAfile> I<arg>]
274 [B<-nocert>]
275 [B<-cipher> I<arg>]
276 [B<-quiet>]
277 [B<-no_tmp_rsa>]
278 [B<-ssl2>]
279 [B<-ssl3>]
280 [B<-tls1>]
281 [B<-no_ssl2>]
282 [B<-no_ssl3>]
283 [B<-no_tls1>]
284 [B<-bugs>]
285 [B<-www>]
286 [B<-WWW>]
287
288 The B<s_server> command implements a generic SSL/TLS server which accepts
289 connections from remote clients on I<port> speaking SSL/TLS.
290
291 =back
292
293 ...
294
295 =head1 SEE ALSO
296
297 crypto(3), ssl(3)
298
299 =head1 HISTORY
300
301 The openssl(3) document appeared in OpenSSL 0.9.2
302
303 =cut
304