Initial import from FreeBSD RELENG_4:
[dragonfly.git] / secure / lib / libcrypto / man / crypto.3
1 .\" Automatically generated by Pod::Man version 1.15
2 .\" Wed Feb 19 16:43:02 2003
3 .\"
4 .\" Standard preamble:
5 .\" ======================================================================
6 .de Sh \" Subsection heading
7 .br
8 .if t .Sp
9 .ne 5
10 .PP
11 \fB\\$1\fR
12 .PP
13 ..
14 .de Sp \" Vertical space (when we can't use .PP)
15 .if t .sp .5v
16 .if n .sp
17 ..
18 .de Ip \" List item
19 .br
20 .ie \\n(.$>=3 .ne \\$3
21 .el .ne 3
22 .IP "\\$1" \\$2
23 ..
24 .de Vb \" Begin verbatim text
25 .ft CW
26 .nf
27 .ne \\$1
28 ..
29 .de Ve \" End verbatim text
30 .ft R
31
32 .fi
33 ..
34 .\" Set up some character translations and predefined strings.  \*(-- will
35 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
36 .\" double quote, and \*(R" will give a right double quote.  | will give a
37 .\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used
38 .\" to do unbreakable dashes and therefore won't be available.  \*(C` and
39 .\" \*(C' expand to `' in nroff, nothing in troff, for use with C<>
40 .tr \(*W-|\(bv\*(Tr
41 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
42 .ie n \{\
43 .    ds -- \(*W-
44 .    ds PI pi
45 .    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
46 .    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
47 .    ds L" ""
48 .    ds R" ""
49 .    ds C` ""
50 .    ds C' ""
51 'br\}
52 .el\{\
53 .    ds -- \|\(em\|
54 .    ds PI \(*p
55 .    ds L" ``
56 .    ds R" ''
57 'br\}
58 .\"
59 .\" If the F register is turned on, we'll generate index entries on stderr
60 .\" for titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and
61 .\" index entries marked with X<> in POD.  Of course, you'll have to process
62 .\" the output yourself in some meaningful fashion.
63 .if \nF \{\
64 .    de IX
65 .    tm Index:\\$1\t\\n%\t"\\$2"
66 ..
67 .    nr % 0
68 .    rr F
69 .\}
70 .\"
71 .\" For nroff, turn off justification.  Always turn off hyphenation; it
72 .\" makes way too many mistakes in technical documents.
73 .hy 0
74 .if n .na
75 .\"
76 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
77 .\" Fear.  Run.  Save yourself.  No user-serviceable parts.
78 .bd B 3
79 .    \" fudge factors for nroff and troff
80 .if n \{\
81 .    ds #H 0
82 .    ds #V .8m
83 .    ds #F .3m
84 .    ds #[ \f1
85 .    ds #] \fP
86 .\}
87 .if t \{\
88 .    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
89 .    ds #V .6m
90 .    ds #F 0
91 .    ds #[ \&
92 .    ds #] \&
93 .\}
94 .    \" simple accents for nroff and troff
95 .if n \{\
96 .    ds ' \&
97 .    ds ` \&
98 .    ds ^ \&
99 .    ds , \&
100 .    ds ~ ~
101 .    ds /
102 .\}
103 .if t \{\
104 .    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
105 .    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
106 .    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
107 .    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
108 .    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
109 .    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
110 .\}
111 .    \" troff and (daisy-wheel) nroff accents
112 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
113 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
114 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
115 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
116 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
117 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
118 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
119 .ds ae a\h'-(\w'a'u*4/10)'e
120 .ds Ae A\h'-(\w'A'u*4/10)'E
121 .    \" corrections for vroff
122 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
123 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
124 .    \" for low resolution devices (crt and lpr)
125 .if \n(.H>23 .if \n(.V>19 \
126 \{\
127 .    ds : e
128 .    ds 8 ss
129 .    ds o a
130 .    ds d- d\h'-1'\(ga
131 .    ds D- D\h'-1'\(hy
132 .    ds th \o'bp'
133 .    ds Th \o'LP'
134 .    ds ae ae
135 .    ds Ae AE
136 .\}
137 .rm #[ #] #H #V #F C
138 .\" ======================================================================
139 .\"
140 .IX Title "crypto 3"
141 .TH crypto 3 "0.9.7a" "2003-02-19" "OpenSSL"
142 .UC
143 .SH "NAME"
144 crypto \- OpenSSL cryptographic library
145 .SH "SYNOPSIS"
146 .IX Header "SYNOPSIS"
147 .SH "DESCRIPTION"
148 .IX Header "DESCRIPTION"
149 The OpenSSL \fBcrypto\fR library implements a wide range of cryptographic
150 algorithms used in various Internet standards. The services provided
151 by this library are used by the OpenSSL implementations of \s-1SSL\s0, \s-1TLS\s0
152 and S/MIME, and they have also been used to implement \s-1SSH\s0, OpenPGP, and
153 other cryptographic standards.
154 .SH "OVERVIEW"
155 .IX Header "OVERVIEW"
156 \&\fBlibcrypto\fR consists of a number of sub-libraries that implement the
157 individual algorithms.
158 .PP
159 The functionality includes symmetric encryption, public key
160 cryptography and key agreement, certificate handling, cryptographic
161 hash functions and a cryptographic pseudo-random number generator.
162 .Ip "\s-1SYMMETRIC\s0 \s-1CIPHERS\s0" 4
163 .IX Item "SYMMETRIC CIPHERS"
164 blowfish(3), cast(3), des(3),
165 idea(3), rc2(3), rc4(3), rc5(3) 
166 .Ip "\s-1PUBLIC\s0 \s-1KEY\s0 \s-1CRYPTOGRAPHY\s0 \s-1AND\s0 \s-1KEY\s0 \s-1AGREEMENT\s0" 4
167 .IX Item "PUBLIC KEY CRYPTOGRAPHY AND KEY AGREEMENT"
168 dsa(3), dh(3), rsa(3)
169 .Ip "\s-1CERTIFICATES\s0" 4
170 .IX Item "CERTIFICATES"
171 x509(3), x509v3(3)
172 .Ip "\s-1AUTHENTICATION\s0 \s-1CODES\s0, \s-1HASH\s0 \s-1FUNCTIONS\s0" 4
173 .IX Item "AUTHENTICATION CODES, HASH FUNCTIONS"
174 hmac(3), md2(3), md4(3),
175 md5(3), mdc2(3), ripemd(3),
176 sha(3)
177 .Ip "\s-1AUXILIARY\s0 \s-1FUNCTIONS\s0" 4
178 .IX Item "AUXILIARY FUNCTIONS"
179 err(3), threads(3), rand(3),
180 OPENSSL_VERSION_NUMBER(3)
181 .Ip "\s-1INPUT/OUTPUT\s0, \s-1DATA\s0 \s-1ENCODING\s0" 4
182 .IX Item "INPUT/OUTPUT, DATA ENCODING"
183 asn1(3), bio(3), evp(3), pem(3),
184 pkcs7(3), pkcs12(3) 
185 .Ip "\s-1INTERNAL\s0 \s-1FUNCTIONS\s0" 4
186 .IX Item "INTERNAL FUNCTIONS"
187 bn(3), buffer(3), lhash(3),
188 objects(3), stack(3),
189 txt_db(3) 
190 .SH "NOTES"
191 .IX Header "NOTES"
192 Some of the newer functions follow a naming convention using the numbers
193 \&\fB0\fR and \fB1\fR. For example the functions:
194 .PP
195 .Vb 2
196 \& int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev);
197 \& int X509_add1_trust_object(X509 *x, ASN1_OBJECT *obj);
198 .Ve
199 The \fB0\fR version uses the supplied structure pointer directly
200 in the parent and it will be freed up when the parent is freed.
201 In the above example \fBcrl\fR would be freed but \fBrev\fR would not.
202 .PP
203 The \fB1\fR function uses a copy of the supplied structure pointer
204 (or in some cases increases its link count) in the parent and
205 so both (\fBx\fR and \fBobj\fR above) should be freed up.
206 .SH "SEE ALSO"
207 .IX Header "SEE ALSO"
208 openssl(1), ssl(3)