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