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