]> git.ipfire.org Git - thirdparty/openssl.git/blame - CHANGES
Copy and paste error... bn_add_part_words() should of course call
[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
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