]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
Bugfixes provided by "Stephen Hinton" <shinton@netopia.com>.
[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
54fbc77d
LJ
15 *) Fix buggy behaviour of BIO_get_num_renegotiates() and BIO_ctrl()
16 for BIO_C_GET_WRITE_BUF_SIZE ("Stephen Hinton" <shinton@netopia.com>).
17 [Lutz Jaenicke]
18
6bc847e4
RL
19 *) Rework the configuration and shared library support for Tru64 Unix.
20 The configuration part makes use of modern compiler features and
21 still retains old compiler behavior for those that run older versions
22 of the OS. The shared library support part includes a variant that
23 uses the RPATH feature, and is available through the speciel
24 configuration target "alpha-cc-rpath", which will never be selected
25 automatically.
26 [Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu> via Richard Levitte]
27
37a7cd1a
BM
28 *) In ssl3_get_key_exchange (ssl/s3_clnt.c), call ssl3_get_message()
29 with the same message size as in ssl3_get_certificate_request().
30 Otherwise, if no ServerKeyExchange message occurs, CertificateRequest
31 messages might inadvertently be reject as too long.
32 [Petr Lampa <lampa@fee.vutbr.cz>]
33
06da6e49
LJ
34 +) Move SSL_OP_TLS_ROLLBACK_BUG out of the SSL_OP_ALL list of recommended
35 bug workarounds. Rollback attack detection is a security feature.
6383bbe5 36 The problem will only arise on OpenSSL servers when TLSv1 is not
06da6e49
LJ
37 available (sslv3_server_method() or SSL_OP_NO_TLSv1).
38 Software authors not wanting to support TLSv1 will have special reasons
39 for their choice and can explicitly enable this option.
40 [Bodo Moeller, Lutz Jaenicke]
41
dbad1690
BL
42 +) Rationalise EVP so it can be extended: don't include a union of
43 cipher/digest structures, add init/cleanup functions. This also reduces
44 the number of header dependencies.
45 [Ben Laurie]
46
8408f4fb
BL
47 +) Make DES key schedule conform to the usual scheme, as well as
48 correcting its structure. This means that calls to DES functions
49 now have to pass a pointer to a des_key_schedule instead of a
50 plain des_key_schedule (which was actually always a pointer
51 anyway).
dbad1690
BL
52 [Ben Laurie]
53
6d03b73e
AP
54 +) Enhanced support for IA-64 Unix platforms (well, Linux and HP-UX).
55 [Andy Polyakov]
56
1f0c9ad7
LJ
57 *) Modified SSL library such that the verify_callback that has been set
58 specificly for an SSL object with SSL_set_verify() is actually being
59 used. Before the change, a verify_callback set with this function was
60 ignored and the verify_callback() set in the SSL_CTX at the time of
61 the call was used. New function X509_STORE_CTX_set_verify_cb() introduced
62 to allow the necessary settings.
63 [Lutz Jaenicke]
64
19da1300
DSH
65 +) Initial reduction of linker bloat: the use of some functions, such as
66 PEM causes large amounts of unused functions to be linked in due to
67 poor organisation. For example pem_all.c contains every PEM function
68 which has a knock on effect of linking in large amounts of (unused)
69 ASN1 code. Grouping together similar functions and splitting unrelated
70 functions prevents this.
71 [Steve Henson]
72
06efc222
LJ
73 *) Initialize static variable in crypto/dsa/dsa_lib.c and crypto/dh/dh_lib.c
74 explicitely to NULL, as at least on Solaris 8 this seems not always to be
75 done automatically (in contradiction to the requirements of the C
76 standard). This made problems when used from OpenSSH.
a75b1915
LJ
77 [Lutz Jaenicke]
78
6aecef81
BM
79 *) In OpenSSL 0.9.6a and 0.9.6b, crypto/dh/dh_key.c ignored
80 dh->length and always used
81
82 BN_rand_range(priv_key, dh->p).
83
84 BN_rand_range() is not necessary for Diffie-Hellman, and this
85 specific range makes Diffie-Hellman unnecessarily inefficient if
86 dh->length (recommended exponent length) is much smaller than the
87 length of dh->p. We could use BN_rand_range() if the order of
88 the subgroup was stored in the DH structure, but we only have
89 dh->length.
90
91 So switch back to
92
93 BN_rand(priv_key, l, ...)
94
95 where 'l' is dh->length if this is defined, or BN_num_bits(dh->p)-1
96 otherwise.
97 [Bodo Moeller]
98
24cff6ce
BM
99 *) In
100
101 RSA_eay_public_encrypt
102 RSA_eay_private_decrypt
103 RSA_eay_private_encrypt (signing)
104 RSA_eay_public_decrypt (signature verification)
105
106 (default implementations for RSA_public_encrypt,
107 RSA_private_decrypt, RSA_private_encrypt, RSA_public_decrypt),
108 always reject numbers >= n.
109 [Bodo Moeller]
110
daba492c
BM
111 *) In crypto/rand/md_rand.c, use a new short-time lock CRYPTO_LOCK_RAND2
112 to synchronize access to 'locking_thread'. This is necessary on
113 systems where access to 'locking_thread' (an 'unsigned long'
114 variable) is not atomic.
115 [Bodo Moeller]
116
badb910f
BM
117 *) In crypto/rand/md_rand.c, set 'locking_thread' to current thread's ID
118 *before* setting the 'crypto_lock_rand' flag. The previous code had
119 a race condition if 0 is a valid thread ID.
120 [Travis Vitek <vitek@roguewave.com>]
121
c518ade1
BL
122 +) Cleanup of EVP macros.
123 [Ben Laurie]
124
125 +) Change historical references to {NID,SN,LN}_des_ede and ede3 to add the
126 correct _ecb suffix.
127 [Ben Laurie]
128
ee306a13
DSH
129 +) Add initial OCSP responder support to ocsp application. The
130 revocation information is handled using the text based index
131 use by the ca application. The responder can either handle
132 requests generated internally, supplied in files (for example
133 via a CGI script) or using an internal minimal server.
134 [Steve Henson]
135
e452de9d
RL
136 +) Add configuration choices to get zlib compression for TLS.
137 [Richard Levitte]
138
0665dd68
RL
139 +) Changes to Kerberos SSL for RFC 2712 compliance:
140 1. Implemented real KerberosWrapper, instead of just using
141 KRB5 AP_REQ message. [Thanks to Simon Wilkinson <sxw@sxw.org.uk>]
142 2. Implemented optional authenticator field of KerberosWrapper.
143
144 Added openssl-style ASN.1 macros for Kerberos ticket, ap_req,
145 and authenticator structs; see crypto/krb5/.
146
147 Generalized Kerberos calls to support multiple Kerberos libraries.
148 [Vern Staats <staatsvr@asc.hpc.mil>,
149 Jeffrey Altman <jaltman@columbia.edu>
150 via Richard Levitte]
151
af436bc1
GT
152 +) Cause 'openssl speed' to use fully hard-coded DSA keys as it
153 already does with RSA. testdsa.h now has 'priv_key/pub_key'
154 values for each of the key sizes rather than having just
155 parameters (and 'speed' generating keys each time).
156 [Geoff Thorpe]
157
e9ad0d2c
BM
158 -) OpenSSL 0.9.6b released [9 July 2001]
159
160 *) Change ssleay_rand_bytes (crypto/rand/md_rand.c)
161 to avoid a SSLeay/OpenSSL PRNG weakness pointed out by
162 Markku-Juhani O. Saarinen <markku-juhani.saarinen@nokia.com>:
163 PRNG state recovery was possible based on the output of
164 one PRNG request appropriately sized to gain knowledge on
165 'md' followed by enough consecutive 1-byte PRNG requests
166 to traverse all of 'state'.
167
168 1. When updating 'md_local' (the current thread's copy of 'md')
169 during PRNG output generation, hash all of the previous
170 'md_local' value, not just the half used for PRNG output.
171
172 2. Make the number of bytes from 'state' included into the hash
173 independent from the number of PRNG bytes requested.
174
175 The first measure alone would be sufficient to avoid
176 Markku-Juhani's attack. (Actually it had never occurred
177 to me that the half of 'md_local' used for chaining was the
178 half from which PRNG output bytes were taken -- I had always
179 assumed that the secret half would be used.) The second
180 measure makes sure that additional data from 'state' is never
181 mixed into 'md_local' in small portions; this heuristically
182 further strengthens the PRNG.
183 [Bodo Moeller]
184
f31b1250
BL
185 +) Speed up EVP routines.
186 Before:
187encrypt
188type 8 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
189des-cbc 4408.85k 5560.51k 5778.46k 5862.20k 5825.16k
190des-cbc 4389.55k 5571.17k 5792.23k 5846.91k 5832.11k
191des-cbc 4394.32k 5575.92k 5807.44k 5848.37k 5841.30k
192decrypt
193des-cbc 3482.66k 5069.49k 5496.39k 5614.16k 5639.28k
194des-cbc 3480.74k 5068.76k 5510.34k 5609.87k 5635.52k
195des-cbc 3483.72k 5067.62k 5504.60k 5708.01k 5724.80k
196 After:
197encrypt
c148d709 198des-cbc 4660.16k 5650.19k 5807.19k 5827.13k 5783.32k
f31b1250 199decrypt
c148d709 200des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k
f31b1250
BL
201 [Ben Laurie]
202
93dbd835
BM
203 *) Fix crypto/bn/asm/mips3.s.
204 [Andy Polyakov]
205
43f9391b
LJ
206 *) When only the key is given to "enc", the IV is undefined. Print out
207 an error message in this case.
208 [Lutz Jaenicke]
209
c80410c5
RL
210 +) Added the OS2-EMX target.
211 ["Brian Havard" <brianh@kheldar.apana.org.au> and Richard Levitte]
212
b7a26e6d
DSH
213 +) Rewrite apps to use NCONF routines instead of the old CONF. New functions
214 to support NCONF routines in extension code. New function CONF_set_nconf()
215 to allow functions which take an NCONF to also handle the old LHASH
216 structure: this means that the old CONF compatible routines can be
217 retained (in particular wrt extensions) without having to duplicate the
218 code. New function X509V3_add_ext_nconf_sk to add extensions to a stack.
219 [Steve Henson]
220
1e325f61
DSH
221 *) Handle special case when X509_NAME is empty in X509 printing routines.
222 [Steve Henson]
223
c458a331
BM
224 *) In dsa_do_verify (crypto/dsa/dsa_ossl.c), verify that r and s are
225 positive and less than q.
226 [Bodo Moeller]
227
fd3e027f 228 +) Enhance the general user interface with mechanisms for inner control
235dd0a2
RL
229 and with pssibilities to have yes/no kind of prompts.
230 [Richard Levitte]
231
d63c6bd3 232 +) Change all calls to low level digest routines in the library and
323f289c
DSH
233 applications to use EVP. Add missing calls to HMAC_cleanup() and
234 don't assume HMAC_CTX can be copied using memcpy().
235 [Verdon Walker <VWalker@novell.com>, Steve Henson]
236
839590f5
RL
237 +) Add the possibility to control engines through control names but with
238 arbitrary arguments instead of just a string.
239 Change the key loaders to take a UI_METHOD instead of a callback
240 function pointer. NOTE: this breaks binary compatibility with earlier
241 versions of OpenSSL [engine].
242 Addapt the nCipher code for these new conditions and add a card insertion
243 callback.
244 [Richard Levitte]
245
9ad0f681
RL
246 +) Enhance the general user interface with mechanisms to better support
247 dialog box interfaces, application-defined prompts, the possibility
248 to use defaults (for example default passwords from somewhere else)
249 and interrupts/cancelations.
250 [Richard Levitte]
251
3cc1f498
DSH
252 *) Don't change *pointer in CRYPTO_add_lock() is add_lock_callback is
253 used: it isn't thread safe and the add_lock_callback should handle
254 that itself.
255 [Paul Rose <Paul.Rose@bridge.com>]
256
285b4275
BM
257 *) Verify that incoming data obeys the block size in
258 ssl3_enc (ssl/s3_enc.c) and tls1_enc (ssl/t1_enc.c).
259 [Bodo Moeller]
260
f2a253e0
DSH
261 +) Tidy up PKCS#12 attribute handling. Add support for the CSP name
262 attribute in PKCS#12 files, add new -CSP option to pkcs12 utility.
263 [Steve Henson]
264
ecf18606
BM
265 *) Fix OAEP check.
266