]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
md_rand.c thread safety
[thirdparty/openssl.git] / CHANGES
CommitLineData
81a6c781 1
f1c236f8 2 OpenSSL CHANGES
651d0aff
RE
3 _______________
4
a9d2bc49 5 Changes between 0.9.6 and 0.9.7 [xx XXX 2001]
a43cf9fa 6
e9ad0d2c
BM
7 OpenSSL 0.9.6a/0.9.6b (bugfix releases, 5 Apr 2001 and 9 July 2001)
8 and OpenSSL 0.9.7 were developped in parallel, based on OpenSSL 0.9.6.
9
a9d2bc49 10 Change log entries are tagged as follows:
daba492c
BM
11 -) applies to 0.9.6a/0.9.6b/0.9.6c only
12 *) applies to 0.9.6a/0.9.6b/0.9.6c and 0.9.7
a9d2bc49
BM
13 +) applies to 0.9.7 only
14
24cff6ce
BM
15 *) In
16
17 RSA_eay_public_encrypt
18 RSA_eay_private_decrypt
19 RSA_eay_private_encrypt (signing)
20 RSA_eay_public_decrypt (signature verification)
21
22 (default implementations for RSA_public_encrypt,
23 RSA_private_decrypt, RSA_private_encrypt, RSA_public_decrypt),
24 always reject numbers >= n.
25 [Bodo Moeller]
26
daba492c
BM
27 *) In crypto/rand/md_rand.c, use a new short-time lock CRYPTO_LOCK_RAND2
28 to synchronize access to 'locking_thread'. This is necessary on
29 systems where access to 'locking_thread' (an 'unsigned long'
30 variable) is not atomic.
31 [Bodo Moeller]
32
badb910f
BM
33 *) In crypto/rand/md_rand.c, set 'locking_thread' to current thread's ID
34 *before* setting the 'crypto_lock_rand' flag. The previous code had
35 a race condition if 0 is a valid thread ID.
36 [Travis Vitek <vitek@roguewave.com>]
37
c518ade1
BL
38 +) Cleanup of EVP macros.
39 [Ben Laurie]
40
41 +) Change historical references to {NID,SN,LN}_des_ede and ede3 to add the
42 correct _ecb suffix.
43 [Ben Laurie]
44
ee306a13
DSH
45 +) Add initial OCSP responder support to ocsp application. The
46 revocation information is handled using the text based index
47 use by the ca application. The responder can either handle
48 requests generated internally, supplied in files (for example
49 via a CGI script) or using an internal minimal server.
50 [Steve Henson]
51
e452de9d
RL
52 +) Add configuration choices to get zlib compression for TLS.
53 [Richard Levitte]
54
0665dd68
RL
55 +) Changes to Kerberos SSL for RFC 2712 compliance:
56 1. Implemented real KerberosWrapper, instead of just using
57 KRB5 AP_REQ message. [Thanks to Simon Wilkinson <sxw@sxw.org.uk>]
58 2. Implemented optional authenticator field of KerberosWrapper.
59
60 Added openssl-style ASN.1 macros for Kerberos ticket, ap_req,
61 and authenticator structs; see crypto/krb5/.
62
63 Generalized Kerberos calls to support multiple Kerberos libraries.
64 [Vern Staats <staatsvr@asc.hpc.mil>,
65 Jeffrey Altman <jaltman@columbia.edu>
66 via Richard Levitte]
67
af436bc1
GT
68 +) Cause 'openssl speed' to use fully hard-coded DSA keys as it
69 already does with RSA. testdsa.h now has 'priv_key/pub_key'
70 values for each of the key sizes rather than having just
71 parameters (and 'speed' generating keys each time).
72 [Geoff Thorpe]
73
e9ad0d2c
BM
74 -) OpenSSL 0.9.6b released [9 July 2001]
75
76 *) Change ssleay_rand_bytes (crypto/rand/md_rand.c)
77 to avoid a SSLeay/OpenSSL PRNG weakness pointed out by
78 Markku-Juhani O. Saarinen <markku-juhani.saarinen@nokia.com>:
79 PRNG state recovery was possible based on the output of
80 one PRNG request appropriately sized to gain knowledge on
81 'md' followed by enough consecutive 1-byte PRNG requests
82 to traverse all of 'state'.
83
84 1. When updating 'md_local' (the current thread's copy of 'md')
85 during PRNG output generation, hash all of the previous
86 'md_local' value, not just the half used for PRNG output.
87
88 2. Make the number of bytes from 'state' included into the hash
89 independent from the number of PRNG bytes requested.
90
91 The first measure alone would be sufficient to avoid
92 Markku-Juhani's attack. (Actually it had never occurred
93 to me that the half of 'md_local' used for chaining was the
94 half from which PRNG output bytes were taken -- I had always
95 assumed that the secret half would be used.) The second
96 measure makes sure that additional data from 'state' is never
97 mixed into 'md_local' in small portions; this heuristically
98 further strengthens the PRNG.
99 [Bodo Moeller]
100
f31b1250
BL
101 +) Speed up EVP routines.
102 Before:
103encrypt
104type 8 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
105des-cbc 4408.85k 5560.51k 5778.46k 5862.20k 5825.16k
106des-cbc 4389.55k 5571.17k 5792.23k 5846.91k 5832.11k
107des-cbc 4394.32k 5575.92k 5807.44k 5848.37k 5841.30k
108decrypt
109des-cbc 3482.66k 5069.49k 5496.39k 5614.16k 5639.28k
110des-cbc 3480.74k 5068.76k 5510.34k 5609.87k 5635.52k
111des-cbc 3483.72k 5067.62k 5504.60k 5708.01k 5724.80k
112 After:
113encrypt
c148d709 114des-cbc 4660.16k 5650.19k 5807.19k 5827.13k 5783.32k
f31b1250 115decrypt
c148d709 116des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
f31b1250
BL
117 [Ben Laurie]
118
93dbd835
BM
119 *) Fix crypto/bn/asm/mips3.s.
120 [Andy Polyakov]
121
43f9391b
LJ
122 *) When only the key is given to "enc", the IV is undefined. Print out
123 an error message in this case.
124 [Lutz Jaenicke]
125
c80410c5
RL
126 +) Added the OS2-EMX target.
127 ["Brian Havard" <brianh@kheldar.apana.org.au> and Richard Levitte]
128
b7a26e6d
DSH
129 +) Rewrite apps to use NCONF routines instead of the old CONF. New functions
130 to support NCONF routines in extension code. New function CONF_set_nconf()
131 to allow functions which take an NCONF to also handle the old LHASH
132 structure: this means that the old CONF compatible routines can be
133 retained (in particular wrt extensions) without having to duplicate the
134 code. New function X509V3_add_ext_nconf_sk to add extensions to a stack.
135 [Steve Henson]
136
1e325f61
DSH
137 *) Handle special case when X509_NAME is empty in X509 printing routines.
138 [Steve Henson]
139
c458a331
BM
140 *) In dsa_do_verify (crypto/dsa/dsa_ossl.c), verify that r and s are
141 positive and less than q.
142 [Bodo Moeller]
143
fd3e027f 144 +) Enhance the general user interface with mechanisms for inner control
235dd0a2
RL
145 and with pssibilities to have yes/no kind of prompts.
146 [Richard Levitte]
147
d63c6bd3 148 +) Change all calls to low level digest routines in the library and
323f289c
DSH
149 applications to use EVP. Add missing calls to HMAC_cleanup() and
150 don't assume HMAC_CTX can be copied using memcpy().
151 [Verdon Walker <VWalker@novell.com>, Steve Henson]
152
839590f5
RL
153 +) Add the possibility to control engines through control names but with
154 arbitrary arguments instead of just a string.
155 Change the key loaders to take a UI_METHOD instead of a callback
156 function pointer. NOTE: this breaks binary compatibility with earlier
157 versions of OpenSSL [engine].
158 Addapt the nCipher code for these new conditions and add a card insertion
159 callback.
160 [Richard Levitte]
161
9ad0f681
RL
162 +) Enhance the general user interface with mechanisms to better support
163 dialog box interfaces, application-defined prompts, the possibility
164 to use defaults (for example default passwords from somewhere else)
165 and interrupts/cancelations.
166 [Richard Levitte]
167
3cc1f498
DSH
168 *) Don't change *pointer in CRYPTO_add_lock() is add_lock_callback is
169 used: it isn't thread safe and the add_lock_callback should handle
170 that itself.
171 [Paul Rose <Paul.Rose@bridge.com>]
172
285b4275
BM
173 *) Verify that incoming data obeys the block size in
174 ssl3_enc (ssl/s3_enc.c) and tls1_enc (ssl/t1_enc.c).
175 [Bodo Moeller]
176
f2a253e0
DSH
177 +) Tidy up PKCS#12 attribute handling. Add support for the CSP name
178 attribute in PKCS#12 files, add new -CSP option to pkcs12 utility.
179 [Steve Henson]
180
ecf18606
BM
181 *) Fix OAEP check.
182