]>
Commit | Line | Data |
---|---|---|
f1c236f8 | 1 | OpenSSL CHANGES |
651d0aff RE |
2 | _______________ |
3 | ||
c5e8580e RL |
4 | Changes between 0.9.6 and 0.9.7 [xx XXX 2000] |
5 | ||
499e167f BM |
6 | *) Make BN_mod_inverse faster by explicitly handling small quotients |
7 | in the Euclid loop instead of always using BN_div. | |
8 | (Speed gain about 20% for small moduli [256 or 512 bits], about | |
9 | 30% for larger ones [1024 or 2048 bits].) | |
10 | [Bodo Moeller] | |
11 | ||
000e2177 BM |
12 | *) Disable ssl2_peek and ssl3_peek (i.e., both implementations |
13 | of SSL_peek) because they both are completely broken. | |
14 | They will be fixed RSN by adding an additional 'peek' parameter | |
15 | to the internal read functions. | |
16 | [Bodo Moeller] | |
17 | ||
dcbd0d74 BM |
18 | *) New function BN_kronecker. |
19 | [Bodo Moeller] | |
20 | ||
21 | *) Fix BN_gcd so that it works on negative inputs; the result is | |
22 | positive unless both parameters are zero. | |
23 | Previously something reasonably close to an infinite loop was | |
24 | possible because numbers could be growing instead of shrinking | |
25 | in the implementation of Euclid's algorithm. | |
26 | [Bodo Moeller] | |
27 | ||
28 | *) Fix BN_is_word() and BN_is_one() macros to take into account the | |
29 | sign of the number in question. | |
30 | ||
31 | Fix BN_is_word(a,w) to work correctly for w == 0. | |
32 | ||
33 | The old BN_is_word(a,w) macro is now called BN_abs_is_word(a,w) | |
34 | because its test if the absolute value of 'a' equals 'w'. | |
35 | Note that BN_abs_is_word does *not* handle w == 0 reliably; | |
36 | it exists mostly for use in the implementations of BN_is_zero(), | |
37 | BN_is_one(), and BN_is_word(). | |
38 | [Bodo Moeller] | |
39 | ||
0ac87024 GT |
40 | *) Initialise "ex_data" member of an RSA structure prior to calling the |
41 | method-specific "init()" handler, and clean up ex_data after calling | |
42 | the method-specific "finish()" handler. Previously, this was happening | |
43 | the other way round. | |
44 | [Geoff Thorpe] | |
45 | ||
78a0c1f1 BM |
46 | *) New function BN_swap. |
47 | [Bodo Moeller] | |
48 | ||
49 | *) Use BN_nnmod instead of BN_mod in crypto/bn/bn_exp.c so that | |
50 | the exponentiation functions are more likely to produce reasonable | |
51 | results on negative inputs. | |
52 | [Bodo Moeller] | |
53 | ||
54 | *) Change BN_mod_mul so that the result is always non-negative. | |
55 | Previously, it could be negative if one of the factors was negative; | |
56 | I don't think anyone really wanted that behaviour. | |
57 | [Bodo Moeller] | |
58 | ||
59 | *) Move BN_mod_... functions into new file crypto/bn/bn_mod.c | |
60 | (except for exponentation, which stays in crypto/bn/bn_exp.c, | |
61 | and BN_mod_mul_reciprocal, which stays in crypto/bn/bn_recp.c) | |
62 | and add new functions: | |
5acaa495 | 63 | |
78a0c1f1 BM |
64 | BN_nnmod |
65 | BN_mod_sqr | |
66 | BN_mod_add | |
5acaa495 | 67 | BN_mod_add_quick |
78a0c1f1 | 68 | BN_mod_sub |
5acaa495 BM |
69 | BN_mod_sub_quick |
70 | BN_mod_lshift1 | |
71 | BN_mod_lshift1_quick | |
72 | BN_mod_lshift | |
73 | BN_mod_lshift_quick | |
74 | ||
78a0c1f1 | 75 | These functions always generate non-negative results. |
5acaa495 | 76 | |
78a0c1f1 BM |
77 | BN_nnmod otherwise is like BN_mod (if BN_mod computes a remainder r |
78 | such that |m| < r < 0, BN_nnmod will output rem + |m| instead). | |
5acaa495 BM |
79 | |
80 | BN_mod_XXX_quick(r, a, [b,] m) generates the same result as | |
81 | BN_mod_XXX(r, a, [b,] m, ctx), but requires that a [and b] | |
82 | be reduced modulo m. | |
78a0c1f1 BM |
83 | [Lenka Fibikova <fibikova@exp-math.uni-essen.de>, Bodo Moeller] |
84 | ||
baa257f1 RL |
85 | *) Remove a few calls to bn_wexpand() in BN_sqr() (the one in there |
86 | was actually never needed) and in BN_mul(). The removal in BN_mul() | |
87 | required a small change in bn_mul_part_recursive() and the addition | |
88 | of the static functions bn_cmp_part_words(), bn_sub_part_words() | |
89 | and bn_add_part_words() which do the same thing as bn_cmp_words(), | |
90 | bn_sub_words() and bn_add_words() except they take arrays with | |
91 | differing sizes. | |
92 | [Richard Levitte] | |
93 | ||
db70a3fd BM |
94 | *) In 'openssl passwd', verify passwords read from the terminal |
95 | unless the '-salt' option is used (which usually means that | |
96 | verification would just waste user's time since the resulting | |
97 | hash is going to be compared with some given password hash) | |
98 | or the new '-noverify' option is used. | |
99 | ||
100 | This is an incompatible change, but it does not affect | |
101 | non-interactive use of 'openssl passwd' (passwords on the command | |
102 | line, '-stdin' option, '-in ...' option) and thus should not | |
103 | cause any problems. | |
104 | [Bodo Moeller] | |
105 | ||
ccb9643f RL |
106 | *) Remove all references to RSAref, since there's no more need for it. |
107 | [Richard Levitte] | |
108 | ||
7f7b8d68 BM |
109 | *) Increase BN_CTX_NUM (the number of BIGNUMs in a BN_CTX) to 16. |
110 | The previous value, 12, was not always sufficient for BN_mod_exp(). | |
111 | [Bodo Moeller] | |
112 | ||
e06433d9 RL |
113 | *) Make DSO load along a path given through an environment variable |
114 | (SHLIB_PATH) with shl_load(). | |
115 | [Richard Levitte] | |
116 | ||
10e473e9 | 117 | *) Constify the ENGINE code as a result of BIGNUM constification. |
55b3c877 RL |
118 | Also constify the RSA code and most things related to it. In a |
119 | few places, most notable in the depth of the ASN.1 code, ugly | |
120 | casts back to non-const were required (to be solved at a later | |
121 | time) | |
10e473e9 RL |
122 | [Richard Levitte] |
123 | ||
e7ef1a56 RL |
124 | *) Make it so the openssl application has all engines loaded by default. |
125 | [Richard Levitte] | |
126 | ||
020fc820 RL |
127 | *) Constify the BIGNUM routines a little more. |
128 | [Richard Levitte] | |
129 | ||
6b77e6d7 RL |
130 | *) Make sure that shared libraries get the internal name engine with |
131 | the full version number and not just 0. This should mark the | |
132 | shared libraries as not backward compatible. Of course, this should | |
133 | be changed again when we can guarantee backward binary compatibility. | |
134 | [Richard Levitte] | |
135 | ||
11c0f120 RL |
136 | *) Add the following functions: |
137 | ||
138 | ENGINE_load_cswift() | |
139 | ENGINE_load_chil() | |
140 | ENGINE_load_atalla() | |
141 | ENGINE_load_nuron() | |
142 | ENGINE_load_builtin_engines() | |
143 | ||
144 | That way, an application can itself choose if external engines that | |
145 | are built-in in OpenSSL shall ever be used or not. The benefit is | |
146 | that applications won't have to be linked with libdl or other dso | |
147 | libraries unless it's really needed. | |
148 | ||
149 | Changed 'openssl engine' to load all engines on demand. | |
150 | Changed the engine header files to avoid the duplication of some | |
151 | declarations (they differed!). | |
152 | [Richard Levitte] | |
153 | ||
69e7805f RL |
154 | *) 'openssl engine' can now list capabilities. |
155 | [Richard Levitte] | |
156 | ||
e264cfe1 RL |
157 | *) Better error reporting in 'openssl engine'. |
158 | [Richard Levitte] | |
159 | ||
15d52ddb BM |
160 | *) Never call load_dh_param(NULL) in s_server. |
161 | [Bodo Moeller] | |
162 | ||
14c6d27d RL |
163 | *) Add engine application. It can currently list engines by name and |
164 | identity, and test if they are actually available. | |
165 | [Richard Levitte] | |
166 | ||
dcea8e12 RL |
167 | *) Add support for shared libraries under Irix. |
168 | [Albert Chin-A-Young <china@thewrittenword.com>] | |
169 | ||
501ebf16 RL |
170 | *) Improve RPM specification file by forcing symbolic linking and making |
171 | sure the installed documentation is also owned by root.root. | |
172 | [Damien Miller <djm@mindrot.org>] | |
173 | ||
815c83f7 RL |
174 | *) Add configuration option to build on Linux on both big-endian and |
175 | little-endian MIPS. | |
176 | [Ralf Baechle <ralf@uni-koblenz.de>] | |
177 | ||
3aba98e7 RL |
178 | *) Give the OpenSSL applications more possibilities to make use of |
179 | keys (public as well as private) handled by engines. | |
180 | [Richard Levitte] | |
181 | ||
7c155330 RL |
182 | *) Add OCSP code that comes from CertCo. |
183 | [Richard Levitte] | |
184 | ||
34a14882 | 185 | *) Add VMS support for the Rijndael code. |
5270e702 RL |
186 | [Richard Levitte] |
187 | ||
188 | *) Added untested support for Nuron crypto accelerator. | |
189 | [Ben Laurie] | |
190 | ||
191 | *) Add support for external cryptographic devices. This code was | |
192 | previously distributed separately as the "engine" branch. | |
193 | [Geoff Thorpe, Richard Levitte] | |
194 | ||
1df586be GT |
195 | *) Rework the filename-translation in the DSO code. It is now possible to |
196 | have far greater control over how a "name" is turned into a filename | |
197 | depending on the operating environment and any oddities about the | |
198 | different shared library filenames on each system. | |
199 | [Geoff Thorpe] | |
200 | ||
53400da7 RL |
201 | *) Support threads on FreeBSD-elf in Configure. |
202 | [Richard Levitte] | |
203 | ||
0fd44e2d RL |
204 | *) Add the possibility to create shared libraries on HP-UX |
205 | [Richard Levitte] | |
206 | ||
627ec355 DSH |
207 | *) Fix for SHA1 assembly problem with MASM: it produces |
208 | warnings about corrupt line number information when assembling | |
209 | with debugging information. This is caused by the overlapping | |
210 | of two sections. | |
211 | [Bernd Matthes <mainbug@celocom.de>, Steve Henson] | |
212 | ||
567f17cf RL |
213 | *) NCONF changes. |
214 | NCONF_get_number() has no error checking at all. As a replacement, | |
215 | NCONF_get_number_e() is defined (_e for "error checking") and is | |
216 | promoted strongly. The old NCONF_get_number is kept around for | |
217 | binary backward compatibility. | |
218 | Make it possible for methods to load from something other than a BIO, | |
219 | by providing a function pointer that is given a name instead of a BIO. | |
220 | For example, this could be used to load configuration data from an | |
221 | LDAP server. | |
222 | [Richard Levitte] | |
223 | ||
71d525c9 DSH |
224 | *) Fix typo in get_cert_by_subject() in by_dir.c |
225 | [Jean-Marc Desperrier <jean-marc.desperrier@certplus.com>] | |
226 | ||
a22fb399 RL |
227 | *) Rework the system to generate shared libraries: |
228 | ||
229 | - Make note of the expected extension for the shared libraries and | |
230 | if there is a need for symbolic links from for example libcrypto.so.0 | |
231 | to libcrypto.so.0.9.7. There is extended info in Configure for | |
232 | that. | |
233 | ||
234 | - Make as few rebuilds of the shared libraries as possible. | |
235 | ||
236 | - Still avoid linking the OpenSSL programs with the shared libraries. | |
237 | ||
238 | - When installing, install the shared libraries separately from the | |
239 | static ones. | |
240 | [Richard Levitte] | |
241 | ||
924046ce DSH |
242 | *) Fix for non blocking accept BIOs. Added new I/O special reason |
243 | BIO_RR_ACCEPT to cover this case. Previously use of accept BIOs | |
244 | with non blocking I/O was not possible because no retry code was | |
245 | implemented. Also added new SSL code SSL_WANT_ACCEPT to cover | |
246 | this case. | |
247 | [Steve Henson] | |
248 | ||
3ab56511 RL |
249 | *) Added the beginnings of Rijndael support. |
250 | [Ben Laurie] | |
251 | ||
d0c98589 | 252 | *) Fix for bug in DirectoryString mask setting. Add support for |
8ca533e3 DSH |
253 | X509_NAME_print_ex() in 'req' and X509_print_ex() function |
254 | to allow certificate printing to more controllable, additional | |
255 | 'certopt' option to 'x509' to allow new printing options to be | |
256 | set. | |
d0c98589 DSH |
257 | [Steve Henson] |
258 | ||
ef71cb6d RL |
259 | *) Clean old EAY MD5 hack from e_os.h. |
260 | [Richard Levitte] | |
261 | ||
3a0afe1e BM |
262 | *) Fix SSL_CTX_set_read_ahead macro to actually use its argument. |
263 | ||
264 | Copy SSL_CTX's read_ahead flag to SSL object directly in SSL_new | |
265 | and not in SSL_clear because the latter is also used by the | |
266 | accept/connect functions; previously, the settings made by | |
267 | SSL_set_read_ahead would be lost during the handshake. | |
268 | [Bodo Moeller; problems reported by Anders Gertz <gertz@epact.se>] | |
269 | ||
88aeb646 RL |
270 | *) Correct util/mkdef.pl to be selective about disabled algorithms. |
271 | Previously, it would create entries for disableed algorithms no | |
272 | matter what. | |
273 | [Richard Levitte] | |
c5e8580e | 274 | |
0e8f2fdf | 275 | Changes between 0.9.5a and 0.9.6 [24 Sep 2000] |
bbb72003 | 276 | |
f1192b7f BM |
277 | *) In ssl23_get_client_hello, generate an error message when faced |
278 | with an initial SSL 3.0/TLS record that is too small to contain the | |
279 | first two bytes of the ClientHello message, i.e. client_version. | |
280 | (Note that this is a pathologic case that probably has never happened | |
281 | in real life.) The previous approach was to use the version number | |
5a5accdd | 282 | from the record header as a substitute; but our protocol choice |
f1192b7f BM |
283 | should not depend on that one because it is not authenticated |
284 | by the Finished messages. | |
285 | [Bodo Moeller] | |
286 | ||
d49da3aa UM |
287 | *) More robust randomness gathering functions for Windows. |
288 | [Jeffrey Altman <jaltman@columbia.edu>] | |
289 | ||
dbba890c DSH |
290 | *) For compatibility reasons if the flag X509_V_FLAG_ISSUER_CHECK is |
291 | not set then we don't setup the error code for issuer check errors | |
292 | to avoid possibly overwriting other errors which the callback does | |
293 | handle. If an application does set the flag then we assume it knows | |
294 | what it is doing and can handle the new informational codes | |
295 | appropriately. | |
296 | [Steve Henson] | |
297 | ||
6cffb201 DSH |
298 | *) Fix for a nasty bug in ASN1_TYPE handling. ASN1_TYPE is used for |
299 | a general "ANY" type, as such it should be able to decode anything | |
300 | including tagged types. However it didn't check the class so it would | |
301 | wrongly interpret tagged types in the same way as their universal | |
302 | counterpart and unknown types were just rejected. Changed so that the | |
303 | tagged and unknown types are handled in the same way as a SEQUENCE: | |
304 | that is the encoding is stored intact. There is also a new type | |
305 | "V_ASN1_OTHER" which is used when the class is not universal, in this | |
306 | case we have no idea what the actual type is so we just lump them all | |
307 | together. | |
308 | [Steve Henson] | |
309 | ||
645749ef RL |
310 | *) On VMS, stdout may very well lead to a file that is written to |
311 | in a record-oriented fashion. That means that every write() will | |
312 | write a separate record, which will be read separately by the | |
313 | programs trying to read from it. This can be very confusing. | |
314 | ||
315 | The solution is to put a BIO filter in the way that will buffer | |
316 | text until a linefeed is reached, and then write everything a | |
317 | line at a time, so every record written will be an actual line, | |
318 | not chunks of lines and not (usually doesn't happen, but I've | |
319 | seen it once) several lines in one record. BIO_f_linebuffer() is | |
320 | the answer. | |
321 | ||
322 | Currently, it's a VMS-only method, because that's where it has | |
323 | been tested well enough. | |
324 | [Richard Levitte] | |
325 | ||
fe035197 | 326 | *) Remove 'optimized' squaring variant in BN_mod_mul_montgomery, |
a45bd295 | 327 | it can return incorrect results. |
cb1fbf8e BM |
328 | (Note: The buggy variant was not enabled in OpenSSL 0.9.5a, |
329 | but it was in 0.9.6-beta[12].) | |
a45bd295 BM |
330 | [Bodo Moeller] |
331 | ||
730e37ed DSH |
332 | *) Disable the check for content being present when verifying detached |
333 | signatures in pk7_smime.c. Some versions of Netscape (wrongly) | |
334 | include zero length content when signing messages. | |
335 | [Steve Henson] | |
336 | ||
07fcf422 BM |
337 | *) New BIO_shutdown_wr macro, which invokes the BIO_C_SHUTDOWN_WR |
338 | BIO_ctrl (for BIO pairs). | |
d49da3aa | 339 |