aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2010-06-04 09:22:18 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2010-06-04 09:22:18 +0000
commit61013caccd61da531ffc593d8962b9df043bfdaf (patch)
treec8c860654d4a1236b6c977fc45109f8c78588844
parentd9b1dd14b1586f9996d3a1f82aa0a1f1e7df84eb (diff)
downloadalpine_aports-61013caccd61da531ffc593d8962b9df043bfdaf.tar.bz2
alpine_aports-61013caccd61da531ffc593d8962b9df043bfdaf.tar.xz
alpine_aports-61013caccd61da531ffc593d8962b9df043bfdaf.zip
main/openssl: build fix
fix manpages patch
-rw-r--r--main/openssl/APKBUILD4
-rw-r--r--main/openssl/openssl-0.9.8o-fix-manpages.patch1887
2 files changed, 1889 insertions, 2 deletions
diff --git a/main/openssl/APKBUILD b/main/openssl/APKBUILD
index 556e675cd8..62cd44998f 100644
--- a/main/openssl/APKBUILD
+++ b/main/openssl/APKBUILD
@@ -11,7 +11,7 @@ license="openssl"
11subpackages="$pkgname-dev $pkgname-doc libcrypto" 11subpackages="$pkgname-dev $pkgname-doc libcrypto"
12 12
13source="http://www.openssl.org/source/${pkgname}-${pkgver}.tar.gz 13source="http://www.openssl.org/source/${pkgname}-${pkgver}.tar.gz
14 http://www.linuxfromscratch.org/patches/downloads/openssl/openssl-0.9.8g-fix_manpages-1.patch 14 openssl-0.9.8o-fix-manpages.patch
15 openssl-bb-basename.patch 15 openssl-bb-basename.patch
16 openssl-0.9.8k-padlock-sha.patch 16 openssl-0.9.8k-padlock-sha.patch
17 " 17 "
@@ -49,6 +49,6 @@ libcrypto() {
49} 49}
50 50
51md5sums="63ddc5116488985e820075e65fbe6aa4 openssl-0.9.8o.tar.gz 51md5sums="63ddc5116488985e820075e65fbe6aa4 openssl-0.9.8o.tar.gz
5204a6a88c2ee4badd4f8649792b73eaf3 openssl-0.9.8g-fix_manpages-1.patch 5219615785a671129bae790478f073da2c openssl-0.9.8o-fix-manpages.patch
53c6a9857a5dbd30cead0404aa7dd73977 openssl-bb-basename.patch 53c6a9857a5dbd30cead0404aa7dd73977 openssl-bb-basename.patch
5486b7f1bf50e1f3ba407ec62001a51a0d openssl-0.9.8k-padlock-sha.patch" 5486b7f1bf50e1f3ba407ec62001a51a0d openssl-0.9.8k-padlock-sha.patch"
diff --git a/main/openssl/openssl-0.9.8o-fix-manpages.patch b/main/openssl/openssl-0.9.8o-fix-manpages.patch
new file mode 100644
index 0000000000..d1796c1194
--- /dev/null
+++ b/main/openssl/openssl-0.9.8o-fix-manpages.patch
@@ -0,0 +1,1887 @@
1Submitted By: Robert Connolly <robert at linuxfromscratch dot org>
2Date: 2005-11-13
3Initial Package Version: 0.9.8a
4Upstream Status: Submitted upstream
5Origin: Anderson Lizardo
6Description: This patch fixes conflicts between man pages
7 installed by OpenSSL and those found on other
8 packages (particulary Shadow, Perl, and
9 Man-pages). It also fixes syntax errors on some
10 POD files that generates slightly broken man
11 pages.
12
13$LastChangedBy: igor $
14$Date: 2005-04-03 16:54:23 -0600 (Sun, 03 Apr 2005) $
15
16diff -Naur openssl-0.9.8a.orig/crypto/rand/md_rand.c openssl-0.9.8a/crypto/rand/md_rand.c
17--- openssl-0.9.8a.orig/crypto/rand/md_rand.c 2005-04-07 22:53:35.000000000 +0000
18+++ openssl-0.9.8a/crypto/rand/md_rand.c 2005-11-14 03:59:59.000000000 +0000
19@@ -196,7 +196,7 @@
20 int do_not_lock;
21
22 /*
23- * (Based on the rand(3) manpage)
24+ * (Based on the openssl_rand(3) manpage)
25 *
26 * The input is chopped up into units of 20 bytes (or less for
27 * the last block). Each of these blocks is run through the hash
28@@ -351,7 +351,7 @@
29 num_ceil = (1 + (num-1)/(MD_DIGEST_LENGTH/2)) * (MD_DIGEST_LENGTH/2);
30
31 /*
32- * (Based on the rand(3) manpage:)
33+ * (Based on the openssl_rand(3) manpage)
34 *
35 * For each group of 10 bytes (or less), we do the following:
36 *
37diff -Naur openssl-0.9.8a.orig/doc/apps/openssl-passwd.pod openssl-0.9.8a/doc/apps/openssl-passwd.pod
38--- openssl-0.9.8a.orig/doc/apps/openssl-passwd.pod 1970-01-01 00:00:00.000000000 +0000
39+++ openssl-0.9.8a/doc/apps/openssl-passwd.pod 2005-11-14 03:59:59.000000000 +0000
40@@ -0,0 +1,82 @@
41+=pod
42+
43+=head1 NAME
44+
45+openssl-passwd - compute password hashes
46+
47+=head1 SYNOPSIS
48+
49+B<openssl passwd>
50+[B<-crypt>]
51+[B<-1>]
52+[B<-apr1>]
53+[B<-salt> I<string>]
54+[B<-in> I<file>]
55+[B<-stdin>]
56+[B<-noverify>]
57+[B<-quiet>]
58+[B<-table>]
59+{I<password>}
60+
61+=head1 DESCRIPTION
62+
63+The B<passwd> command computes the hash of a password typed at
64+run-time or the hash of each password in a list. The password list is
65+taken from the named file for option B<-in file>, from stdin for
66+option B<-stdin>, or from the command line, or from the terminal otherwise.
67+The Unix standard algorithm B<crypt> and the MD5-based BSD password
68+algorithm B<1> and its Apache variant B<apr1> are available.
69+
70+=head1 OPTIONS
71+
72+=over 4
73+
74+=item B<-crypt>
75+
76+Use the B<crypt> algorithm (default).
77+
78+=item B<-1>
79+
80+Use the MD5 based BSD password algorithm B<1>.
81+
82+=item B<-apr1>
83+
84+Use the B<apr1> algorithm (Apache variant of the BSD algorithm).
85+
86+=item B<-salt> I<string>
87+
88+Use the specified salt.
89+When reading a password from the terminal, this implies B<-noverify>.
90+
91+=item B<-in> I<file>
92+
93+Read passwords from I<file>.
94+
95+=item B<-stdin>
96+
97+Read passwords from B<stdin>.
98+
99+=item B<-noverify>
100+
101+Don't verify when reading a password from the terminal.
102+
103+=item B<-quiet>
104+
105+Don't output warnings when passwords given at the command line are truncated.
106+
107+=item B<-table>
108+
109+In the output list, prepend the cleartext password and a TAB character
110+to each password hash.
111+
112+=back
113+
114+=head1 EXAMPLES
115+
116+B<openssl passwd -crypt -salt xx password> prints B<xxj31ZMTZzkVA>.
117+
118+B<openssl passwd -1 -salt xxxxxxxx password> prints B<$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.>.
119+
120+B<openssl passwd -apr1 -salt xxxxxxxx password> prints B<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0>.
121+
122+=cut
123diff -Naur openssl-0.9.8a.orig/doc/apps/openssl.pod openssl-0.9.8a/doc/apps/openssl.pod
124--- openssl-0.9.8a.orig/doc/apps/openssl.pod 2004-01-04 18:59:14.000000000 +0000
125+++ openssl-0.9.8a/doc/apps/openssl.pod 2005-11-14 03:59:59.000000000 +0000
126@@ -125,7 +125,7 @@
127
128 Online Certificate Status Protocol utility.
129
130-=item L<B<passwd>|passwd(1)>
131+=item L<B<passwd>|openssl-passwd(1)>
132
133 Generation of hashed passwords.
134
135@@ -325,7 +325,7 @@
136 L<dhparam(1)|dhparam(1)>, L<dsa(1)|dsa(1)>, L<dsaparam(1)|dsaparam(1)>,
137 L<enc(1)|enc(1)>, L<gendsa(1)|gendsa(1)>,
138 L<genrsa(1)|genrsa(1)>, L<nseq(1)|nseq(1)>, L<openssl(1)|openssl(1)>,
139-L<passwd(1)|passwd(1)>,
140+L<openssl-passwd(1)|openssl-passwd(1)>,
141 L<pkcs12(1)|pkcs12(1)>, L<pkcs7(1)|pkcs7(1)>, L<pkcs8(1)|pkcs8(1)>,
142 L<rand(1)|rand(1)>, L<req(1)|req(1)>, L<rsa(1)|rsa(1)>,
143 L<rsautl(1)|rsautl(1)>, L<s_client(1)|s_client(1)>,
144diff -Naur openssl-0.9.8a.orig/doc/apps/passwd.pod openssl-0.9.8a/doc/apps/passwd.pod
145--- openssl-0.9.8a.orig/doc/apps/passwd.pod 2002-10-04 12:59:00.000000000 +0000
146+++ openssl-0.9.8a/doc/apps/passwd.pod 1970-01-01 00:00:00.000000000 +0000
147@@ -1,82 +0,0 @@
148-=pod
149-
150-=head1 NAME
151-
152-passwd - compute password hashes
153-
154-=head1 SYNOPSIS
155-
156-B<openssl passwd>
157-[B<-crypt>]
158-[B<-1>]
159-[B<-apr1>]
160-[B<-salt> I<string>]
161-[B<-in> I<file>]
162-[B<-stdin>]
163-[B<-noverify>]
164-[B<-quiet>]
165-[B<-table>]
166-{I<password>}
167-
168-=head1 DESCRIPTION
169-
170-The B<passwd> command computes the hash of a password typed at
171-run-time or the hash of each password in a list. The password list is
172-taken from the named file for option B<-in file>, from stdin for
173-option B<-stdin>, or from the command line, or from the terminal otherwise.
174-The Unix standard algorithm B<crypt> and the MD5-based BSD password
175-algorithm B<1> and its Apache variant B<apr1> are available.
176-
177-=head1 OPTIONS
178-
179-=over 4
180-
181-=item B<-crypt>
182-
183-Use the B<crypt> algorithm (default).
184-
185-=item B<-1>
186-
187-Use the MD5 based BSD password algorithm B<1>.
188-
189-=item B<-apr1>
190-
191-Use the B<apr1> algorithm (Apache variant of the BSD algorithm).
192-
193-=item B<-salt> I<string>
194-
195-Use the specified salt.
196-When reading a password from the terminal, this implies B<-noverify>.
197-
198-=item B<-in> I<file>
199-
200-Read passwords from I<file>.
201-
202-=item B<-stdin>
203-
204-Read passwords from B<stdin>.
205-
206-=item B<-noverify>
207-
208-Don't verify when reading a password from the terminal.
209-
210-=item B<-quiet>
211-
212-Don't output warnings when passwords given at the command line are truncated.
213-
214-=item B<-table>
215-
216-In the output list, prepend the cleartext password and a TAB character
217-to each password hash.
218-
219-=back
220-
221-=head1 EXAMPLES
222-
223-B<openssl passwd -crypt -salt xx password> prints B<xxj31ZMTZzkVA>.
224-
225-B<openssl passwd -1 -salt xxxxxxxx password> prints B<$1$xxxxxxxx$UYCIxa628.9qXjpQCjM4a.>.
226-
227-B<openssl passwd -apr1 -salt xxxxxxxx password> prints B<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0>.
228-
229-=cut
230diff -Naur openssl-0.9.8a.orig/doc/crypto/BN_generate_prime.pod openssl-0.9.8a/doc/crypto/BN_generate_prime.pod
231--- openssl-0.9.8a.orig/doc/crypto/BN_generate_prime.pod 2003-01-13 13:18:22.000000000 +0000
232+++ openssl-0.9.8a/doc/crypto/BN_generate_prime.pod 2005-11-14 03:59:59.000000000 +0000
233@@ -90,7 +90,7 @@
234
235 =head1 SEE ALSO
236
237-L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>
238+L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>
239
240 =head1 HISTORY
241
242diff -Naur openssl-0.9.8a.orig/doc/crypto/BN_rand.pod openssl-0.9.8a/doc/crypto/BN_rand.pod
243--- openssl-0.9.8a.orig/doc/crypto/BN_rand.pod 2002-09-25 13:33:26.000000000 +0000
244+++ openssl-0.9.8a/doc/crypto/BN_rand.pod 2005-11-14 03:59:59.000000000 +0000
245@@ -45,7 +45,7 @@
246
247 =head1 SEE ALSO
248
249-L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
250+L<bn(3)|bn(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
251 L<RAND_add(3)|RAND_add(3)>, L<RAND_bytes(3)|RAND_bytes(3)>
252
253 =head1 HISTORY
254diff -Naur openssl-0.9.8a.orig/doc/crypto/CONF_modules_free.pod openssl-0.9.8a/doc/crypto/CONF_modules_free.pod
255--- openssl-0.9.8a.orig/doc/crypto/CONF_modules_free.pod 2004-03-02 13:31:32.000000000 +0000
256+++ openssl-0.9.8a/doc/crypto/CONF_modules_free.pod 2005-11-14 03:59:59.000000000 +0000
257@@ -37,7 +37,7 @@
258 =head1 SEE ALSO
259
260 L<conf(5)|conf(5)>, L<OPENSSL_config(3)|OPENSSL_config(3)>,
261-L<CONF_modules_load_file(3), CONF_modules_load_file(3)>
262+L<CONF_modules_load_file(3)|CONF_modules_load_file(3)>
263
264 =head1 HISTORY
265
266diff -Naur openssl-0.9.8a.orig/doc/crypto/CONF_modules_load_file.pod openssl-0.9.8a/doc/crypto/CONF_modules_load_file.pod
267--- openssl-0.9.8a.orig/doc/crypto/CONF_modules_load_file.pod 2004-03-02 13:31:32.000000000 +0000
268+++ openssl-0.9.8a/doc/crypto/CONF_modules_load_file.pod 2005-11-14 03:59:59.000000000 +0000
269@@ -51,7 +51,7 @@
270 =head1 SEE ALSO
271
272 L<conf(5)|conf(5)>, L<OPENSSL_config(3)|OPENSSL_config(3)>,
273-L<CONF_free(3), CONF_free(3)>, L<err(3),err(3)>
274+L<CONF_free(3)|CONF_free(3)>, L<openssl_err(3)|openssl_err(3)>
275
276 =head1 HISTORY
277
278diff -Naur openssl-0.9.8a.orig/doc/crypto/DH_generate_key.pod openssl-0.9.8a/doc/crypto/DH_generate_key.pod
279--- openssl-0.9.8a.orig/doc/crypto/DH_generate_key.pod 2002-09-25 13:33:27.000000000 +0000
280+++ openssl-0.9.8a/doc/crypto/DH_generate_key.pod 2005-11-14 03:59:59.000000000 +0000
281@@ -40,7 +40,7 @@
282
283 =head1 SEE ALSO
284
285-L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<DH_size(3)|DH_size(3)>
286+L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<DH_size(3)|DH_size(3)>
287
288 =head1 HISTORY
289
290diff -Naur openssl-0.9.8a.orig/doc/crypto/DH_generate_parameters.pod openssl-0.9.8a/doc/crypto/DH_generate_parameters.pod
291--- openssl-0.9.8a.orig/doc/crypto/DH_generate_parameters.pod 2002-09-25 13:33:27.000000000 +0000
292+++ openssl-0.9.8a/doc/crypto/DH_generate_parameters.pod 2005-11-14 03:59:59.000000000 +0000
293@@ -59,7 +59,7 @@
294
295 =head1 SEE ALSO
296
297-L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
298+L<dh(3)|dh(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
299 L<DH_free(3)|DH_free(3)>
300
301 =head1 HISTORY
302diff -Naur openssl-0.9.8a.orig/doc/crypto/DSA_do_sign.pod openssl-0.9.8a/doc/crypto/DSA_do_sign.pod
303--- openssl-0.9.8a.orig/doc/crypto/DSA_do_sign.pod 2002-09-25 13:33:27.000000000 +0000
304+++ openssl-0.9.8a/doc/crypto/DSA_do_sign.pod 2005-11-14 03:59:59.000000000 +0000
305@@ -36,7 +36,7 @@
306
307 =head1 SEE ALSO
308
309-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
310+L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
311 L<DSA_SIG_new(3)|DSA_SIG_new(3)>,
312 L<DSA_sign(3)|DSA_sign(3)>
313
314diff -Naur openssl-0.9.8a.orig/doc/crypto/DSA_generate_key.pod openssl-0.9.8a/doc/crypto/DSA_generate_key.pod
315--- openssl-0.9.8a.orig/doc/crypto/DSA_generate_key.pod 2002-09-25 13:33:27.000000000 +0000
316+++ openssl-0.9.8a/doc/crypto/DSA_generate_key.pod 2005-11-14 03:59:59.000000000 +0000
317@@ -24,7 +24,7 @@
318
319 =head1 SEE ALSO
320
321-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
322+L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
323 L<DSA_generate_parameters(3)|DSA_generate_parameters(3)>
324
325 =head1 HISTORY
326diff -Naur openssl-0.9.8a.orig/doc/crypto/DSA_generate_parameters.pod openssl-0.9.8a/doc/crypto/DSA_generate_parameters.pod
327--- openssl-0.9.8a.orig/doc/crypto/DSA_generate_parameters.pod 2002-09-25 13:33:27.000000000 +0000
328+++ openssl-0.9.8a/doc/crypto/DSA_generate_parameters.pod 2005-11-14 03:59:59.000000000 +0000
329@@ -90,7 +90,7 @@
330
331 =head1 SEE ALSO
332
333-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
334+L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
335 L<DSA_free(3)|DSA_free(3)>
336
337 =head1 HISTORY
338diff -Naur openssl-0.9.8a.orig/doc/crypto/DSA_sign.pod openssl-0.9.8a/doc/crypto/DSA_sign.pod
339--- openssl-0.9.8a.orig/doc/crypto/DSA_sign.pod 2002-09-25 13:33:27.000000000 +0000
340+++ openssl-0.9.8a/doc/crypto/DSA_sign.pod 2005-11-14 03:59:59.000000000 +0000
341@@ -55,7 +55,7 @@
342
343 =head1 SEE ALSO
344
345-L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>,
346+L<dsa(3)|dsa(3)>, L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>,
347 L<DSA_do_sign(3)|DSA_do_sign(3)>
348
349 =head1 HISTORY
350diff -Naur openssl-0.9.8a.orig/doc/crypto/ERR_GET_LIB.pod openssl-0.9.8a/doc/crypto/ERR_GET_LIB.pod
351--- openssl-0.9.8a.orig/doc/crypto/ERR_GET_LIB.pod 2000-02-01 01:36:58.000000000 +0000
352+++ openssl-0.9.8a/doc/crypto/ERR_GET_LIB.pod 2005-11-14 03:59:59.000000000 +0000
353@@ -41,7 +41,7 @@
354
355 =head1 SEE ALSO
356
357-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
358+L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
359
360 =head1 HISTORY
361
362diff -Naur openssl-0.9.8a.orig/doc/crypto/ERR_clear_error.pod openssl-0.9.8a/doc/crypto/ERR_clear_error.pod
363--- openssl-0.9.8a.orig/doc/crypto/ERR_clear_error.pod 2000-02-01 01:36:58.000000000 +0000
364+++ openssl-0.9.8a/doc/crypto/ERR_clear_error.pod 2005-11-14 03:59:59.000000000 +0000
365@@ -20,7 +20,7 @@
366
367 =head1 SEE ALSO
368
369-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
370+L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>
371
372 =head1 HISTORY
373
374diff -Naur openssl-0.9.8a.orig/doc/crypto/ERR_error_string.pod openssl-0.9.8a/doc/crypto/ERR_error_string.pod
375--- openssl-0.9.8a.orig/doc/crypto/ERR_error_string.pod 2004-11-14 15:11:37.000000000 +0000
376+++ openssl-0.9.8a/doc/crypto/ERR_error_string.pod 2005-11-14 03:59:59.000000000 +0000
377@@ -60,7 +60,7 @@
378
379 =head1 SEE ALSO
380
381-L<err(3)|err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
382+L<openssl_err(3)|openssl_err(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
383 L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
384 L<SSL_load_error_strings(3)|SSL_load_error_strings(3)>
385 L<ERR_print_errors(3)|ERR_print_errors(3)>
386diff -Naur openssl-0.9.8a.orig/doc/crypto/ERR_get_error.pod openssl-0.9.8a/doc/crypto/ERR_get_error.pod
387--- openssl-0.9.8a.orig/doc/crypto/ERR_get_error.pod 2002-11-29 14:21:54.000000000 +0000
388+++ openssl-0.9.8a/doc/crypto/ERR_get_error.pod 2005-11-14 03:59:59.000000000 +0000
389@@ -61,7 +61,7 @@
390
391 =head1 SEE ALSO
392
393-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
394+L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
395 L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>
396
397 =head1 HISTORY
398diff -Naur openssl-0.9.8a.orig/doc/crypto/ERR_load_crypto_strings.pod openssl-0.9.8a/doc/crypto/ERR_load_crypto_strings.pod
399--- openssl-0.9.8a.orig/doc/crypto/ERR_load_crypto_strings.pod 2000-02-24 11:55:08.000000000 +0000
400+++ openssl-0.9.8a/doc/crypto/ERR_load_crypto_strings.pod 2005-11-14 03:59:59.000000000 +0000
401@@ -35,7 +35,7 @@
402
403 =head1 SEE ALSO
404
405-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>
406+L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>
407
408 =head1 HISTORY
409
410diff -Naur openssl-0.9.8a.orig/doc/crypto/ERR_load_strings.pod openssl-0.9.8a/doc/crypto/ERR_load_strings.pod
411--- openssl-0.9.8a.orig/doc/crypto/ERR_load_strings.pod 2000-02-24 11:55:08.000000000 +0000
412+++ openssl-0.9.8a/doc/crypto/ERR_load_strings.pod 2005-11-14 03:59:59.000000000 +0000
413@@ -43,7 +43,7 @@
414
415 =head1 SEE ALSO
416
417-L<err(3)|err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
418+L<openssl_err(3)|openssl_err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
419
420 =head1 HISTORY
421
422diff -Naur openssl-0.9.8a.orig/doc/crypto/ERR_print_errors.pod openssl-0.9.8a/doc/crypto/ERR_print_errors.pod
423--- openssl-0.9.8a.orig/doc/crypto/ERR_print_errors.pod 2000-02-01 01:36:59.000000000 +0000
424+++ openssl-0.9.8a/doc/crypto/ERR_print_errors.pod 2005-11-14 03:59:59.000000000 +0000
425@@ -38,7 +38,7 @@
426
427 =head1 SEE ALSO
428
429-L<err(3)|err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
430+L<openssl_err(3)|openssl_err(3)>, L<ERR_error_string(3)|ERR_error_string(3)>,
431 L<ERR_get_error(3)|ERR_get_error(3)>,
432 L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
433 L<SSL_load_error_strings(3)|SSL_load_error_strings(3)>
434diff -Naur openssl-0.9.8a.orig/doc/crypto/ERR_put_error.pod openssl-0.9.8a/doc/crypto/ERR_put_error.pod
435--- openssl-0.9.8a.orig/doc/crypto/ERR_put_error.pod 2000-02-24 11:55:08.000000000 +0000
436+++ openssl-0.9.8a/doc/crypto/ERR_put_error.pod 2005-11-14 03:59:59.000000000 +0000
437@@ -34,7 +34,7 @@
438
439 =head1 SEE ALSO
440
441-L<err(3)|err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
442+L<openssl_err(3)|openssl_err(3)>, L<ERR_load_strings(3)|ERR_load_strings(3)>
443
444 =head1 HISTORY
445
446diff -Naur openssl-0.9.8a.orig/doc/crypto/ERR_remove_state.pod openssl-0.9.8a/doc/crypto/ERR_remove_state.pod
447--- openssl-0.9.8a.orig/doc/crypto/ERR_remove_state.pod 2000-05-19 07:54:42.000000000 +0000
448+++ openssl-0.9.8a/doc/crypto/ERR_remove_state.pod 2005-11-14 03:59:59.000000000 +0000
449@@ -25,7 +25,7 @@
450
451 =head1 SEE ALSO
452
453-L<err(3)|err(3)>
454+L<openssl_err(3)|openssl_err(3)>
455
456 =head1 HISTORY
457
458diff -Naur openssl-0.9.8a.orig/doc/crypto/EVP_BytesToKey.pod openssl-0.9.8a/doc/crypto/EVP_BytesToKey.pod
459--- openssl-0.9.8a.orig/doc/crypto/EVP_BytesToKey.pod 2004-11-25 17:47:30.000000000 +0000
460+++ openssl-0.9.8a/doc/crypto/EVP_BytesToKey.pod 2005-11-14 04:00:45.000000000 +0000
461@@ -59,7 +59,7 @@
462
463 =head1 SEE ALSO
464
465-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
466+L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
467 L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>
468
469 =head1 HISTORY
470diff -Naur openssl-0.9.8a.orig/doc/crypto/EVP_OpenInit.pod openssl-0.9.8a/doc/crypto/EVP_OpenInit.pod
471--- openssl-0.9.8a.orig/doc/crypto/EVP_OpenInit.pod 2000-09-23 07:16:14.000000000 +0000
472+++ openssl-0.9.8a/doc/crypto/EVP_OpenInit.pod 2005-11-14 03:59:59.000000000 +0000
473@@ -54,7 +54,7 @@
474
475 =head1 SEE ALSO
476
477-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
478+L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
479 L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>,
480 L<EVP_SealInit(3)|EVP_SealInit(3)>
481
482diff -Naur openssl-0.9.8a.orig/doc/crypto/EVP_SealInit.pod openssl-0.9.8a/doc/crypto/EVP_SealInit.pod
483--- openssl-0.9.8a.orig/doc/crypto/EVP_SealInit.pod 2005-03-29 17:50:08.000000000 +0000
484+++ openssl-0.9.8a/doc/crypto/EVP_SealInit.pod 2005-11-14 03:59:59.000000000 +0000
485@@ -74,7 +74,7 @@
486
487 =head1 SEE ALSO
488
489-L<evp(3)|evp(3)>, L<rand(3)|rand(3)>,
490+L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>,
491 L<EVP_EncryptInit(3)|EVP_EncryptInit(3)>,
492 L<EVP_OpenInit(3)|EVP_OpenInit(3)>
493
494diff -Naur openssl-0.9.8a.orig/doc/crypto/EVP_SignInit.pod openssl-0.9.8a/doc/crypto/EVP_SignInit.pod
495--- openssl-0.9.8a.orig/doc/crypto/EVP_SignInit.pod 2005-03-22 17:55:33.000000000 +0000
496+++ openssl-0.9.8a/doc/crypto/EVP_SignInit.pod 2005-11-14 03:59:59.000000000 +0000
497@@ -80,7 +80,7 @@
498 =head1 SEE ALSO
499
500 L<EVP_VerifyInit(3)|EVP_VerifyInit(3)>,
501-L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
502+L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<openssl_err(3)|openssl_err(3)>,
503 L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
504 L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>,
505 L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
506diff -Naur openssl-0.9.8a.orig/doc/crypto/EVP_VerifyInit.pod openssl-0.9.8a/doc/crypto/EVP_VerifyInit.pod
507--- openssl-0.9.8a.orig/doc/crypto/EVP_VerifyInit.pod 2002-07-10 19:35:46.000000000 +0000
508+++ openssl-0.9.8a/doc/crypto/EVP_VerifyInit.pod 2005-11-14 03:59:59.000000000 +0000
509@@ -71,7 +71,7 @@
510
511 L<evp(3)|evp(3)>,
512 L<EVP_SignInit(3)|EVP_SignInit(3)>,
513-L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<err(3)|err(3)>,
514+L<EVP_DigestInit(3)|EVP_DigestInit(3)>, L<openssl_err(3)|openssl_err(3)>,
515 L<evp(3)|evp(3)>, L<hmac(3)|hmac(3)>, L<md2(3)|md2(3)>,
516 L<md5(3)|md5(3)>, L<mdc2(3)|mdc2(3)>, L<ripemd(3)|ripemd(3)>,
517 L<sha(3)|sha(3)>, L<dgst(1)|dgst(1)>
518diff -Naur openssl-0.9.8a.orig/doc/crypto/OPENSSL_config.pod openssl-0.9.8a/doc/crypto/OPENSSL_config.pod
519--- openssl-0.9.8a.orig/doc/crypto/OPENSSL_config.pod 2005-06-02 23:17:38.000000000 +0000
520+++ openssl-0.9.8a/doc/crypto/OPENSSL_config.pod 2005-11-14 03:59:59.000000000 +0000
521@@ -73,7 +73,7 @@
522 =head1 SEE ALSO
523
524 L<conf(5)|conf(5)>, L<CONF_load_modules_file(3)|CONF_load_modules_file(3)>,
525-L<CONF_modules_free(3),CONF_modules_free(3)>
526+L<CONF_modules_free(3)|CONF_modules_free(3)>
527
528 =head1 HISTORY
529
530diff -Naur openssl-0.9.8a.orig/doc/crypto/RAND_add.pod openssl-0.9.8a/doc/crypto/RAND_add.pod
531--- openssl-0.9.8a.orig/doc/crypto/RAND_add.pod 2000-03-22 15:30:03.000000000 +0000
532+++ openssl-0.9.8a/doc/crypto/RAND_add.pod 2005-11-14 03:59:59.000000000 +0000
533@@ -65,7 +65,7 @@
534
535 =head1 SEE ALSO
536
537-L<rand(3)|rand(3)>, L<RAND_egd(3)|RAND_egd(3)>,
538+L<openssl_rand(3)|openssl_rand(3)>, L<RAND_egd(3)|RAND_egd(3)>,
539 L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
540
541 =head1 HISTORY
542diff -Naur openssl-0.9.8a.orig/doc/crypto/RAND_bytes.pod openssl-0.9.8a/doc/crypto/RAND_bytes.pod
543--- openssl-0.9.8a.orig/doc/crypto/RAND_bytes.pod 2002-09-25 13:33:27.000000000 +0000
544+++ openssl-0.9.8a/doc/crypto/RAND_bytes.pod 2005-11-14 03:59:59.000000000 +0000
545@@ -35,7 +35,7 @@
546
547 =head1 SEE ALSO
548
549-L<rand(3)|rand(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
550+L<openssl_rand(3)|openssl_rand(3)>, L<ERR_get_error(3)|ERR_get_error(3)>,
551 L<RAND_add(3)|RAND_add(3)>
552
553 =head1 HISTORY
554diff -Naur openssl-0.9.8a.orig/doc/crypto/RAND_cleanup.pod openssl-0.9.8a/doc/crypto/RAND_cleanup.pod
555--- openssl-0.9.8a.orig/doc/crypto/RAND_cleanup.pod 2000-01-27 01:25:06.000000000 +0000
556+++ openssl-0.9.8a/doc/crypto/RAND_cleanup.pod 2005-11-14 03:59:59.000000000 +0000
557@@ -20,7 +20,7 @@
558
559 =head1 SEE ALSO
560
561-L<rand(3)|rand(3)>
562+L<openssl_rand(3)|openssl_rand(3)>
563
564 =head1 HISTORY
565
566diff -Naur openssl-0.9.8a.orig/doc/crypto/RAND_egd.pod openssl-0.9.8a/doc/crypto/RAND_egd.pod
567--- openssl-0.9.8a.orig/doc/crypto/RAND_egd.pod 2001-02-10 19:10:36.000000000 +0000
568+++ openssl-0.9.8a/doc/crypto/RAND_egd.pod 2005-11-14 03:59:59.000000000 +0000
569@@ -69,7 +69,7 @@
570
571 =head1 SEE ALSO
572
573-L<rand(3)|rand(3)>, L<RAND_add(3)|RAND_add(3)>,
574+L<openssl_rand(3)|openssl_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
575 L<RAND_cleanup(3)|RAND_cleanup(3)>
576
577 =head1 HISTORY
578diff -Naur openssl-0.9.8a.orig/doc/crypto/RAND_load_file.pod openssl-0.9.8a/doc/crypto/RAND_load_file.pod
579--- openssl-0.9.8a.orig/doc/crypto/RAND_load_file.pod 2001-03-21 15:25:56.000000000 +0000
580+++ openssl-0.9.8a/doc/crypto/RAND_load_file.pod 2005-11-14 03:59:59.000000000 +0000
581@@ -43,7 +43,7 @@
582
583 =head1 SEE ALSO
584
585-L<rand(3)|rand(3)>, L<RAND_add(3)|RAND_add(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
586+L<openssl_rand(3)|openssl_rand(3)>, L<RAND_add(3)|RAND_add(3)>, L<RAND_cleanup(3)|RAND_cleanup(3)>
587
588 =head1 HISTORY
589
590diff -Naur openssl-0.9.8a.orig/doc/crypto/RAND_set_rand_method.pod openssl-0.9.8a/doc/crypto/RAND_set_rand_method.pod
591--- openssl-0.9.8a.orig/doc/crypto/RAND_set_rand_method.pod 2002-08-05 16:27:01.000000000 +0000
592+++ openssl-0.9.8a/doc/crypto/RAND_set_rand_method.pod 2005-11-14 03:59:59.000000000 +0000
593@@ -67,7 +67,7 @@
594
595 =head1 SEE ALSO
596
597-L<rand(3)|rand(3)>, L<engine(3)|engine(3)>
598+L<openssl_rand(3)|openssl_rand(3)>, L<engine(3)|engine(3)>
599
600 =head1 HISTORY
601
602diff -Naur openssl-0.9.8a.orig/doc/crypto/RSA_blinding_on.pod openssl-0.9.8a/doc/crypto/RSA_blinding_on.pod
603--- openssl-0.9.8a.orig/doc/crypto/RSA_blinding_on.pod 2000-02-24 11:55:10.000000000 +0000
604+++ openssl-0.9.8a/doc/crypto/RSA_blinding_on.pod 2005-11-14 03:59:59.000000000 +0000
605@@ -34,7 +34,7 @@
606
607 =head1 SEE ALSO
608
609-L<rsa(3)|rsa(3)>, L<rand(3)|rand(3)>
610+L<rsa(3)|rsa(3)>, L<openssl_rand(3)|openssl_rand(3)>
611
612 =head1 HISTORY
613
614diff -Naur openssl-0.9.8a.orig/doc/crypto/RSA_generate_key.pod openssl-0.9.8a/doc/crypto/RSA_generate_key.pod
615--- openssl-0.9.8a.orig/doc/crypto/RSA_generate_key.pod 2002-09-25 13:33:27.000000000 +0000
616+++ openssl-0.9.8a/doc/crypto/RSA_generate_key.pod 2005-11-14 03:59:59.000000000 +0000
617@@ -59,7 +59,7 @@
618
619 =head1 SEE ALSO
620
621-L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
622+L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
623 L<RSA_free(3)|RSA_free(3)>
624
625 =head1 HISTORY
626diff -Naur openssl-0.9.8a.orig/doc/crypto/RSA_public_encrypt.pod openssl-0.9.8a/doc/crypto/RSA_public_encrypt.pod
627--- openssl-0.9.8a.orig/doc/crypto/RSA_public_encrypt.pod 2004-03-23 21:01:34.000000000 +0000
628+++ openssl-0.9.8a/doc/crypto/RSA_public_encrypt.pod 2005-11-14 03:59:59.000000000 +0000
629@@ -73,7 +73,7 @@
630
631 =head1 SEE ALSO
632
633-L<ERR_get_error(3)|ERR_get_error(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
634+L<ERR_get_error(3)|ERR_get_error(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
635 L<RSA_size(3)|RSA_size(3)>
636
637 =head1 HISTORY
638diff -Naur openssl-0.9.8a.orig/doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod openssl-0.9.8a/doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod
639--- openssl-0.9.8a.orig/doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod 2002-09-25 13:33:28.000000000 +0000
640+++ openssl-0.9.8a/doc/crypto/RSA_sign_ASN1_OCTET_STRING.pod 2005-11-14 03:59:59.000000000 +0000
641@@ -48,7 +48,7 @@
642 =head1 SEE ALSO
643
644 L<ERR_get_error(3)|ERR_get_error(3)>, L<objects(3)|objects(3)>,
645-L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>, L<RSA_sign(3)|RSA_sign(3)>,
646+L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>, L<RSA_sign(3)|RSA_sign(3)>,
647 L<RSA_verify(3)|RSA_verify(3)>
648
649 =head1 HISTORY
650diff -Naur openssl-0.9.8a.orig/doc/crypto/X509_NAME_ENTRY_get_object.pod openssl-0.9.8a/doc/crypto/X509_NAME_ENTRY_get_object.pod
651--- openssl-0.9.8a.orig/doc/crypto/X509_NAME_ENTRY_get_object.pod 2005-03-30 11:50:14.000000000 +0000
652+++ openssl-0.9.8a/doc/crypto/X509_NAME_ENTRY_get_object.pod 2005-11-14 03:59:59.000000000 +0000
653@@ -63,7 +63,7 @@
654 =head1 SEE ALSO
655
656 L<ERR_get_error(3)|ERR_get_error(3)>, L<d2i_X509_NAME(3)|d2i_X509_NAME(3)>,
657-L<OBJ_nid2obj(3),OBJ_nid2obj(3)>
658+L<OBJ_nid2obj(3)|OBJ_nid2obj(3)>
659
660 =head1 HISTORY
661
662diff -Naur openssl-0.9.8a.orig/doc/crypto/bn.pod openssl-0.9.8a/doc/crypto/bn.pod
663--- openssl-0.9.8a.orig/doc/crypto/bn.pod 2005-04-29 15:07:34.000000000 +0000
664+++ openssl-0.9.8a/doc/crypto/bn.pod 2005-11-14 03:59:59.000000000 +0000
665@@ -167,7 +167,7 @@
666 =head1 SEE ALSO
667
668 L<bn_internal(3)|bn_internal(3)>,
669-L<dh(3)|dh(3)>, L<err(3)|err(3)>, L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>,
670+L<dh(3)|dh(3)>, L<openssl_err(3)|openssl_err(3)>, L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>,
671 L<BN_new(3)|BN_new(3)>, L<BN_CTX_new(3)|BN_CTX_new(3)>,
672 L<BN_copy(3)|BN_copy(3)>, L<BN_swap(3)|BN_swap(3)>, L<BN_num_bytes(3)|BN_num_bytes(3)>,
673 L<BN_add(3)|BN_add(3)>, L<BN_add_word(3)|BN_add_word(3)>,
674diff -Naur openssl-0.9.8a.orig/doc/crypto/crypto.pod openssl-0.9.8a/doc/crypto/crypto.pod
675--- openssl-0.9.8a.orig/doc/crypto/crypto.pod 2002-10-06 12:59:25.000000000 +0000
676+++ openssl-0.9.8a/doc/crypto/crypto.pod 2005-11-14 03:59:59.000000000 +0000
677@@ -46,7 +46,7 @@
678
679 =item AUXILIARY FUNCTIONS
680
681-L<err(3)|err(3)>, L<threads(3)|threads(3)>, L<rand(3)|rand(3)>,
682+L<openssl_err(3)|openssl_err(3)>, L<openssl_threads(3)|openssl_threads(3)>, L<openssl_rand(3)|openssl_rand(3)>,
683 L<OPENSSL_VERSION_NUMBER(3)|OPENSSL_VERSION_NUMBER(3)>
684
685 =item INPUT/OUTPUT, DATA ENCODING
686diff -Naur openssl-0.9.8a.orig/doc/crypto/des.pod openssl-0.9.8a/doc/crypto/des.pod
687--- openssl-0.9.8a.orig/doc/crypto/des.pod 2003-10-01 15:02:45.000000000 +0000
688+++ openssl-0.9.8a/doc/crypto/des.pod 2005-11-14 03:59:59.000000000 +0000
689@@ -115,7 +115,7 @@
690 the key; it is used to speed the encryption process.
691
692 DES_random_key() generates a random key. The PRNG must be seeded
693-prior to using this function (see L<rand(3)|rand(3)>). If the PRNG
694+prior to using this function (see L<openssl_rand(3)|openssl_rand(3)>). If the PRNG
695 could not generate a secure key, 0 is returned.
696
697 Before a DES key can be used, it must be converted into the
698@@ -317,7 +317,7 @@
699
700 =head1 SEE ALSO
701
702-crypt(3), L<des_modes(7)|des_modes(7)>, L<evp(3)|evp(3)>, L<rand(3)|rand(3)>
703+crypt(3), L<des_modes(7)|des_modes(7)>, L<evp(3)|evp(3)>, L<openssl_rand(3)|openssl_rand(3)>
704
705 =head1 HISTORY
706
707diff -Naur openssl-0.9.8a.orig/doc/crypto/dh.pod openssl-0.9.8a/doc/crypto/dh.pod
708--- openssl-0.9.8a.orig/doc/crypto/dh.pod 2002-08-05 16:27:01.000000000 +0000
709+++ openssl-0.9.8a/doc/crypto/dh.pod 2005-11-14 03:59:59.000000000 +0000
710@@ -67,8 +67,8 @@
711
712 =head1 SEE ALSO
713
714-L<dhparam(1)|dhparam(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<err(3)|err(3)>,
715-L<rand(3)|rand(3)>, L<rsa(3)|rsa(3)>, L<engine(3)|engine(3)>,
716+L<dhparam(1)|dhparam(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<openssl_err(3)|openssl_err(3)>,
717+L<openssl_rand(3)|openssl_rand(3)>, L<rsa(3)|rsa(3)>, L<engine(3)|engine(3)>,
718 L<DH_set_method(3)|DH_set_method(3)>, L<DH_new(3)|DH_new(3)>,
719 L<DH_get_ex_new_index(3)|DH_get_ex_new_index(3)>,
720 L<DH_generate_parameters(3)|DH_generate_parameters(3)>,
721diff -Naur openssl-0.9.8a.orig/doc/crypto/dsa.pod openssl-0.9.8a/doc/crypto/dsa.pod
722--- openssl-0.9.8a.orig/doc/crypto/dsa.pod 2002-08-05 16:27:01.000000000 +0000
723+++ openssl-0.9.8a/doc/crypto/dsa.pod 2005-11-14 03:59:59.000000000 +0000
724@@ -100,7 +100,7 @@
725
726 =head1 SEE ALSO
727
728-L<bn(3)|bn(3)>, L<dh(3)|dh(3)>, L<err(3)|err(3)>, L<rand(3)|rand(3)>,
729+L<bn(3)|bn(3)>, L<dh(3)|dh(3)>, L<openssl_err(3)|openssl_err(3)>, L<openssl_rand(3)|openssl_rand(3)>,
730 L<rsa(3)|rsa(3)>, L<sha(3)|sha(3)>, L<engine(3)|engine(3)>,
731 L<DSA_new(3)|DSA_new(3)>,
732 L<DSA_size(3)|DSA_size(3)>,
733diff -Naur openssl-0.9.8a.orig/doc/crypto/engine.pod openssl-0.9.8a/doc/crypto/engine.pod
734--- openssl-0.9.8a.orig/doc/crypto/engine.pod 2004-06-17 23:40:14.000000000 +0000
735+++ openssl-0.9.8a/doc/crypto/engine.pod 2005-11-14 04:01:19.000000000 +0000
736@@ -594,6 +594,6 @@
737
738 =head1 SEE ALSO
739
740-L<rsa(3)|rsa(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>, L<rand(3)|rand(3)>
741+L<rsa(3)|rsa(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>, L<openssl_rand(3)|openssl_rand(3)>
742
743 =cut
744diff -Naur openssl-0.9.8a.orig/doc/crypto/err.pod openssl-0.9.8a/doc/crypto/err.pod
745--- openssl-0.9.8a.orig/doc/crypto/err.pod 2002-07-10 19:35:46.000000000 +0000
746+++ openssl-0.9.8a/doc/crypto/err.pod 1970-01-01 00:00:00.000000000 +0000
747@@ -1,187 +0,0 @@
748-=pod
749-
750-=head1 NAME
751-
752-err - error codes
753-
754-=head1 SYNOPSIS
755-
756- #include <openssl/err.h>
757-
758- unsigned long ERR_get_error(void);
759- unsigned long ERR_peek_error(void);
760- unsigned long ERR_get_error_line(const char **file, int *line);
761- unsigned long ERR_peek_error_line(const char **file, int *line);
762- unsigned long ERR_get_error_line_data(const char **file, int *line,
763- const char **data, int *flags);
764- unsigned long ERR_peek_error_line_data(const char **file, int *line,
765- const char **data, int *flags);
766-
767- int ERR_GET_LIB(unsigned long e);
768- int ERR_GET_FUNC(unsigned long e);
769- int ERR_GET_REASON(unsigned long e);
770-
771- void ERR_clear_error(void);
772-
773- char *ERR_error_string(unsigned long e, char *buf);
774- const char *ERR_lib_error_string(unsigned long e);
775- const char *ERR_func_error_string(unsigned long e);
776- const char *ERR_reason_error_string(unsigned long e);
777-
778- void ERR_print_errors(BIO *bp);
779- void ERR_print_errors_fp(FILE *fp);
780-
781- void ERR_load_crypto_strings(void);
782- void ERR_free_strings(void);
783-
784- void ERR_remove_state(unsigned long pid);
785-
786- void ERR_put_error(int lib, int func, int reason, const char *file,
787- int line);
788- void ERR_add_error_data(int num, ...);
789-
790- void ERR_load_strings(int lib,ERR_STRING_DATA str[]);
791- unsigned long ERR_PACK(int lib, int func, int reason);
792- int ERR_get_next_error_library(void);
793-
794-=head1 DESCRIPTION
795-
796-When a call to the OpenSSL library fails, this is usually signalled
797-by the return value, and an error code is stored in an error queue
798-associated with the current thread. The B<err> library provides
799-functions to obtain these error codes and textual error messages.
800-
801-The L<ERR_get_error(3)|ERR_get_error(3)> manpage describes how to
802-access error codes.
803-
804-Error codes contain information about where the error occurred, and
805-what went wrong. L<ERR_GET_LIB(3)|ERR_GET_LIB(3)> describes how to
806-extract this information. A method to obtain human-readable error
807-messages is described in L<ERR_error_string(3)|ERR_error_string(3)>.
808-
809-L<ERR_clear_error(3)|ERR_clear_error(3)> can be used to clear the
810-error queue.
811-
812-Note that L<ERR_remove_state(3)|ERR_remove_state(3)> should be used to
813-avoid memory leaks when threads are terminated.
814-
815-=head1 ADDING NEW ERROR CODES TO OPENSSL
816-
817-See L<ERR_put_error(3)> if you want to record error codes in the
818-OpenSSL error system from within your application.
819-
820-The remainder of this section is of interest only if you want to add
821-new error codes to OpenSSL or add error codes from external libraries.
822-
823-=head2 Reporting errors
824-
825-Each sub-library has a specific macro XXXerr() that is used to report
826-errors. Its first argument is a function code B<XXX_F_...>, the second
827-argument is a reason code B<XXX_R_...>. Function codes are derived
828-from the function names; reason codes consist of textual error
829-descriptions. For example, the function ssl23_read() reports a
830-"handshake failure" as follows:
831-
832- SSLerr(SSL_F_SSL23_READ, SSL_R_SSL_HANDSHAKE_FAILURE);
833-
834-Function and reason codes should consist of upper case characters,
835-numbers and underscores only. The error file generation script translates
836-function codes into function names by looking in the header files
837-for an appropriate function name, if none is found it just uses
838-the capitalized form such as "SSL23_READ" in the above example.
839-
840-The trailing section of a reason code (after the "_R_") is translated
841-into lower case and underscores changed to spaces.
842-
843-When you are using new function or reason codes, run B<make errors>.
844-The necessary B<#define>s will then automatically be added to the
845-sub-library's header file.
846-
847-Although a library will normally report errors using its own specific
848-XXXerr macro, another library's macro can be used. This is normally
849-only done when a library wants to include ASN1 code which must use
850-the ASN1err() macro.
851-
852-=head2 Adding new libraries
853-
854-When adding a new sub-library to OpenSSL, assign it a library number
855-B<ERR_LIB_XXX>, define a macro XXXerr() (both in B<err.h>), add its
856-name to B<ERR_str_libraries[]> (in B<crypto/err/err.c>), and add
857-C<ERR_load_XXX_strings()> to the ERR_load_crypto_strings() function
858-(in B<crypto/err/err_all.c>). Finally, add an entry
859-
860- L XXX xxx.h xxx_err.c
861-
862-to B<crypto/err/openssl.ec>, and add B<xxx_err.c> to the Makefile.
863-Running B<make errors> will then generate a file B<xxx_err.c>, and
864-add all error codes used in the library to B<xxx.h>.
865-
866-Additionally the library include file must have a certain form.
867-Typically it will initially look like this:
868-
869- #ifndef HEADER_XXX_H
870- #define HEADER_XXX_H
871-
872- #ifdef __cplusplus
873- extern "C" {
874- #endif
875-
876- /* Include files */
877-
878- #include <openssl/bio.h>
879- #include <openssl/x509.h>
880-
881- /* Macros, structures and function prototypes */
882-
883-
884- /* BEGIN ERROR CODES */
885-
886-The B<BEGIN ERROR CODES> sequence is used by the error code
887-generation script as the point to place new error codes, any text
888-after this point will be overwritten when B<make errors> is run.
889-The closing #endif etc will be automatically added by the script.
890-
891-The generated C error code file B<xxx_err.c> will load the header
892-files B<stdio.h>, B<openssl/err.h> and B<openssl/xxx.h> so the
893-header file must load any additional header files containing any
894-definitions it uses.
895-
896-=head1 USING ERROR CODES IN EXTERNAL LIBRARIES
897-
898-It is also possible to use OpenSSL's error code scheme in external
899-libraries. The library needs to load its own codes and call the OpenSSL
900-error code insertion script B<mkerr.pl> explicitly to add codes to
901-the header file and generate the C error code file. This will normally
902-be done if the external library needs to generate new ASN1 structures
903-but it can also be used to add more general purpose error code handling.
904-
905-TBA more details
906-
907-=head1 INTERNALS
908-
909-The error queues are stored in a hash table with one B<ERR_STATE>
910-entry for each pid. ERR_get_state() returns the current thread's
911-B<ERR_STATE>. An B<ERR_STATE> can hold up to B<ERR_NUM_ERRORS> error
912-codes. When more error codes are added, the old ones are overwritten,
913-on the assumption that the most recent errors are most important.
914-
915-Error strings are also stored in hash table. The hash tables can
916-be obtained by calling ERR_get_err_state_table(void) and
917-ERR_get_string_table(void) respectively.
918-
919-=head1 SEE ALSO
920-
921-L<CRYPTO_set_id_callback(3)|CRYPTO_set_id_callback(3)>,
922-L<CRYPTO_set_locking_callback(3)|CRYPTO_set_locking_callback(3)>,
923-L<ERR_get_error(3)|ERR_get_error(3)>,
924-L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>,
925-L<ERR_clear_error(3)|ERR_clear_error(3)>,
926-L<ERR_error_string(3)|ERR_error_string(3)>,
927-L<ERR_print_errors(3)|ERR_print_errors(3)>,
928-L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
929-L<ERR_remove_state(3)|ERR_remove_state(3)>,
930-L<ERR_put_error(3)|ERR_put_error(3)>,
931-L<ERR_load_strings(3)|ERR_load_strings(3)>,
932-L<SSL_get_error(3)|SSL_get_error(3)>
933-
934-=cut
935diff -Naur openssl-0.9.8a.orig/doc/crypto/openssl_err.pod openssl-0.9.8a/doc/crypto/openssl_err.pod
936--- openssl-0.9.8a.orig/doc/crypto/openssl_err.pod 1970-01-01 00:00:00.000000000 +0000
937+++ openssl-0.9.8a/doc/crypto/openssl_err.pod 2005-11-14 03:59:59.000000000 +0000
938@@ -0,0 +1,187 @@
939+=pod
940+
941+=head1 NAME
942+
943+openssl_err - error codes
944+
945+=head1 SYNOPSIS
946+
947+ #include <openssl/err.h>
948+
949+ unsigned long ERR_get_error(void);
950+ unsigned long ERR_peek_error(void);
951+ unsigned long ERR_get_error_line(const char **file, int *line);
952+ unsigned long ERR_peek_error_line(const char **file, int *line);
953+ unsigned long ERR_get_error_line_data(const char **file, int *line,
954+ const char **data, int *flags);
955+ unsigned long ERR_peek_error_line_data(const char **file, int *line,
956+ const char **data, int *flags);
957+
958+ int ERR_GET_LIB(unsigned long e);
959+ int ERR_GET_FUNC(unsigned long e);
960+ int ERR_GET_REASON(unsigned long e);
961+
962+ void ERR_clear_error(void);
963+
964+ char *ERR_error_string(unsigned long e, char *buf);
965+ const char *ERR_lib_error_string(unsigned long e);
966+ const char *ERR_func_error_string(unsigned long e);
967+ const char *ERR_reason_error_string(unsigned long e);
968+
969+ void ERR_print_errors(BIO *bp);
970+ void ERR_print_errors_fp(FILE *fp);
971+
972+ void ERR_load_crypto_strings(void);
973+ void ERR_free_strings(void);
974+
975+ void ERR_remove_state(unsigned long pid);
976+
977+ void ERR_put_error(int lib, int func, int reason, const char *file,
978+ int line);
979+ void ERR_add_error_data(int num, ...);
980+
981+ void ERR_load_strings(int lib,ERR_STRING_DATA str[]);
982+ unsigned long ERR_PACK(int lib, int func, int reason);
983+ int ERR_get_next_error_library(void);
984+
985+=head1 DESCRIPTION
986+
987+When a call to the OpenSSL library fails, this is usually signalled
988+by the return value, and an error code is stored in an error queue
989+associated with the current thread. The B<err> library provides
990+functions to obtain these error codes and textual error messages.
991+
992+The L<ERR_get_error(3)|ERR_get_error(3)> manpage describes how to
993+access error codes.
994+
995+Error codes contain information about where the error occurred, and
996+what went wrong. L<ERR_GET_LIB(3)|ERR_GET_LIB(3)> describes how to
997+extract this information. A method to obtain human-readable error
998+messages is described in L<ERR_error_string(3)|ERR_error_string(3)>.
999+
1000+L<ERR_clear_error(3)|ERR_clear_error(3)> can be used to clear the
1001+error queue.
1002+
1003+Note that L<ERR_remove_state(3)|ERR_remove_state(3)> should be used to
1004+avoid memory leaks when threads are terminated.
1005+
1006+=head1 ADDING NEW ERROR CODES TO OPENSSL
1007+
1008+See L<ERR_put_error(3)> if you want to record error codes in the
1009+OpenSSL error system from within your application.
1010+
1011+The remainder of this section is of interest only if you want to add
1012+new error codes to OpenSSL or add error codes from external libraries.
1013+
1014+=head2 Reporting errors
1015+
1016+Each sub-library has a specific macro XXXerr() that is used to report
1017+errors. Its first argument is a function code B<XXX_F_...>, the second
1018+argument is a reason code B<XXX_R_...>. Function codes are derived
1019+from the function names; reason codes consist of textual error
1020+descriptions. For example, the function ssl23_read() reports a
1021+"handshake failure" as follows:
1022+
1023+ SSLerr(SSL_F_SSL23_READ, SSL_R_SSL_HANDSHAKE_FAILURE);
1024+
1025+Function and reason codes should consist of upper case characters,
1026+numbers and underscores only. The error file generation script translates
1027+function codes into function names by looking in the header files
1028+for an appropriate function name, if none is found it just uses
1029+the capitalized form such as "SSL23_READ" in the above example.
1030+
1031+The trailing section of a reason code (after the "_R_") is translated
1032+into lower case and underscores changed to spaces.
1033+
1034+When you are using new function or reason codes, run B<make errors>.
1035+The necessary B<#define>s will then automatically be added to the
1036+sub-library's header file.
1037+
1038+Although a library will normally report errors using its own specific
1039+XXXerr macro, another library's macro can be used. This is normally
1040+only done when a library wants to include ASN1 code which must use
1041+the ASN1err() macro.
1042+
1043+=head2 Adding new libraries
1044+
1045+When adding a new sub-library to OpenSSL, assign it a library number
1046+B<ERR_LIB_XXX>, define a macro XXXerr() (both in B<err.h>), add its
1047+name to B<ERR_str_libraries[]> (in B<crypto/err/err.c>), and add
1048+C<ERR_load_XXX_strings()> to the ERR_load_crypto_strings() function
1049+(in B<crypto/err/err_all.c>). Finally, add an entry
1050+
1051+ L XXX xxx.h xxx_err.c
1052+
1053+to B<crypto/err/openssl.ec>, and add B<xxx_err.c> to the Makefile.
1054+Running B<make errors> will then generate a file B<xxx_err.c>, and
1055+add all error codes used in the library to B<xxx.h>.
1056+
1057+Additionally the library include file must have a certain form.
1058+Typically it will initially look like this:
1059+
1060+ #ifndef HEADER_XXX_H
1061+ #define HEADER_XXX_H
1062+
1063+ #ifdef __cplusplus
1064+ extern "C" {
1065+ #endif
1066+
1067+ /* Include files */
1068+
1069+ #include <openssl/bio.h>
1070+ #include <openssl/x509.h>
1071+
1072+ /* Macros, structures and function prototypes */
1073+
1074+
1075+ /* BEGIN ERROR CODES */
1076+
1077+The B<BEGIN ERROR CODES> sequence is used by the error code
1078+generation script as the point to place new error codes, any text
1079+after this point will be overwritten when B<make errors> is run.
1080+The closing #endif etc will be automatically added by the script.
1081+
1082+The generated C error code file B<xxx_err.c> will load the header
1083+files B<stdio.h>, B<openssl/err.h> and B<openssl/xxx.h> so the
1084+header file must load any additional header files containing any
1085+definitions it uses.
1086+
1087+=head1 USING ERROR CODES IN EXTERNAL LIBRARIES
1088+
1089+It is also possible to use OpenSSL's error code scheme in external
1090+libraries. The library needs to load its own codes and call the OpenSSL
1091+error code insertion script B<mkerr.pl> explicitly to add codes to
1092+the header file and generate the C error code file. This will normally
1093+be done if the external library needs to generate new ASN1 structures
1094+but it can also be used to add more general purpose error code handling.
1095+
1096+TBA more details
1097+
1098+=head1 INTERNALS
1099+
1100+The error queues are stored in a hash table with one B<ERR_STATE>
1101+entry for each pid. ERR_get_state() returns the current thread's
1102+B<ERR_STATE>. An B<ERR_STATE> can hold up to B<ERR_NUM_ERRORS> error
1103+codes. When more error codes are added, the old ones are overwritten,
1104+on the assumption that the most recent errors are most important.
1105+
1106+Error strings are also stored in hash table. The hash tables can
1107+be obtained by calling ERR_get_err_state_table(void) and
1108+ERR_get_string_table(void) respectively.
1109+
1110+=head1 SEE ALSO
1111+
1112+L<CRYPTO_set_id_callback(3)|CRYPTO_set_id_callback(3)>,
1113+L<CRYPTO_set_locking_callback(3)|CRYPTO_set_locking_callback(3)>,
1114+L<ERR_get_error(3)|ERR_get_error(3)>,
1115+L<ERR_GET_LIB(3)|ERR_GET_LIB(3)>,
1116+L<ERR_clear_error(3)|ERR_clear_error(3)>,
1117+L<ERR_error_string(3)|ERR_error_string(3)>,
1118+L<ERR_print_errors(3)|ERR_print_errors(3)>,
1119+L<ERR_load_crypto_strings(3)|ERR_load_crypto_strings(3)>,
1120+L<ERR_remove_state(3)|ERR_remove_state(3)>,
1121+L<ERR_put_error(3)|ERR_put_error(3)>,
1122+L<ERR_load_strings(3)|ERR_load_strings(3)>,
1123+L<SSL_get_error(3)|SSL_get_error(3)>
1124+
1125+=cut
1126diff -Naur openssl-0.9.8a.orig/doc/crypto/openssl_rand.pod openssl-0.9.8a/doc/crypto/openssl_rand.pod
1127--- openssl-0.9.8a.orig/doc/crypto/openssl_rand.pod 1970-01-01 00:00:00.000000000 +0000
1128+++ openssl-0.9.8a/doc/crypto/openssl_rand.pod 2005-11-14 03:59:59.000000000 +0000
1129@@ -0,0 +1,175 @@
1130+=pod
1131+
1132+=head1 NAME
1133+
1134+openssl_rand - pseudo-random number generator
1135+
1136+=head1 SYNOPSIS
1137+
1138+ #include <openssl/rand.h>
1139+
1140+ int RAND_set_rand_engine(ENGINE *engine);
1141+
1142+ int RAND_bytes(unsigned char *buf, int num);
1143+ int RAND_pseudo_bytes(unsigned char *buf, int num);
1144+
1145+ void RAND_seed(const void *buf, int num);
1146+ void RAND_add(const void *buf, int num, int entropy);
1147+ int RAND_status(void);
1148+
1149+ int RAND_load_file(const char *file, long max_bytes);
1150+ int RAND_write_file(const char *file);
1151+ const char *RAND_file_name(char *file, size_t num);
1152+
1153+ int RAND_egd(const char *path);
1154+
1155+ void RAND_set_rand_method(const RAND_METHOD *meth);
1156+ const RAND_METHOD *RAND_get_rand_method(void);
1157+ RAND_METHOD *RAND_SSLeay(void);
1158+
1159+ void RAND_cleanup(void);
1160+
1161+ /* For Win32 only */
1162+ void RAND_screen(void);
1163+ int RAND_event(UINT, WPARAM, LPARAM);
1164+
1165+=head1 DESCRIPTION
1166+
1167+Since the introduction of the ENGINE API, the recommended way of controlling
1168+default implementations is by using the ENGINE API functions. The default
1169+B<RAND_METHOD>, as set by RAND_set_rand_method() and returned by
1170+RAND_get_rand_method(), is only used if no ENGINE has been set as the default
1171+"rand" implementation. Hence, these two functions are no longer the recommened
1172+way to control defaults.
1173+
1174+If an alternative B<RAND_METHOD> implementation is being used (either set
1175+directly or as provided by an ENGINE module), then it is entirely responsible
1176+for the generation and management of a cryptographically secure PRNG stream. The
1177+mechanisms described below relate solely to the software PRNG implementation
1178+built in to OpenSSL and used by default.
1179+
1180+These functions implement a cryptographically secure pseudo-random
1181+number generator (PRNG). It is used by other library functions for
1182+example to generate random keys, and applications can use it when they
1183+need randomness.
1184+
1185+A cryptographic PRNG must be seeded with unpredictable data such as
1186+mouse movements or keys pressed at random by the user. This is
1187+described in L<RAND_add(3)|RAND_add(3)>. Its state can be saved in a seed file
1188+(see L<RAND_load_file(3)|RAND_load_file(3)>) to avoid having to go through the
1189+seeding process whenever the application is started.
1190+
1191+L<RAND_bytes(3)|RAND_bytes(3)> describes how to obtain random data from the
1192+PRNG.
1193+
1194+=head1 INTERNALS
1195+
1196+The RAND_SSLeay() method implements a PRNG based on a cryptographic
1197+hash function.
1198+
1199+The following description of its design is based on the SSLeay
1200+documentation:
1201+
1202+First up I will state the things I believe I need for a good RNG.
1203+
1204+=over 4
1205+
1206+=item 1
1207+
1208+A good hashing algorithm to mix things up and to convert the RNG 'state'
1209+to random numbers.
1210+
1211+=item 2
1212+
1213+An initial source of random 'state'.
1214+
1215+=item 3
1216+
1217+The state should be very large. If the RNG is being used to generate
1218+4096 bit RSA keys, 2 2048 bit random strings are required (at a minimum).
1219+If your RNG state only has 128 bits, you are obviously limiting the
1220+search space to 128 bits, not 2048. I'm probably getting a little
1221+carried away on this last point but it does indicate that it may not be
1222+a bad idea to keep quite a lot of RNG state. It should be easier to
1223+break a cipher than guess the RNG seed data.
1224+
1225+=item 4
1226+
1227+Any RNG seed data should influence all subsequent random numbers
1228+generated. This implies that any random seed data entered will have
1229+an influence on all subsequent random numbers generated.
1230+
1231+=item 5
1232+
1233+When using data to seed the RNG state, the data used should not be
1234+extractable from the RNG state. I believe this should be a
1235+requirement because one possible source of 'secret' semi random
1236+data would be a private key or a password. This data must
1237+not be disclosed by either subsequent random numbers or a
1238+'core' dump left by a program crash.
1239+
1240+=item 6
1241+
1242+Given the same initial 'state', 2 systems should deviate in their RNG state
1243+(and hence the random numbers generated) over time if at all possible.
1244+
1245+=item 7
1246+
1247+Given the random number output stream, it should not be possible to determine
1248+the RNG state or the next random number.
1249+
1250+=back
1251+
1252+The algorithm is as follows.
1253+
1254+There is global state made up of a 1023 byte buffer (the 'state'), a
1255+working hash value ('md'), and a counter ('count').
1256+
1257+Whenever seed data is added, it is inserted into the 'state' as
1258+follows.
1259+
1260+The input is chopped up into units of 20 bytes (or less for
1261+the last block). Each of these blocks is run through the hash
1262+function as follows: The data passed to the hash function
1263+is the current 'md', the same number of bytes from the 'state'
1264+(the location determined by in incremented looping index) as
1265+the current 'block', the new key data 'block', and 'count'
1266+(which is incremented after each use).
1267+The result of this is kept in 'md' and also xored into the
1268+'state' at the same locations that were used as input into the
1269+hash function. I
1270+believe this system addresses points 1 (hash function; currently
1271+SHA-1), 3 (the 'state'), 4 (via the 'md'), 5 (by the use of a hash
1272+function and xor).
1273+
1274+When bytes are extracted from the RNG, the following process is used.
1275+For each group of 10 bytes (or less), we do the following:
1276+
1277+Input into the hash function the local 'md' (which is initialized from
1278+the global 'md' before any bytes are generated), the bytes that are to
1279+be overwritten by the random bytes, and bytes from the 'state'
1280+(incrementing looping index). From this digest output (which is kept
1281+in 'md'), the top (up to) 10 bytes are returned to the caller and the
1282+bottom 10 bytes are xored into the 'state'.
1283+
1284+Finally, after we have finished 'num' random bytes for the caller,
1285+'count' (which is incremented) and the local and global 'md' are fed
1286+into the hash function and the results are kept in the global 'md'.
1287+
1288+I believe the above addressed points 1 (use of SHA-1), 6 (by hashing
1289+into the 'state' the 'old' data from the caller that is about to be
1290+overwritten) and 7 (by not using the 10 bytes given to the caller to
1291+update the 'state', but they are used to update 'md').
1292+
1293+So of the points raised, only 2 is not addressed (but see
1294+L<RAND_add(3)|RAND_add(3)>).
1295+
1296+=head1 SEE ALSO
1297+
1298+L<BN_rand(3)|BN_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
1299+L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_egd(3)|RAND_egd(3)>,
1300+L<RAND_bytes(3)|RAND_bytes(3)>,
1301+L<RAND_set_rand_method(3)|RAND_set_rand_method(3)>,
1302+L<RAND_cleanup(3)|RAND_cleanup(3)>
1303+
1304+=cut
1305diff -Naur openssl-0.9.8a.orig/doc/crypto/openssl_threads.pod openssl-0.9.8a/doc/crypto/openssl_threads.pod
1306--- openssl-0.9.8a.orig/doc/crypto/openssl_threads.pod 1970-01-01 00:00:00.000000000 +0000
1307+++ openssl-0.9.8a/doc/crypto/openssl_threads.pod 2005-11-14 03:59:59.000000000 +0000
1308@@ -0,0 +1,175 @@
1309+=pod
1310+
1311+=head1 NAME
1312+
1313+CRYPTO_set_locking_callback, CRYPTO_set_id_callback, CRYPTO_num_locks,
1314+CRYPTO_set_dynlock_create_callback, CRYPTO_set_dynlock_lock_callback,
1315+CRYPTO_set_dynlock_destroy_callback, CRYPTO_get_new_dynlockid,
1316+CRYPTO_destroy_dynlockid, CRYPTO_lock - OpenSSL thread support
1317+
1318+=head1 SYNOPSIS
1319+
1320+ #include <openssl/crypto.h>
1321+
1322+ void CRYPTO_set_locking_callback(void (*locking_function)(int mode,
1323+ int n, const char *file, int line));
1324+
1325+ void CRYPTO_set_id_callback(unsigned long (*id_function)(void));
1326+
1327+ int CRYPTO_num_locks(void);
1328+
1329+
1330+ /* struct CRYPTO_dynlock_value needs to be defined by the user */
1331+ struct CRYPTO_dynlock_value;
1332+
1333+ void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *
1334+ (*dyn_create_function)(char *file, int line));
1335+ void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function)
1336+ (int mode, struct CRYPTO_dynlock_value *l,
1337+ const char *file, int line));
1338+ void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function)
1339+ (struct CRYPTO_dynlock_value *l, const char *file, int line));
1340+
1341+ int CRYPTO_get_new_dynlockid(void);
1342+
1343+ void CRYPTO_destroy_dynlockid(int i);
1344+
1345+ void CRYPTO_lock(int mode, int n, const char *file, int line);
1346+
1347+ #define CRYPTO_w_lock(type) \
1348+ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
1349+ #define CRYPTO_w_unlock(type) \
1350+ CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
1351+ #define CRYPTO_r_lock(type) \
1352+ CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__)
1353+ #define CRYPTO_r_unlock(type) \
1354+ CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__)
1355+ #define CRYPTO_add(addr,amount,type) \
1356+ CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__)
1357+
1358+=head1 DESCRIPTION
1359+
1360+OpenSSL can safely be used in multi-threaded applications provided
1361+that at least two callback functions are set.
1362+
1363+locking_function(int mode, int n, const char *file, int line) is
1364+needed to perform locking on shared data structures.
1365+(Note that OpenSSL uses a number of global data structures that
1366+will be implicitly shared whenever multiple threads use OpenSSL.)
1367+Multi-threaded applications will crash at random if it is not set.
1368+
1369+locking_function() must be able to handle up to CRYPTO_num_locks()
1370+different mutex locks. It sets the B<n>-th lock if B<mode> &
1371+B<CRYPTO_LOCK>, and releases it otherwise.
1372+
1373+B<file> and B<line> are the file number of the function setting the
1374+lock. They can be useful for debugging.
1375+
1376+id_function(void) is a function that returns a thread ID, for example
1377+pthread_self() if it returns an integer (see NOTES below). It isn't
1378+needed on Windows nor on platforms where getpid() returns a different
1379+ID for each thread (see NOTES below).
1380+
1381+Additionally, OpenSSL supports dynamic locks, and sometimes, some parts
1382+of OpenSSL need it for better performance. To enable this, the following
1383+is required:
1384+
1385+=over 4
1386+
1387+=item *
1388+Three additional callback function, dyn_create_function, dyn_lock_function
1389+and dyn_destroy_function.
1390+
1391+=item *
1392+A structure defined with the data that each lock needs to handle.
1393+
1394+=back
1395+
1396+struct CRYPTO_dynlock_value has to be defined to contain whatever structure
1397+is needed to handle locks.
1398+
1399+dyn_create_function(const char *file, int line) is needed to create a
1400+lock. Multi-threaded applications might crash at random if it is not set.
1401+
1402+dyn_lock_function(int mode, CRYPTO_dynlock *l, const char *file, int line)
1403+is needed to perform locking off dynamic lock numbered n. Multi-threaded
1404+applications might crash at random if it is not set.
1405+
1406+dyn_destroy_function(CRYPTO_dynlock *l, const char *file, int line) is
1407+needed to destroy the lock l. Multi-threaded applications might crash at
1408+random if it is not set.
1409+
1410+CRYPTO_get_new_dynlockid() is used to create locks. It will call
1411+dyn_create_function for the actual creation.
1412+
1413+CRYPTO_destroy_dynlockid() is used to destroy locks. It will call
1414+dyn_destroy_function for the actual destruction.
1415+
1416+CRYPTO_lock() is used to lock and unlock the locks. mode is a bitfield
1417+describing what should be done with the lock. n is the number of the
1418+lock as returned from CRYPTO_get_new_dynlockid(). mode can be combined
1419+from the following values. These values are pairwise exclusive, with
1420+undefined behaviour if misused (for example, CRYPTO_READ and CRYPTO_WRITE
1421+should not be used together):
1422+
1423+ CRYPTO_LOCK 0x01
1424+ CRYPTO_UNLOCK 0x02
1425+ CRYPTO_READ 0x04
1426+ CRYPTO_WRITE 0x08
1427+
1428+=head1 RETURN VALUES
1429+
1430+CRYPTO_num_locks() returns the required number of locks.
1431+
1432+CRYPTO_get_new_dynlockid() returns the index to the newly created lock.
1433+
1434+The other functions return no values.
1435+
1436+=head1 NOTES
1437+
1438+You can find out if OpenSSL was configured with thread support:
1439+
1440+ #define OPENSSL_THREAD_DEFINES
1441+ #include <openssl/opensslconf.h>
1442+ #if defined(OPENSSL_THREADS)
1443+ // thread support enabled
1444+ #else
1445+ // no thread support
1446+ #endif
1447+
1448+Also, dynamic locks are currently not used internally by OpenSSL, but
1449+may do so in the future.
1450+
1451+Defining id_function(void) has it's own issues. Generally speaking,
1452+pthread_self() should be used, even on platforms where getpid() gives
1453+different answers in each thread, since that may depend on the machine
1454+the program is run on, not the machine where the program is being
1455+compiled. For instance, Red Hat 8 Linux and earlier used
1456+LinuxThreads, whose getpid() returns a different value for each
1457+thread. Red Hat 9 Linux and later use NPTL, which is
1458+Posix-conformant, and has a getpid() that returns the same value for
1459+all threads in a process. A program compiled on Red Hat 8 and run on
1460+Red Hat 9 will therefore see getpid() returning the same value for
1461+all threads.
1462+
1463+There is still the issue of platforms where pthread_self() returns
1464+something other than an integer. This is a bit unusual, and this
1465+manual has no cookbook solution for that case.
1466+
1467+=head1 EXAMPLES
1468+
1469+B<crypto/threads/mttest.c> shows examples of the callback functions on
1470+Solaris, Irix and Win32.
1471+
1472+=head1 HISTORY
1473+
1474+CRYPTO_set_locking_callback() and CRYPTO_set_id_callback() are
1475+available in all versions of SSLeay and OpenSSL.
1476+CRYPTO_num_locks() was added in OpenSSL 0.9.4.
1477+All functions dealing with dynamic locks were added in OpenSSL 0.9.5b-dev.
1478+
1479+=head1 SEE ALSO
1480+
1481+L<crypto(3)|crypto(3)>
1482+
1483+=cut
1484diff -Naur openssl-0.9.8a.orig/doc/crypto/rand.pod openssl-0.9.8a/doc/crypto/rand.pod
1485--- openssl-0.9.8a.orig/doc/crypto/rand.pod 2002-08-05 16:27:01.000000000 +0000
1486+++ openssl-0.9.8a/doc/crypto/rand.pod 1970-01-01 00:00:00.000000000 +0000
1487@@ -1,175 +0,0 @@
1488-=pod
1489-
1490-=head1 NAME
1491-
1492-rand - pseudo-random number generator
1493-
1494-=head1 SYNOPSIS
1495-
1496- #include <openssl/rand.h>
1497-
1498- int RAND_set_rand_engine(ENGINE *engine);
1499-
1500- int RAND_bytes(unsigned char *buf, int num);
1501- int RAND_pseudo_bytes(unsigned char *buf, int num);
1502-
1503- void RAND_seed(const void *buf, int num);
1504- void RAND_add(const void *buf, int num, int entropy);
1505- int RAND_status(void);
1506-
1507- int RAND_load_file(const char *file, long max_bytes);
1508- int RAND_write_file(const char *file);
1509- const char *RAND_file_name(char *file, size_t num);
1510-
1511- int RAND_egd(const char *path);
1512-
1513- void RAND_set_rand_method(const RAND_METHOD *meth);
1514- const RAND_METHOD *RAND_get_rand_method(void);
1515- RAND_METHOD *RAND_SSLeay(void);
1516-
1517- void RAND_cleanup(void);
1518-
1519- /* For Win32 only */
1520- void RAND_screen(void);
1521- int RAND_event(UINT, WPARAM, LPARAM);
1522-
1523-=head1 DESCRIPTION
1524-
1525-Since the introduction of the ENGINE API, the recommended way of controlling
1526-default implementations is by using the ENGINE API functions. The default
1527-B<RAND_METHOD>, as set by RAND_set_rand_method() and returned by
1528-RAND_get_rand_method(), is only used if no ENGINE has been set as the default
1529-"rand" implementation. Hence, these two functions are no longer the recommened
1530-way to control defaults.
1531-
1532-If an alternative B<RAND_METHOD> implementation is being used (either set
1533-directly or as provided by an ENGINE module), then it is entirely responsible
1534-for the generation and management of a cryptographically secure PRNG stream. The
1535-mechanisms described below relate solely to the software PRNG implementation
1536-built in to OpenSSL and used by default.
1537-
1538-These functions implement a cryptographically secure pseudo-random
1539-number generator (PRNG). It is used by other library functions for
1540-example to generate random keys, and applications can use it when they
1541-need randomness.
1542-
1543-A cryptographic PRNG must be seeded with unpredictable data such as
1544-mouse movements or keys pressed at random by the user. This is
1545-described in L<RAND_add(3)|RAND_add(3)>. Its state can be saved in a seed file
1546-(see L<RAND_load_file(3)|RAND_load_file(3)>) to avoid having to go through the
1547-seeding process whenever the application is started.
1548-
1549-L<RAND_bytes(3)|RAND_bytes(3)> describes how to obtain random data from the
1550-PRNG.
1551-
1552-=head1 INTERNALS
1553-
1554-The RAND_SSLeay() method implements a PRNG based on a cryptographic
1555-hash function.
1556-
1557-The following description of its design is based on the SSLeay
1558-documentation:
1559-
1560-First up I will state the things I believe I need for a good RNG.
1561-
1562-=over 4
1563-
1564-=item 1
1565-
1566-A good hashing algorithm to mix things up and to convert the RNG 'state'
1567-to random numbers.
1568-
1569-=item 2
1570-
1571-An initial source of random 'state'.
1572-
1573-=item 3
1574-
1575-The state should be very large. If the RNG is being used to generate
1576-4096 bit RSA keys, 2 2048 bit random strings are required (at a minimum).
1577-If your RNG state only has 128 bits, you are obviously limiting the
1578-search space to 128 bits, not 2048. I'm probably getting a little
1579-carried away on this last point but it does indicate that it may not be
1580-a bad idea to keep quite a lot of RNG state. It should be easier to
1581-break a cipher than guess the RNG seed data.
1582-
1583-=item 4
1584-
1585-Any RNG seed data should influence all subsequent random numbers
1586-generated. This implies that any random seed data entered will have
1587-an influence on all subsequent random numbers generated.
1588-
1589-=item 5
1590-
1591-When using data to seed the RNG state, the data used should not be
1592-extractable from the RNG state. I believe this should be a
1593-requirement because one possible source of 'secret' semi random
1594-data would be a private key or a password. This data must
1595-not be disclosed by either subsequent random numbers or a
1596-'core' dump left by a program crash.
1597-
1598-=item 6
1599-
1600-Given the same initial 'state', 2 systems should deviate in their RNG state
1601-(and hence the random numbers generated) over time if at all possible.
1602-
1603-=item 7
1604-
1605-Given the random number output stream, it should not be possible to determine
1606-the RNG state or the next random number.
1607-
1608-=back
1609-
1610-The algorithm is as follows.
1611-
1612-There is global state made up of a 1023 byte buffer (the 'state'), a
1613-working hash value ('md'), and a counter ('count').
1614-
1615-Whenever seed data is added, it is inserted into the 'state' as
1616-follows.
1617-
1618-The input is chopped up into units of 20 bytes (or less for
1619-the last block). Each of these blocks is run through the hash
1620-function as follows: The data passed to the hash function
1621-is the current 'md', the same number of bytes from the 'state'
1622-(the location determined by in incremented looping index) as
1623-the current 'block', the new key data 'block', and 'count'
1624-(which is incremented after each use).
1625-The result of this is kept in 'md' and also xored into the
1626-'state' at the same locations that were used as input into the
1627-hash function. I
1628-believe this system addresses points 1 (hash function; currently
1629-SHA-1), 3 (the 'state'), 4 (via the 'md'), 5 (by the use of a hash
1630-function and xor).
1631-
1632-When bytes are extracted from the RNG, the following process is used.
1633-For each group of 10 bytes (or less), we do the following:
1634-
1635-Input into the hash function the local 'md' (which is initialized from
1636-the global 'md' before any bytes are generated), the bytes that are to
1637-be overwritten by the random bytes, and bytes from the 'state'
1638-(incrementing looping index). From this digest output (which is kept
1639-in 'md'), the top (up to) 10 bytes are returned to the caller and the
1640-bottom 10 bytes are xored into the 'state'.
1641-
1642-Finally, after we have finished 'num' random bytes for the caller,
1643-'count' (which is incremented) and the local and global 'md' are fed
1644-into the hash function and the results are kept in the global 'md'.
1645-
1646-I believe the above addressed points 1 (use of SHA-1), 6 (by hashing
1647-into the 'state' the 'old' data from the caller that is about to be
1648-overwritten) and 7 (by not using the 10 bytes given to the caller to
1649-update the 'state', but they are used to update 'md').
1650-
1651-So of the points raised, only 2 is not addressed (but see
1652-L<RAND_add(3)|RAND_add(3)>).
1653-
1654-=head1 SEE ALSO
1655-
1656-L<BN_rand(3)|BN_rand(3)>, L<RAND_add(3)|RAND_add(3)>,
1657-L<RAND_load_file(3)|RAND_load_file(3)>, L<RAND_egd(3)|RAND_egd(3)>,
1658-L<RAND_bytes(3)|RAND_bytes(3)>,
1659-L<RAND_set_rand_method(3)|RAND_set_rand_method(3)>,
1660-L<RAND_cleanup(3)|RAND_cleanup(3)>
1661-
1662-=cut
1663diff -Naur openssl-0.9.8a.orig/doc/crypto/rsa.pod openssl-0.9.8a/doc/crypto/rsa.pod
1664--- openssl-0.9.8a.orig/doc/crypto/rsa.pod 2002-08-04 21:08:36.000000000 +0000
1665+++ openssl-0.9.8a/doc/crypto/rsa.pod 2005-11-14 03:59:59.000000000 +0000
1666@@ -108,7 +108,7 @@
1667 =head1 SEE ALSO
1668
1669 L<rsa(1)|rsa(1)>, L<bn(3)|bn(3)>, L<dsa(3)|dsa(3)>, L<dh(3)|dh(3)>,
1670-L<rand(3)|rand(3)>, L<engine(3)|engine(3)>, L<RSA_new(3)|RSA_new(3)>,
1671+L<openssl_rand(3)|openssl_rand(3)>, L<engine(3)|engine(3)>, L<RSA_new(3)|RSA_new(3)>,
1672 L<RSA_public_encrypt(3)|RSA_public_encrypt(3)>,
1673 L<RSA_sign(3)|RSA_sign(3)>, L<RSA_size(3)|RSA_size(3)>,
1674 L<RSA_generate_key(3)|RSA_generate_key(3)>,
1675diff -Naur openssl-0.9.8a.orig/doc/crypto/threads.pod openssl-0.9.8a/doc/crypto/threads.pod
1676--- openssl-0.9.8a.orig/doc/crypto/threads.pod 2005-06-18 05:52:23.000000000 +0000
1677+++ openssl-0.9.8a/doc/crypto/threads.pod 1970-01-01 00:00:00.000000000 +0000
1678@@ -1,175 +0,0 @@
1679-=pod
1680-
1681-=head1 NAME
1682-
1683-CRYPTO_set_locking_callback, CRYPTO_set_id_callback, CRYPTO_num_locks,
1684-CRYPTO_set_dynlock_create_callback, CRYPTO_set_dynlock_lock_callback,
1685-CRYPTO_set_dynlock_destroy_callback, CRYPTO_get_new_dynlockid,
1686-CRYPTO_destroy_dynlockid, CRYPTO_lock - OpenSSL thread support
1687-
1688-=head1 SYNOPSIS
1689-
1690- #include <openssl/crypto.h>
1691-
1692- void CRYPTO_set_locking_callback(void (*locking_function)(int mode,
1693- int n, const char *file, int line));
1694-
1695- void CRYPTO_set_id_callback(unsigned long (*id_function)(void));
1696-
1697- int CRYPTO_num_locks(void);
1698-
1699-
1700- /* struct CRYPTO_dynlock_value needs to be defined by the user */
1701- struct CRYPTO_dynlock_value;
1702-
1703- void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *
1704- (*dyn_create_function)(char *file, int line));
1705- void CRYPTO_set_dynlock_lock_callback(void (*dyn_lock_function)
1706- (int mode, struct CRYPTO_dynlock_value *l,
1707- const char *file, int line));
1708- void CRYPTO_set_dynlock_destroy_callback(void (*dyn_destroy_function)
1709- (struct CRYPTO_dynlock_value *l, const char *file, int line));
1710-
1711- int CRYPTO_get_new_dynlockid(void);
1712-
1713- void CRYPTO_destroy_dynlockid(int i);
1714-
1715- void CRYPTO_lock(int mode, int n, const char *file, int line);
1716-
1717- #define CRYPTO_w_lock(type) \
1718- CRYPTO_lock(CRYPTO_LOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
1719- #define CRYPTO_w_unlock(type) \
1720- CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_WRITE,type,__FILE__,__LINE__)
1721- #define CRYPTO_r_lock(type) \
1722- CRYPTO_lock(CRYPTO_LOCK|CRYPTO_READ,type,__FILE__,__LINE__)
1723- #define CRYPTO_r_unlock(type) \
1724- CRYPTO_lock(CRYPTO_UNLOCK|CRYPTO_READ,type,__FILE__,__LINE__)
1725- #define CRYPTO_add(addr,amount,type) \
1726- CRYPTO_add_lock(addr,amount,type,__FILE__,__LINE__)
1727-
1728-=head1 DESCRIPTION
1729-
1730-OpenSSL can safely be used in multi-threaded applications provided
1731-that at least two callback functions are set.
1732-
1733-locking_function(int mode, int n, const char *file, int line) is
1734-needed to perform locking on shared data structures.
1735-(Note that OpenSSL uses a number of global data structures that
1736-will be implicitly shared whenever multiple threads use OpenSSL.)
1737-Multi-threaded applications will crash at random if it is not set.
1738-
1739-locking_function() must be able to handle up to CRYPTO_num_locks()
1740-different mutex locks. It sets the B<n>-th lock if B<mode> &
1741-B<CRYPTO_LOCK>, and releases it otherwise.
1742-
1743-B<file> and B<line> are the file number of the function setting the
1744-lock. They can be useful for debugging.
1745-
1746-id_function(void) is a function that returns a thread ID, for example
1747-pthread_self() if it returns an integer (see NOTES below). It isn't
1748-needed on Windows nor on platforms where getpid() returns a different
1749-ID for each thread (see NOTES below).
1750-
1751-Additionally, OpenSSL supports dynamic locks, and sometimes, some parts
1752-of OpenSSL need it for better performance. To enable this, the following
1753-is required:
1754-
1755-=over 4
1756-
1757-=item *
1758-Three additional callback function, dyn_create_function, dyn_lock_function
1759-and dyn_destroy_function.
1760-
1761-=item *
1762-A structure defined with the data that each lock needs to handle.
1763-
1764-=back
1765-
1766-struct CRYPTO_dynlock_value has to be defined to contain whatever structure
1767-is needed to handle locks.
1768-
1769-dyn_create_function(const char *file, int line) is needed to create a
1770-lock. Multi-threaded applications might crash at random if it is not set.
1771-
1772-dyn_lock_function(int mode, CRYPTO_dynlock *l, const char *file, int line)
1773-is needed to perform locking off dynamic lock numbered n. Multi-threaded
1774-applications might crash at random if it is not set.
1775-
1776-dyn_destroy_function(CRYPTO_dynlock *l, const char *file, int line) is
1777-needed to destroy the lock l. Multi-threaded applications might crash at
1778-random if it is not set.
1779-
1780-CRYPTO_get_new_dynlockid() is used to create locks. It will call
1781-dyn_create_function for the actual creation.
1782-
1783-CRYPTO_destroy_dynlockid() is used to destroy locks. It will call
1784-dyn_destroy_function for the actual destruction.
1785-
1786-CRYPTO_lock() is used to lock and unlock the locks. mode is a bitfield
1787-describing what should be done with the lock. n is the number of the
1788-lock as returned from CRYPTO_get_new_dynlockid(). mode can be combined
1789-from the following values. These values are pairwise exclusive, with
1790-undefined behaviour if misused (for example, CRYPTO_READ and CRYPTO_WRITE
1791-should not be used together):
1792-
1793- CRYPTO_LOCK 0x01
1794- CRYPTO_UNLOCK 0x02
1795- CRYPTO_READ 0x04
1796- CRYPTO_WRITE 0x08
1797-
1798-=head1 RETURN VALUES
1799-
1800-CRYPTO_num_locks() returns the required number of locks.
1801-
1802-CRYPTO_get_new_dynlockid() returns the index to the newly created lock.
1803-
1804-The other functions return no values.
1805-
1806-=head1 NOTES
1807-
1808-You can find out if OpenSSL was configured with thread support:
1809-
1810- #define OPENSSL_THREAD_DEFINES
1811- #include <openssl/opensslconf.h>
1812- #if defined(OPENSSL_THREADS)
1813- // thread support enabled
1814- #else
1815- // no thread support
1816- #endif
1817-
1818-Also, dynamic locks are currently not used internally by OpenSSL, but
1819-may do so in the future.
1820-
1821-Defining id_function(void) has it's own issues. Generally speaking,
1822-pthread_self() should be used, even on platforms where getpid() gives
1823-different answers in each thread, since that may depend on the machine
1824-the program is run on, not the machine where the program is being
1825-compiled. For instance, Red Hat 8 Linux and earlier used
1826-LinuxThreads, whose getpid() returns a different value for each
1827-thread. Red Hat 9 Linux and later use NPTL, which is
1828-Posix-conformant, and has a getpid() that returns the same value for
1829-all threads in a process. A program compiled on Red Hat 8 and run on
1830-Red Hat 9 will therefore see getpid() returning the same value for
1831-all threads.
1832-
1833-There is still the issue of platforms where pthread_self() returns
1834-something other than an integer. This is a bit unusual, and this
1835-manual has no cookbook solution for that case.
1836-
1837-=head1 EXAMPLES
1838-
1839-B<crypto/threads/mttest.c> shows examples of the callback functions on
1840-Solaris, Irix and Win32.
1841-
1842-=head1 HISTORY
1843-
1844-CRYPTO_set_locking_callback() and CRYPTO_set_id_callback() are
1845-available in all versions of SSLeay and OpenSSL.
1846-CRYPTO_num_locks() was added in OpenSSL 0.9.4.
1847-All functions dealing with dynamic locks were added in OpenSSL 0.9.5b-dev.
1848-
1849-=head1 SEE ALSO
1850-
1851-L<crypto(3)|crypto(3)>
1852-
1853-=cut
1854diff -Naur openssl-0.9.8a.orig/doc/ssl/SSL_get_error.pod openssl-0.9.8a/doc/ssl/SSL_get_error.pod
1855--- openssl-0.9.8a.orig/doc/ssl/SSL_get_error.pod 2005-03-30 11:50:14.000000000 +0000
1856+++ openssl-0.9.8a/doc/ssl/SSL_get_error.pod 2005-11-14 03:59:59.000000000 +0000
1857@@ -105,7 +105,7 @@
1858
1859 =head1 SEE ALSO
1860
1861-L<ssl(3)|ssl(3)>, L<err(3)|err(3)>
1862+L<ssl(3)|ssl(3)>, L<openssl_err(3)|openssl_err(3)>
1863
1864 =head1 HISTORY
1865
1866diff -Naur openssl-0.9.8a.orig/doc/ssl/SSL_want.pod openssl-0.9.8a/doc/ssl/SSL_want.pod
1867--- openssl-0.9.8a.orig/doc/ssl/SSL_want.pod 2005-03-30 11:50:14.000000000 +0000
1868+++ openssl-0.9.8a/doc/ssl/SSL_want.pod 2005-11-14 03:59:59.000000000 +0000
1869@@ -72,6 +72,6 @@
1870
1871 =head1 SEE ALSO
1872
1873-L<ssl(3)|ssl(3)>, L<err(3)|err(3)>, L<SSL_get_error(3)|SSL_get_error(3)>
1874+L<ssl(3)|ssl(3)>, L<openssl_err(3)|openssl_err(3)>, L<SSL_get_error(3)|SSL_get_error(3)>
1875
1876 =cut
1877--- ./FAQ.orig
1878+++ ./FAQ
1879@@ -724,7 +724,7 @@
1880 CRYPTO_set_id_callback(), for all versions of OpenSSL up to and
1881 including 0.9.8[abc...]. As of version 1.0.0, CRYPTO_set_id_callback()
1882 and associated APIs are deprecated by CRYPTO_THREADID_set_callback()
1883-and friends. This is described in the threads(3) manpage.
1884+and friends. This is described in the openssl_threads(3) manpage.
1885
1886 * I've compiled a program under Windows and it crashes: why?
1887