]>
Commit | Line | Data |
---|---|---|
1 | ||
2 | OpenSSL CHANGES | |
3 | _______________ | |
4 | ||
5 | ||
6 | Changes between 0.9.1c and 0.9.2 | |
7 | ||
8 | *) Don't install bss_file.c under PREFIX/include/ | |
9 | [Lennart Bong <lob@kulthea.stacken.kth.se>] | |
10 | ||
11 | *) Get the Win32 compile working again. Modify mkdef.pl so it can handle | |
12 | functions that return function pointers and has support for NT specific | |
13 | stuff. Fix mk1mf.pl and VC-32.pl to support NT differences also. Various | |
14 | #ifdef WIN32 and WINNTs sprinkled about the place and some changes from | |
15 | unsigned to signed types: this was killing the Win32 compile. | |
16 | [Steve Henson] | |
17 | ||
18 | *) Add new certificate file to stack functions, SSL_add_cert_file_to_stack() | |
19 | and SSL_add_cert_dir_to_stack(). These largely supplant | |
20 | SSL_load_client_CA_file(), and can be used to add multiple certs easily to | |
21 | a stack (usually this is then handed to SSL_CTX_set_client_CA_list()). | |
22 | This means that Apache-SSL and similar packages don't have to mess around | |
23 | to add as many CAs as they want to the preferred list. | |
24 | [Ben Laurie] | |
25 | ||
26 | *) Experiment with doxygen documentation. Currently only partially applied to | |
27 | ssl/ssl_lib.c. | |
28 | See http://www.stack.nl/~dimitri/doxygen/index.html, and run doxygen with | |
29 | openssl.doxy as the configuration file. | |
30 | [Ben Laurie] | |
31 | ||
32 | *) Get rid of remaining C++-style comments which strict C compilers hate. | |
33 | [Ralf S. Engelschall, pointed out by Carlos Amengual] | |
34 | ||
35 | *) Changed BN_RECURSION in bn_mont.c to BN_RECURSION_MONT so it is not | |
36 | compiled in by default: it has problems with large keys. | |
37 | [Steve Henson] | |
38 | ||
39 | *) Add a bunch of SSL_xxx() functions for configuring the temporary RSA and | |
40 | DH private keys and/or callback functions which directly correspond to | |
41 | their SSL_CTX_xxx() counterparts but work on a per-connection basis. This | |
42 | is needed for applications which have to configure certificates on a | |
43 | per-connection basis (e.g. Apache+mod_ssl) instead of a per-context basis | |
44 | (e.g. s_server). | |
45 | For the RSA certificate situation is makes no difference, but | |
46 | for the DSA certificate situation this fixes the "no shared cipher" | |
47 | problem where the OpenSSL cipher selection procedure failed because the | |
48 | temporary keys were not overtaken from the context and the API provided | |
49 | no way to reconfigure them. | |
50 | The new functions now let applications reconfigure the stuff and they | |
51 | are in detail: SSL_need_tmp_RSA, SSL_set_tmp_rsa, SSL_set_tmp_dh, | |
52 | SSL_set_tmp_rsa_callback and SSL_set_tmp_dh_callback. Additionally a new | |
53 | non-public-API function ssl_cert_instantiate() is used as a helper | |
54 | function and also to reduce code redundancy inside ssl_rsa.c. | |
55 | [Ralf S. Engelschall] | |
56 | ||
57 | *) Move s_server -dcert and -dkey options out of the undocumented feature | |
58 | area because they are useful for the DSA situation and should be | |
59 | recognized by the users. | |
60 | [Ralf S. Engelschall] | |
61 | ||
62 | *) Fix the cipher decision scheme for export ciphers: the export bits are | |
63 | *not* within SSL_MKEY_MASK or SSL_AUTH_MASK, they are within | |
64 | SSL_EXP_MASK. So, the original variable has to be used instead of the | |
65 | already masked variable. | |
66 | [Richard Levitte <levitte@stacken.kth.se>] | |
67 | ||
68 | *) Fix 'port' variable from `int' to `unsigned int' in crypto/bio/b_sock.c | |
69 | [Richard Levitte <levitte@stacken.kth.se>] | |
70 | ||
71 | *) Change type of another md_len variable in pk7_doit.c:PKCS7_dataFinal() | |
72 | from `int' to `unsigned int' because it's a length and initialized by | |
73 | EVP_DigestFinal() which expects an `unsigned int *'. | |
74 | [Richard Levitte <levitte@stacken.kth.se>] | |
75 | ||
76 | *) Don't hard-code path to Perl interpreter on shebang line of Configure | |
77 | script. Instead use the usual Shell->Perl transition trick. | |
78 | [Ralf S. Engelschall] | |
79 | ||
80 | *) Make `openssl x509 -noout -modulus' functional also for DSA certificates | |
81 | (in addition to RSA certificates) to match the behaviour of `openssl dsa | |
82 | -noout -modulus' as it's already the case for `openssl rsa -noout | |
83 | -modulus'. For RSA the -modulus is the real "modulus" while for DSA | |
84 | currently the public key is printed (a decision which was already done by | |
85 | `openssl dsa -modulus' in the past) which serves a similar purpose. | |
86 | Additionally the NO_RSA no longer completely removes the whole -modulus | |
87 | option; it now only avoids using the RSA stuff. Same applies to NO_DSA | |
88 | now, too. | |
89 | [Ralf S. Engelschall] | |
90 | ||
91 | *) Add Arne Ansper's reliable BIO - this is an encrypted, block-digested | |
92 | BIO. See the source (crypto/evp/bio_ok.c) for more info. | |
93 | [Arne Ansper <arne@ats.cyber.ee>] | |
94 | ||
95 | *) Dump the old yucky req code that tried (and failed) to allow raw OIDs | |
96 | to be added. Now both 'req' and 'ca' can use new objects defined in the | |
97 | config file. | |
98 | [Steve Henson] | |
99 | ||
100 | *) Add cool BIO that does syslog (or event log on NT). | |
101 | [Arne Ansper <arne@ats.cyber.ee>, integrated by Ben Laurie] | |
102 | ||
103 | *) Add support for new TLS ciphersuites, TLS_RSA_EXPORT56_WITH_RC4_56_MD5, | |
104 | TLS_RSA_EXPORT56_WITH_RC2_CBC_56_MD5 and | |
105 | TLS_RSA_EXPORT56_WITH_DES_CBC_SHA, as specified in "56-bit Export Cipher | |
106 | Suites For TLS", draft-ietf-tls-56-bit-ciphersuites-00.txt. | |
107 | [Ben Laurie] | |
108 | ||
109 | *) Add preliminary config info for new extension code. | |
110 | [Steve Henson] | |
111 | ||
112 | *) Make RSA_NO_PADDING really use no padding. | |
113 | [Ulf Moeller <ulf@fitug.de>] | |
114 | ||
115 | *) Generate errors when private/public key check is done. | |
116 | [Ben Laurie] | |
117 | ||
118 | *) Overhaul for 'crl' utility. New function X509_CRL_print. Partial support | |
119 | for some CRL extensions and new objects added. | |
120 | [Steve Henson] | |
121 | ||
122 | *) Really fix the ASN1 IMPLICIT bug this time... Partial support for private | |
123 | key usage extension and fuller support for authority key id. | |
124 | [Steve Henson] | |
125 | ||
126 | *) Add OAEP encryption for the OpenSSL crypto library. OAEP is the improved | |
127 | padding method for RSA, which is recommended for new applications in PKCS | |
128 | #1 v2.0 (RFC 2437, October 1998). | |
129 | OAEP (Optimal Asymmetric Encryption Padding) has better theoretical | |
130 | foundations than the ad-hoc padding used in PKCS #1 v1.5. It is secure | |
131 | against Bleichbacher's attack on RSA. | |
132 | [Ulf Moeller <ulf@fitug.de>, reformatted, corrected and integrated by | |
133 | Ben Laurie] | |
134 | ||
135 | *) Updates to the new SSL compression code | |
136 | [Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)] | |
137 | ||
138 | *) Fix so that the version number in the master secret, when passed | |
139 | via RSA, checks that if TLS was proposed, but we roll back to SSLv3 | |
140 | (because the server will not accept higher), that the version number | |
141 | is 0x03,0x01, not 0x03,0x00 | |
142 | [Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)] | |
143 | ||
144 | *) Run extensive memory leak checks on SSL apps. Fixed *lots* of memory | |
145 | leaks in ssl/ relating to new X509_get_pubkey() behaviour. Also fixes | |
146 | in apps/ and an unrelated leak in crypto/dsa/dsa_vrf.c | |
147 | [Steve Henson] | |
148 | ||
149 | *) Support for RAW extensions where an arbitrary extension can be | |
150 | created by including its DER encoding. See apps/openssl.cnf for | |
151 | an example. | |
152 | [Steve Henson] | |
153 | ||
154 | *) Make sure latest Perl versions don't interpret some generated C array | |
155 | code as Perl array code in the crypto/err/err_genc.pl script. | |
156 | [Lars Weber <3weber@informatik.uni-hamburg.de>] | |
157 | ||
158 | *) Modify ms/do_ms.bat to not generate assembly language makefiles since | |
159 | not many people have the assembler. Various Win32 compilation fixes and | |
160 | update to the INSTALL.W32 file with (hopefully) more accurate Win32 | |
161 | build instructions. | |
162 | [Steve Henson] | |
163 | ||
164 | *) Modify configure script 'Configure' to automatically create crypto/date.h | |
165 | file under Win32 and also build pem.h from pem.org. New script | |
166 | util/mkfiles.pl to create the MINFO file on environments that can't do a | |
167 | 'make files': perl util/mkfiles.pl >MINFO should work. | |
168 | [Steve Henson] | |
169 | ||
170 | *) Major rework of DES function declarations, in the pursuit of correctness | |
171 | and purity. As a result, many evil casts evaporated, and some weirdness, | |
172 | too. You may find this causes warnings in your code. Zapping your evil | |
173 | casts will probably fix them. Mostly. | |
174 | [Ben Laurie] | |
175 | ||
176 | *) Fix for a typo in asn1.h. Bug fix to object creation script | |
177 | obj_dat.pl. It considered a zero in an object definition to mean | |
178 | "end of object": none of the objects in objects.h have any zeros | |
179 | so it wasn't spotted. | |
180 | [Steve Henson, reported by Erwann ABALEA <eabalea@certplus.com>] | |
181 | ||
182 | *) Add support for Triple DES Cipher Block Chaining with Output Feedback | |
183 | Masking (CBCM). In the absence of test vectors, the best I have been able | |
184 | to do is check that the decrypt undoes the encrypt, so far. Send me test | |
185 | vectors if you have them. | |
186 | [Ben Laurie] | |
187 | ||
188 | *) Correct caclulation of key length for export ciphers (too much space was | |
189 | allocated for null ciphers). This has not been tested! | |
190 | [Ben Laurie] | |
191 | ||
192 | *) Modifications to the mkdef.pl for Win32 DEF file creation. The usage | |
193 | message is now correct (it understands "crypto" and "ssl" on its | |
194 | command line). There is also now an "update" option. This will update | |
195 | the util/ssleay.num and util/libeay.num files with any new functions. | |
196 | If you do a: | |
197 | perl util/mkdef.pl crypto ssl update | |
198 | it will update them. | |
199 | [Steve Henson] | |
200 | ||
201 | *) Overhauled the Perl interface (perl/*): | |
202 | - ported BN stuff to OpenSSL's different BN library | |
203 | - made the perl/ source tree CVS-aware | |
204 | - renamed the package from SSLeay to OpenSSL (the files still contain | |
205 | their history because I've copied them in the repository) | |
206 | - removed obsolete files (the test scripts will be replaced | |
207 | by better Test::Harness variants in the future) | |
208 | [Ralf S. Engelschall] | |
209 | ||
210 | *) First cut for a very conservative source tree cleanup: | |
211 | 1. merge various obsolete readme texts into doc/ssleay.txt | |
212 | where we collect the old documents and readme texts. | |
213 | 2. remove the first part of files where I'm already sure that we no | |
214 | longer need them because of three reasons: either they are just temporary | |
215 | files which were left by Eric or they are preserved original files where | |
216 | I've verified that the diff is also available in the CVS via "cvs diff | |
217 | -rSSLeay_0_8_1b" or they were renamed (as it was definitely the case for | |
218 | the crypto/md/ stuff). | |
219 | [Ralf S. Engelschall] | |
220 | ||
221 | *) More extension code. Incomplete support for subject and issuer alt | |
222 | name, issuer and authority key id. Change the i2v function parameters | |
223 | and add an extra 'crl' parameter in the X509V3_CTX structure: guess | |
224 | what that's for :-) Fix to ASN1 macro which messed up | |
225 | IMPLICIT tag and add f_enum.c which adds a2i, i2a for ENUMERATED. | |
226 | [Steve Henson] | |
227 | ||
228 | *) Preliminary support for ENUMERATED type. This is largely copied from the | |
229 | INTEGER code. | |
230 | [Steve Henson] | |
231 | ||
232 | *) Add new function, EVP_MD_CTX_copy() to replace frequent use of memcpy. | |
233 | [Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)] | |
234 | ||
235 | *) Make sure `make rehash' target really finds the `openssl' program. | |
236 | [Ralf S. Engelschall, Matthias Loepfe <Matthias.Loepfe@adnovum.ch>] | |
237 | ||
238 | *) Squeeze another 7% of speed out of MD5 assembler, at least on a P2. I'd | |
239 | like to hear about it if this slows down other processors. | |
240 | [Ben Laurie] | |
241 | ||
242 | *) Add CygWin32 platform information to Configure script. | |
243 | [Alan Batie <batie@aahz.jf.intel.com>] | |
244 | ||
245 | *) Fixed ms/32all.bat script: `no_asm' -> `no-asm' | |
246 | [Rainer W. Gerling <gerling@mpg-gv.mpg.de>] | |
247 | ||
248 | *) New program nseq to manipulate netscape certificate sequences | |
249 | [Steve Henson] | |
250 | ||
251 | *) Modify crl2pkcs7 so it supports multiple -certfile arguments. Fix a | |
252 | few typos. | |
253 | [Steve Henson] | |
254 | ||
255 | *) Fixes to BN code. Previously the default was to define BN_RECURSION | |
256 | but the BN code had some problems that would cause failures when | |
257 | doing certificate verification and some other functions. | |
258 | [Eric A. Young, (from changes to C2Net SSLeay, integrated by Mark Cox)] | |
259 | ||
260 | *) Add ASN1 and PEM code to support netscape certificate sequences. | |
261 | [Steve Henson] | |
262 | ||
263 | *) Add ASN1 and PEM code to support netscape certificate sequences. | |
264 | [Steve Henson] | |
265 | ||
266 | *) Add several PKIX and private extended key usage OIDs. | |
267 | [Steve Henson] | |
268 | ||
269 | *) Modify the 'ca' program to handle the new extension code. Modify | |
270 | openssl.cnf for new extension format, add comments. | |
271 | [Steve Henson] | |
272 | ||
273 | *) More X509 V3 changes. Fix typo in v3_bitstr.c. Add support to 'req' | |
274 | and add a sample to openssl.cnf so req -x509 now adds appropriate | |
275 | CA extensions. | |
276 | [Steve Henson] | |
277 | ||
278 | *) Continued X509 V3 changes. Add to other makefiles, integrate with the | |
279 | error code, add initial support to X509_print() and x509 application. | |
280 | [Steve Henson] | |
281 | ||
282 | *) Takes a deep breath and start addding X509 V3 extension support code. Add | |
283 | files in crypto/x509v3. Move original stuff to crypto/x509v3/old. All this | |
284 | stuff is currently isolated and isn't even compiled yet. | |
285 | [Steve Henson] | |
286 | ||
287 | *) Continuing patches for GeneralizedTime. Fix up certificate and CRL | |
288 | ASN1 to use ASN1_TIME and modify print routines to use ASN1_TIME_print. | |
289 | Removed the versions check from X509 routines when loading extensions: | |
290 | this allows certain broken certificates that don't set the version | |
291 | properly to be processed. | |
292 | [Steve Henson] | |
293 | ||
294 | *) Deal with irritating shit to do with dependencies, in YAAHW (Yet Another | |
295 | Ad Hoc Way) - Makefile.ssls now all contain local dependencies, which | |
296 | can still be regenerated with "make depend". | |
297 | [Ben Laurie] | |
298 | ||
299 | *) Spelling mistake in C version of CAST-128. | |
300 | [Ben Laurie, reported by Jeremy Hylton <jeremy@cnri.reston.va.us>] | |
301 | ||
302 | *) Changes to the error generation code. The perl script err-code.pl | |
303 | now reads in the old error codes and retains the old numbers, only | |
304 | adding new ones if necessary. It also only changes the .err files if new | |
305 | codes are added. The makefiles have been modified to only insert errors | |
306 | when needed (to avoid needlessly modifying header files). This is done | |
307 | by only inserting errors if the .err file is newer than the auto generated | |
308 | C file. To rebuild all the error codes from scratch (the old behaviour) | |
309 | either modify crypto/Makefile.ssl to pass the -regen flag to err_code.pl | |
310 | or delete all the .err files. | |
311 | [Steve Henson] | |
312 | ||
313 | *) CAST-128 was incorrectly implemented for short keys. The C version has | |
314 | been fixed, but is untested. The assembler versions are also fixed, but | |
315 | new assembler HAS NOT BEEN GENERATED FOR WIN32 - the Makefile needs fixing | |
316 | to regenerate it if needed. | |
317 | [Ben Laurie, reported (with fix for C version) by Jun-ichiro itojun | |
318 | Hagino <itojun@kame.net>] | |
319 | ||
320 | *) File was opened incorrectly in randfile.c. | |
321 |