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