]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
avoid segmentation fault
[thirdparty/openssl.git] / CHANGES
CommitLineData
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