diff options
author | Lutz Jänicke <jaenicke@openssl.org> | 2002-04-10 19:52:40 +0000 |
---|---|---|
committer | Lutz Jänicke <jaenicke@openssl.org> | 2002-04-10 19:52:40 +0000 |
commit | 381a146dc6e4c35e06546926fe7c48328aeb103d (patch) | |
tree | 2814f63c6796b2d9d963f0bd6d727d5589738e6c /CHANGES | |
parent | b4a262832a518ce7d94bad2d7e422d03800d3ee4 (diff) |
Synchronize with 0.9.7-stable branch
Diffstat (limited to 'CHANGES')
-rw-r--r-- | CHANGES | 1380 |
1 files changed, 717 insertions, 663 deletions
@@ -38,52 +38,22 @@ EC_GROUP_get_nid() [Nils Larsch <nla@trustcenter.de, Bodo Moeller] - Changes between 0.9.6 and 0.9.7 [xx XXX 2002] + Changes between 0.9.6d and 0.9.7 [XX xxx 2002] OpenSSL 0.9.6a/0.9.6b/0.9.6c/0.9.6d (bugfix releases, 5 Apr 2001, - 9 July 2001, 21 Dec 2001 and xx XXX 2002) and OpenSSL 0.9.7 were - developed in parallel, based on OpenSSL 0.9.6. + 9 July 2001, 21 Dec 2001, XX xxx 2002) and OpenSSL 0.9.7 were developed + in parallel, based on OpenSSL 0.9.6. Change log entries are tagged as follows: - -) applies to 0.9.6a ... 0.9.6d only - *) applies to 0.9.6a ... 0.9.6d and 0.9.7 + -) applies to 0.9.6a/0.9.6b/0.9.6c/0.9.6d only + *) applies to 0.9.6a/0.9.6b/0.9.6c/0.9.6d and 0.9.7 +) applies to 0.9.7 only - *) Fix object definitions for Private and Enterprise: they were not - recognized in their shortname (=lowercase) representation. Extend - obj_dat.pl to issue an error when using undefined keywords instead - of silently ignoring the problem (Svenning Sorensen - <sss@sss.dnsalias.net>). - [Lutz Jaenicke] - +) Make object definitions compliant to LDAP (RFC2256): SN is the short form for "surname", serialNumber has no short form (Michael Bell <michael.bell@rz.hu-berlin.de>). [Lutu Jaenicke] - *) Fix DH_generate_parameters() so that it works for 'non-standard' - generators, i.e. generators other than 2 and 5. (Previously, the - code did not properly initialise the 'add' and 'rem' values to - BN_generate_prime().) - - In the new general case, we do not insist that 'generator' is - actually a primitive root: This requirement is rather pointless; - a generator of the order-q subgroup is just as good, if not - better. - [Bodo Moeller] - - *) Map new X509 verification errors to alerts. Discovered and submitted by - Tom Wu <tom@arcot.com>. - [Lutz Jaenicke] - - *) Fix ssl3_pending() (ssl/s3_lib.c) to prevent SSL_pending() from - returning non-zero before the data has been completely received - when using non-blocking I/O. - [Bodo Moeller; problem pointed out by John Hughes] - - *) Some of the ciphers missed the strength entry (SSL_LOW etc). - [Ben Laurie, Lutz Jaenicke] - +) Add an "init" command to the ENGINE config module and auto initialize ENGINEs. Without any "init" command the ENGINE will be initialized after all ctrl commands have been executed on it. If init=1 the @@ -111,10 +81,6 @@ +) Added the '4758cca' ENGINE to support IBM 4758 cards. [Maurice Gittens <maurice@gittens.nl>, touchups by Geoff Thorpe] - *) Fix bug in SSL_clear(): bad sessions were not removed (found by - Yoram Zahavi <YoramZ@gilian.com>). - [Lutz Jaenicke] - +) Add and OPENSSL_LOAD_CONF define which will cause OpenSSL_add_all_algorithms() to load the openssl.cnf config file. This allows older applications to transparently support certain @@ -149,21 +115,6 @@ and move code to CONF_modules_load_file(). [Steve Henson] - *) Add information about CygWin 1.3 and on, and preserve proper - configuration for the versions before that. - [Corinna Vinschen <vinschen@redhat.com> and Richard Levitte] - - *) Make removal from session cache (SSL_CTX_remove_session()) more robust: - check whether we deal with a copy of a session and do not delete from - the cache in this case. Problem reported by "Izhar Shoshani Levi" - <izhar@checkpoint.com>. - [Lutz Jaenicke] - - *) Do not store session data into the internal session cache, if it - is never intended to be looked up (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP - flag is set). Proposed by Aslam <aslam@funk.com>. - [Lutz Jaenicke] - +) Support for crypto accelerator cards from Accelerated Encryption Processing, www.aep.ie. (Use engine 'aep') The support was copied from 0.9.6c [engine] and adapted/corrected @@ -176,10 +127,6 @@ to work with the new engine framework. [Richard Levitte] - *) Have ASN1_BIT_STRING_set_bit() really clear a bit when the requested - value is 0. - [Richard Levitte] - +) Have the CHIL engine fork-safe (as defined by nCipher) and actually make the newer ENGINE framework commands for the CHIL engine work. [Toomas Kiisk <vix@cyber.ee> and Richard Levitte] @@ -187,9 +134,6 @@ +) Make it possible to produce shared libraries on ReliantUNIX. [Robert Dahlem <Robert.Dahlem@ffm2.siemens.de> via Richard Levitte] - *) Add the configuration target linux-s390x. - [Neale Ferguson <Neale.Ferguson@SoftwareAG-USA.com> via Richard Levitte] - +) Add the configuration target debug-linux-ppro. Make 'openssl rsa' use the general key loading routines implemented in apps.c, and make those routines able to @@ -197,7 +141,7 @@ FORMAT_IISSGC. [Toomas Kiisk <vix@cyber.ee> via Richard Levitte] - *) Fix a crashbug and a logic bug in hwcrhk_load_pubkey(). + *) Fix a crashbug and a logic bug in hwcrhk_load_pubkey(). [Toomas Kiisk <vix@cyber.ee> via Richard Levitte] +) Add -keyform to rsautl, and document -engine. @@ -229,84 +173,27 @@ +) Prelminary ENGINE config module. [Steve Henson] - *) The earlier bugfix for the SSL3_ST_SW_HELLO_REQ_C case of - ssl3_accept (ssl/s3_srvr.c) incorrectly used a local flag - variable as an indication that a ClientHello message has been - received. As the flag value will be lost between multiple - invocations of ssl3_accept when using non-blocking I/O, the - function may not be aware that a handshake has actually taken - place, thus preventing a new session from being added to the - session cache. - - To avoid this problem, we now set s->new_session to 2 instead of - using a local variable. - [Lutz Jaenicke, Bodo Moeller] - - *) Bugfix: Return -1 from ssl3_get_server_done (ssl3/s3_clnt.c) - if the SSL_R_LENGTH_MISMATCH error is detected. - [Geoff Thorpe, Bodo Moeller] - +) New experimental application configuration code. [Steve Henson] - *) New 'shared_ldflag' column in Configure platform table. - [Richard Levitte] - - *) Fix EVP_CIPHER_mode macro. - ["Dan S. Camper" <dan@bti.net>] - +) Change the AES code to follow the same name structure as all other symmetric ciphers, and behave the same way. Move everything to the directory crypto/aes, thereby obsoleting crypto/rijndael. [Stephen Sprunk <stephen@sprunk.org> and Richard Levitte] - *) Fix ssl3_read_bytes (ssl/s3_pkt.c): To ignore messages of unknown - type, we must throw them away by setting rr->length to 0. - [D P Chang <dpc@qualys.com>] - -) OpenSSL 0.9.6c released [21 dec 2001] +) SECURITY: remove unsafe setjmp/signal interaction from ui_openssl.c. [Ben Laurie and Theo de Raadt] - *) Fix BN_rand_range bug pointed out by Dominikus Scherkl - <Dominikus.Scherkl@biodata.com>. (The previous implementation - worked incorrectly for those cases where range = 10..._2 and - 3*range is two bits longer than range.) - [Bodo Moeller] - - *) Only add signing time to PKCS7 structures if it is not already - present. - [Steve Henson] - - *) Fix crypto/objects/objects.h: "ld-ce" should be "id-ce", - OBJ_ld_ce should be OBJ_id_ce. - Also some ip-pda OIDs in crypto/objects/objects.txt were - incorrect (cf. RFC 3039). - [Matt Cooper, Frederic Giudicelli, Bodo Moeller] - +) Add option to output public keys in req command. [Massimiliano Pala madwolf@openca.org] - *) Release CRYPTO_LOCK_DYNLOCK when CRYPTO_destroy_dynlockid() - returns early because it has nothing to do. - [Andy Schneider <andy.schneider@bjss.co.uk>] - - *) [In 0.9.6c-engine and 0.9.7 release:] - Fix mutex callback return values in crypto/engine/hw_ncipher.c. - [Andy Schneider <andy.schneider@bjss.co.uk>] - -) [In 0.9.6c-engine release:] Add support for Cryptographic Appliance's keyserver technology. (Use engine 'keyclient') [Cryptographic Appliances and Geoff Thorpe] - *) Add a configuration entry for OS/390 Unix. The C compiler 'c89' - is called via tools/c89.sh because arguments have to be - rearranged (all '-L' options must appear before the first object - modules). - [Richard Shapiro <rshapiro@abinitio.com>] - +) Use wNAFs in EC_POINTs_mul() for improved efficiency (up to about 10% better than before for P-192 and P-224). [Bodo Moeller] @@ -326,9 +213,6 @@ Encryption Processing, www.aep.ie. (Use engine 'aep') [AEP Inc. and Mark Cox] - *) Add a configuration entry for gcc on UnixWare. - [Gary Benson <gbenson@redhat.com>] - +) New functions/macros SSL_CTX_set_msg_callback(ctx, cb) @@ -356,11 +240,6 @@ to enable a callback that displays all protocol messages. [Bodo Moeller] - *) Change ssl/s2_clnt.c and ssl/s2_srvr.c so that received handshake - messages are stored in a single piece (fixed-length part and - variable-length part combined) and fix various bugs found on the way. - [Bodo Moeller] - +) Change the shared library support so shared libraries are built as soon as the corresponding static library is finished, and thereby get openssl and the test programs linked against the shared library. @@ -379,12 +258,6 @@ when reusing an existing buffer. [Bodo Moeller] - *) Disable caching in BIO_gethostbyname(), directly use gethostbyname() - instead. BIO_gethostbyname() does not know what timeouts are - appropriate, so entries would stay in cache even when they have - become invalid. - [Bodo Moeller; problem pointed out by Rich Salz <rsalz@zolera.com> - +) New command line and configuration option 'utf8' for the req command. This allows field values to be specified as UTF8 strings. [Steve Henson] @@ -399,15 +272,6 @@ has the same effect. [Massimiliano Pala madwolf@openca.org] - *) Change ssl23_get_client_hello (ssl/s23_srvr.c) behaviour when - faced with a pathologically small ClientHello fragment that does - not contain client_version: Instead of aborting with an error, - simply choose the highest available protocol version (i.e., - TLS 1.0 unless it is disabled). In practice, ClientHello - messages are never sent like this, but this change gives us - strictly correct behaviour at least for TLS. - [Bodo Moeller] - +) Change all functions with names starting with des_ to be starting with DES_ instead. Add wrappers that are compatible with libdes, but are named _ossl_old_des_*. Finally, add macros that map the @@ -437,11 +301,6 @@ default), and then completely removed. [Richard Levitte] - *) Fix SSL handshake functions and SSL_clear() such that SSL_clear() - never resets s->method to s->ctx->method when called from within - one of the SSL handshake functions. - [Bodo Moeller; problem pointed out by Niko Baric] - +) Test for certificates which contain unsupported critical extensions. If such a certificate is found during a verify operation it is rejected by default: this behaviour can be overridden by either @@ -451,14 +310,6 @@ particular extension is supported. [Steve Henson] - *) In ssl3_get_client_hello (ssl/s3_srvr.c), generate a fatal alert - (sent using the client's version number) if client_version is - smaller than the protocol version in use. Also change - ssl23_get_client_hello (ssl/s23_srvr.c) to select TLS 1.0 if - the client demanded SSL 3.0 but only TLS 1.0 is enabled; then - the client will at least see that alert. - [Bodo Moeller] - +) Modify the behaviour of EVP cipher functions in similar way to digests to retain compatibility with existing code. [Steve Henson] @@ -481,10 +332,6 @@ instead of overwriting 'msg_type' and 'length' with 'body' data. [Bodo Moeller] - *) Fix ssl3_get_message (ssl/s3_both.c) to handle message fragmentation - correctly. - [Bodo Moeller] - +) Add an implementation of SSL_add_dir_cert_subjects_to_stack for Win32. [Massimo Santin via Richard Levitte] @@ -518,10 +365,6 @@ become part of libeay.num as well. [Richard Levitte] - *) Avoid infinite loop in ssl3_get_message (ssl/s3_both.c) if a - client receives HelloRequest while in a handshake. - [Bodo Moeller; bug noticed by Andy Schneider <andy.schneider@bjss.co.uk>] - +) New function SSL_renegotiate_pending(). This returns true once renegotiation has been requested (either SSL_renegotiate() call or HelloRequest/ClientHello receveived from the peer) and becomes @@ -538,29 +381,6 @@ session resumption is possible only in the first handshake. [Bodo Moeller] - *) Bugfix in ssl3_accept (ssl/s3_srvr.c): Case SSL3_ST_SW_HELLO_REQ_C - should end in 'break', not 'goto end' which circuments various - cleanups done in state SSL_ST_OK. But session related stuff - must be disabled for SSL_ST_OK in the case that we just sent a - HelloRequest. - - Also avoid some overhead by not calling ssl_init_wbio_buffer() - before just sending a HelloRequest. - [Bodo Moeller, Eric Rescorla <ekr@rtfm.com>] - - *) Fix ssl/s3_enc.c, ssl/t1_enc.c and ssl/s3_pkt.c so that we don't - reveal whether illegal block cipher padding was found or a MAC - verification error occured. (Neither SSLerr() codes nor alerts - are directly visible to potential attackers, but the information - may leak via logfiles.) - - Similar changes are not required for the SSL 2.0 implementation - because the number of padding bytes is sent in clear for SSL 2.0, - and the extra bytes are just ignored. However ssl/s2_pkt.c - failed to verify that the purported number of padding bytes is in - the legal range. - [Bodo Moeller] - +) Add some demos for certificate and certificate request creation. [Steve Henson] @@ -573,17 +393,6 @@ (Boyd Lynn Gerber <gerberb@zenez.com>). [Lutz Jaenicke] - *) Add OpenUNIX-8 support including shared libraries - (Boyd Lynn Gerber <gerberb@zenez.com>). - [Lutz Jaenicke] - - *) Improve RSA_padding_check_PKCS1_OAEP() check again to avoid - 'wristwatch attack' using huge encoding parameters (cf. - James H. Manger's CRYPTO 2001 paper). Note that the - RSA_PKCS1_OAEP_PADDING case of RSA_private_decrypt() does not use - encoding parameters and hence was not vulnerable. - [Bodo Moeller] - +) Add a "destroy" handler to ENGINEs that allows structural cleanup to be done prior to destruction. Use this to unload error strings from ENGINEs that load their own error strings. NB: This adds two new API @@ -608,22 +417,10 @@ (ie. how to use it, how to build "dynamic"-loadable ENGINEs, etc). [Geoff Thorpe] - *) BN_sqr() bug fix. - [Ulf Möller, reported by Jim Ellis <jim.ellis@cavium.com>] - +) Make it possible to unload ranges of ERR strings with a new "ERR_unload_strings" function. [Geoff Thorpe] - *) Rabin-Miller test analyses assume uniformly distributed witnesses, - so use BN_pseudo_rand_range() instead of using BN_pseudo_rand() - followed by modular reduction. - [Bodo Moeller; pointed out by Adam Young <AYoung1@NCSUS.JNJ.COM>] - - *) Add BN_pseudo_rand_range() with obvious functionality: BN_rand_range() - equivalent based on BN_pseudo_rand() instead of BN_rand(). - [Bodo Moeller] - +) Add a copy() function to EVP_MD. [Ben Laurie] @@ -680,15 +477,6 @@ Also rename "DSO_up()" function to more descriptive "DSO_up_ref()". [Geoff Thorpe] - *) s3_srvr.c: allow sending of large client certificate lists (> 16 kB). - This function was broken, as the check for a new client hello message - to handle SGC did not allow these large messages. - (Tracked down by "Douglas E. Engert" <deengert@anl.gov>.) - [Lutz Jaenicke] - - *) Add alert descriptions for TLSv1 to SSL_alert_desc_string[_long](). - [Lutz Jaenicke] - +) Add EVP test program. [Ben Laurie] @@ -702,25 +490,6 @@ directly. Modify 'ca' application to use new functions. [Steve Henson] - *) Fix buggy behaviour of BIO_get_num_renegotiates() and BIO_ctrl() - for BIO_C_GET_WRITE_BUF_SIZE ("Stephen Hinton" <shinton@netopia.com>). - [Lutz Jaenicke] - - *) Rework the configuration and shared library support for Tru64 Unix. - The configuration part makes use of modern compiler features and - still retains old compiler behavior for those that run older versions - of the OS. The shared library support part includes a variant that - uses the RPATH feature, and is available through the special - configuration target "alpha-cc-rpath", which will never be selected - automatically. - [Tim Mooney <mooney@dogbert.cc.ndsu.NoDak.edu> via Richard Levitte] - - *) In ssl3_get_key_exchange (ssl/s3_clnt.c), call ssl3_get_message() - with the same message size as in ssl3_get_certificate_request(). - Otherwise, if no ServerKeyExchange message occurs, CertificateRequest - messages might inadvertently be reject as too long. - [Petr Lampa <lampa@fee.vutbr.cz>] - +) Move SSL_OP_TLS_ROLLBACK_BUG out of the SSL_OP_ALL list of recommended bug workarounds. Rollback attack detection is a security feature. The problem will only arise on OpenSSL servers when TLSv1 is not @@ -758,17 +527,6 @@ (Note that a later change renames 'des_...' into 'DES_...'.) [Ben Laurie] - *) Enhanced support for IA-64 Unix platforms (well, Linux and HP-UX). - [Andy Polyakov] - - *) Modified SSL library such that the verify_callback that has been set - specificly for an SSL object with SSL_set_verify() is actually being - used. Before the change, a verify_callback set with this function was - ignored and the verify_callback() set in the SSL_CTX at the time of - the call was used. New function X509_STORE_CTX_set_verify_cb() introduced - to allow the necessary settings. - [Lutz Jaenicke] - +) Initial reduction of linker bloat: the use of some functions, such as PEM causes large amounts of unused functions to be linked in due to poor organisation. For example pem_all.c contains every PEM function @@ -777,55 +535,6 @@ functions prevents this. [Steve Henson] - *) Initialize static variable in crypto/dsa/dsa_lib.c and crypto/dh/dh_lib.c - explicitly to NULL, as at least on Solaris 8 this seems not always to be - done automatically (in contradiction to the requirements of the C - standard). This made problems when used from OpenSSH. - [Lutz Jaenicke] - - *) In OpenSSL 0.9.6a and 0.9.6b, crypto/dh/dh_key.c ignored - dh->length and always used - - BN_rand_range(priv_key, dh->p). - - BN_rand_range() is not necessary for Diffie-Hellman, and this - specific range makes Diffie-Hellman unnecessarily inefficient if - dh->length (recommended exponent length) is much smaller than the - length of dh->p. We could use BN_rand_range() if the order of - the subgroup was stored in the DH structure, but we only have - dh->length. - - So switch back to - - BN_rand(priv_key, l, ...) - - where 'l' is dh->length if this is defined, or BN_num_bits(dh->p)-1 - otherwise. - [Bodo Moeller] - - *) In - - RSA_eay_public_encrypt - RSA_eay_private_decrypt - RSA_eay_private_encrypt (signing) - RSA_eay_public_decrypt (signature verification) - - (default implementations for RSA_public_encrypt, - RSA_private_decrypt, RSA_private_encrypt, RSA_public_decrypt), - always reject numbers >= n. - [Bodo Moeller] - - *) In crypto/rand/md_rand.c, use a new short-time lock CRYPTO_LOCK_RAND2 - to synchronize access to 'locking_thread'. This is necessary on - systems where access to 'locking_thread' (an 'unsigned long' - variable) is not atomic. - [Bodo Moeller] - - *) In crypto/rand/md_rand.c, set 'locking_thread' to current thread's ID - *before* setting the 'crypto_lock_rand' flag. The previous code had - a race condition if 0 is a valid thread ID. - [Travis Vitek <vitek@roguewave.com>] - +) Cleanup of EVP macros. [Ben Laurie] @@ -862,43 +571,8 @@ parameters (and 'speed' generating keys each time). [Geoff Thorpe] - *) Add support for shared libraries under Irix. - [Albert Chin-A-Young <china@thewrittenword.com>] - - *) Add configuration option to build on Linux on both big-endian and - little-endian MIPS. - [Ralf Baechle <ralf@uni-koblenz.de>] - - *) Add the possibility to create shared libraries on HP-UX. - [Richard Levitte] - -) OpenSSL 0.9.6b released [9 July 2001] - *) Change ssleay_rand_bytes (crypto/rand/md_rand.c) - to avoid a SSLeay/OpenSSL PRNG weakness pointed out by - Markku-Juhani O. Saarinen <markku-juhani.saarinen@nokia.com>: - PRNG state recovery was possible based on the output of - one PRNG request appropriately sized to gain knowledge on - 'md' followed by enough consecutive 1-byte PRNG requests - to traverse all of 'state'. - - 1. When updating 'md_local' (the current thread's copy of 'md') - during PRNG output generation, hash all of the previous - 'md_local' value, not just the half used for PRNG output. - - 2. Make the number of bytes from 'state' included into the hash - independent from the number of PRNG bytes requested. - - The first measure alone would be sufficient to avoid - Markku-Juhani's attack. (Actually it had never occurred - to me that the half of 'md_local' used for chaining was the - half from which PRNG output bytes were taken -- I had always - assumed that the secret half would be used.) The second - measure makes sure that additional data from 'state' is never - mixed into 'md_local' in small portions; this heuristically - further strengthens the PRNG. - [Bodo Moeller] - +) Speed up EVP routines. Before: encrypt @@ -917,13 +591,6 @@ decrypt des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k [Ben Laurie] - *) Fix crypto/bn/asm/mips3.s. - [Andy Polyakov] - - *) When only the key is given to "enc", the IV is undefined. Print out - an error message in this case. - [Lutz Jaenicke] - +) Added the OS2-EMX target. ["Brian Havard" <brianh@kheldar.apana.org.au> and Richard Levitte] @@ -935,13 +602,6 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k code. New function X509V3_add_ext_nconf_sk to add extensions to a stack. [Steve Henson] - *) Handle special case when X509_NAME is empty in X509 printing routines. - [Steve Henson] - - *) In dsa_do_verify (crypto/dsa/dsa_ossl.c), verify that r and s are - positive and less than q. - [Bodo Moeller] - +) Enhance the general user interface with mechanisms for inner control and with possibilities to have yes/no kind of prompts. [Richard Levitte] @@ -966,43 +626,10 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k and interrupts/cancellations. [Richard Levitte] - *) Don't change *pointer in CRYPTO_add_lock() is add_lock_callback is - used: it isn't thread safe and the add_lock_callback should handle - that itself. - [Paul Rose <Paul.Rose@bridge.com>] - - *) Verify that incoming data obeys the block size in - ssl3_enc (ssl/s3_enc.c) and tls1_enc (ssl/t1_enc.c). - [Bodo Moeller] - +) Tidy up PKCS#12 attribute handling. Add support for the CSP name attribute in PKCS#12 files, add new -CSP option to pkcs12 utility. [Steve Henson] - *) Fix OAEP check. - [Ulf Möller, Bodo Möller] - - *) The countermeasure against Bleichbacher's attack on PKCS #1 v1.5 - RSA encryption was accidentally removed in s3_srvr.c in OpenSSL 0.9.5 - when fixing the server behaviour for backwards-compatible 'client - hello' messages. (Note that the attack is impractical against - SSL 3.0 and TLS 1.0 anyway because length and version checking - means that the probability of guessing a valid ciphertext is - around 2^-40; see section 5 in Bleichenbacher's CRYPTO '98 - paper.) - - Before 0.9.5, the countermeasure (hide the error by generating a - random 'decryption result') did not work properly because - ERR_clear_error() was missing, meaning that SSL_get_error() would - detect the supposedly ignored error. - - Both problems are now fixed. - [Bodo Moeller] - - *) In crypto/bio/bf_buff.c, increase DEFAULT_BUFFER_SIZE to 4096 - (previously it was 1024). - [Bodo Moeller] - +) Fix a memory leak in 'sk_dup()' in the case reallocation fails. (Also tidy up some unnecessarily weird code in 'sk_new()'). [Geoff, reported by Diego Tartara <dtartara@novamens.com>] @@ -1012,13 +639,6 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k kind of callback. [Richard Levitte] - *) Fix for compatibility mode trust settings: ignore trust settings - unless some valid trust or reject settings are present. - [Steve Henson] - - *) Fix for blowfish EVP: its a variable length cipher. - [Steve Henson] - +) Increase ENTROPY_NEEDED to 32 bytes, as Rijndael can operate with 256 bit (=32 byte) keys. Of course seeding with more entropy bytes than this minimum value is recommended. @@ -1082,20 +702,6 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k a window system and the like. [Richard Levitte] - *) Fix various bugs related to DSA S/MIME verification. Handle missing - parameters in DSA public key structures and return an error in the - DSA routines if parameters are absent. - [Steve Henson] - - *) In versions up to 0.9.6, RAND_file_name() resorted to file ".rnd" - in the current directory if neither $RANDFILE nor $HOME was set. - RAND_file_name() in 0.9.6a returned NULL in this case. This has - caused some confusion to Windows users who haven't defined $HOME. - Thus RAND_file_name() is changed again: e_os.h can define a - DEFAULT_HOME, which will be used if $HOME is not set. - For Windows, we use "C:"; on other platforms, we still require - environment variables. - +) Add "ex_data" support to ENGINE so implementations can add state at a per-structure level rather than having to store it globally. [Geoff] @@ -1181,19 +787,6 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k ctrl(), key-load functions, etc) to take an (ENGINE*) parameter. [Geoff] - *) Move 'if (!initialized) RAND_poll()' into regions protected by - CRYPTO_LOCK_RAND. This is not strictly necessary, but avoids - having multiple threads call RAND_poll() concurrently. - [Bodo Moeller] - - *) In crypto/rand/md_rand.c, replace 'add_do_not_lock' flag by a - combination of a flag and a thread ID variable. - Otherwise while one thread is in ssleay_rand_bytes (which sets the - flag), *other* threads can enter ssleay_add_bytes without obeying - the CRYPTO_LOCK_RAND lock (and may even illegally release the lock - that they do not hold after the first thread unsets add_do_not_lock). - [Bodo Moeller] - +) Implement binary inversion algorithm for BN_mod_inverse in addition to the algorithm using long division. The binary algorithm can be used only if the modulus is odd. On 32-bit systems, it is faster @@ -1204,22 +797,8 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k for moduli up to 2048 bits. [Bodo Moeller] - *) Change bctest again: '-x' expressions are not available in all - versions of 'test'. - [Bodo Moeller] - -) OpenSSL 0.9.6a released [5 Apr 2001] - *) Fix a couple of memory leaks in PKCS7_dataDecode() - [Steve Henson, reported by Heyun Zheng <hzheng@atdsprint.com>] - - *) Change Configure and Makefiles to provide EXE_EXT, which will contain - the default extension for executables, if any. Also, make the perl - scripts that use symlink() to test if it really exists and use "cp" - if it doesn't. All this made OpenSSL compilable and installable in - CygWin. - [Richard Levitte] - +) Rewrite CHOICE field setting in ASN1_item_ex_d2i(). The old code could not support the combine flag in choice fields. [Steve Henson] @@ -1230,44 +809,11 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k [Steve Henson, reported by shige@FreeBSD.org] [This change does not apply to 0.9.7.] - *) Change bctest to avoid here-documents inside command substitution - (workaround for FreeBSD /bin/sh bug). - For compatibility with Ultrix, avoid shell functions (introduced - in the bctest version that searches along $PATH). - [Bodo Moeller] - - *) Rename 'des_encrypt' to 'des_encrypt1'. This avoids the clashes - with des_encrypt() defined on some operating systems, like Solaris - and UnixWare. - [Richard Levitte] - - *) Check the result of RSA-CRT (see D. Boneh, R. DeMillo, R. Lipton: - On the Importance of Eliminating Errors in Cryptographic - Computations, J. Cryptology 14 (2001) 2, 101-119, - http://theory.stanford.edu/~dabo/papers/faults.ps.gz). - [Ulf Moeller] - - *) MIPS assembler BIGNUM division bug fix. - [Andy Polyakov] - - *) Disabled incorrect Alpha assembler code. - [Richard Levitte] - -) Fix PKCS#7 decode routines so they correctly update the length after reading an EOC for the EXPLICIT tag. [Steve Henson] [This change does not apply to 0.9.7.] - *) Fix bug in PKCS#12 key generation routines. This was triggered - if a 3DES key was generated with a 0 initial byte. Include - PKCS12_BROKEN_KEYGEN compilation option to retain the old - (but broken) behaviour. - [Steve Henson] - - *) Enhance bctest to search for a working bc along $PATH and print - it when found. - [Tim Rice <tim@multitalents.net> via Richard Levitte] - +) Add a 'copy_extensions' option to the 'ca' utility. This copies extensions from a certificate request to the certificate. [Steve Henson] @@ -1281,10 +827,6 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k and couldn't display additional details such as extensions. [Steve Henson] - *) Fix memory leaks in err.c: free err_data string if necessary; - don't write to the wrong index in ERR_set_error_data. - [Bodo Moeller] - +) Function EC_POINTs_mul for multiple scalar multiplication of an arbitrary number of elliptic curve points \sum scalars[i]*points[i], @@ -1338,13 +880,6 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k pointers. [Steve Henson] - *) Implement ssl23_peek (analogous to ssl23_read), which previously - did not exist. - [Bodo Moeller] - - *) Replace rdtsc with _emit statements for VC++ version 5. - [Jeremy Cooper <jeremy@baymoo.org>] - +) Hide BN_CTX structure details in bn_lcl.h instead of publishing them in <openssl/bn.h>. Also further increase BN_CTX_NUM to 32. [Bodo Moeller] @@ -1386,9 +921,6 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k Add options '-batch' and '-verbose' to 'openssl req'. [Massimiliano Pala <madwolf@hackmasters.net>] - *) Make it possible to reuse SSLv2 sessions. - [Richard Levitte] - +) Introduce the possibility to access global variables through functions on platform were that's the best way to handle exporting global variables in shared libraries. To enable this functionality, @@ -1423,10 +955,6 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k lexicographically to avoid constant rewrites). [Richard Levitte] - *) In copy_email() check for >= 0 as a return value for - X509_NAME_get_index_by_NID() since 0 is a valid index. - [Steve Henson reported by Massimiliano Pala <madwolf@opensca.org>] - +) In BN_div() keep a copy of the sign of 'num' before writing the result to 'rm' because if rm==num the value will be overwritten and produce the wrong result if 'num' is negative: this caused @@ -1454,11 +982,6 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k OID rather that just UNKNOWN. [Steve Henson] - *) Avoid coredump with unsupported or invalid public keys by checking if - X509_get_pubkey() fails in PKCS7_verify(). Fix memory leak when - PKCS7_verify() fails with non detached data. - [Steve Henson] - +) Change OCSP_cert_to_id() to tolerate a NULL subject certificate and OCSP_cert_id_new() a NULL serialNumber. This allows a partial certificate ID to be generated from the issuer certificate alone which can then be @@ -1492,10 +1015,6 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k the growing number of special cases it was previously handling. [Richard Levitte] - *) Don't use getenv in library functions when run as setuid/setgid. - New function OPENSSL_issetugid(). - [Ulf Moeller] - +) Make all configuration macros available for application by making sure they are available in opensslconf.h, by giving them names starting with "OPENSSL_" to avoid conflicts with other packages and by making @@ -1516,27 +1035,11 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k auto incremented. [Steve Henson] - *) Avoid false positives in memory leak detection code (crypto/mem_dbg.c) - due to incorrect handling of multi-threading: - - 1. Fix timing glitch in the MemCheck_off() portion of CRYPTO_mem_ctrl(). - - 2. Fix logical glitch in is_MemCheck_on() aka CRYPTO_is_mem_check_on(). - - 3. Count how many times MemCheck_off() has been called so that - nested use can be treated correctly. This also avoids - inband-signalling in the previous code (which relied on the - assumption that thread ID 0 is impossible). - [Bodo Moeller] - +) New options to 'ca' utility to support V2 CRL entry extensions. Currently CRL reason, invalidity date and hold instruction are supported. Add new CRL extensions to V3 code and some new objects. [Steve Henson] - *) Add "-rand" option also to s_client and s_server. - [Lutz Jaenicke] - +) New function EVP_CIPHER_CTX_set_padding() this is used to disable standard block padding (aka PKCS#5 padding) in the EVP API, which was previously mandatory. This means that the data is @@ -1547,10 +1050,6 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k +) Initial (incomplete) OCSP SSL support. [Steve Henson] - *) Fix CPU detection on Irix 6.x. - [Kurt Hockenbury <khockenb@stevens-tech.edu> and - "Bruce W. Forsberg" <bruce.forsberg@baesystems.com>] - +) New function OCSP_parse_url(). This splits up a URL into its host, port and path components: primarily to parse OCSP URLs. New -url option to ocsp utility. @@ -1565,16 +1064,11 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k the request is nonce-less. [Steve Henson] - *) Fix X509_NAME bug which produced incorrect encoding if X509_NAME + -) Fix X509_NAME bug which produced incorrect encoding if X509_NAME was empty. [Steve Henson] [This change does not apply to 0.9.7.] - *) Use the cached encoding of an X509_NAME structure rather than - copying it. This is apparently the reason for the libsafe "errors" - but the code is actually correct. - [Steve Henson] - +) Disable stdin buffering in load_cert (apps/apps.c) so that no certs are skipped when using openssl x509 multiple times on a single input file, e.g. "(openssl x509 -out cert1; openssl x509 -out cert2) <certs". @@ -1606,31 +1100,12 @@ des-cbc 3624.96k 5258.21k 5530.91k 5624.30k 5628.26k signature against. [Richard Levitte] - *) Add new function BN_rand_range(), and fix DSA_sign_setup() to prevent - Bleichenbacher's DSA attack. - Extend BN_[pseudo_]rand: As before, top=1 forces the highest two bits - to be set and top=0 forces the highest bit to be set; top=-1 is new - and leaves the highest bit random. - [Ulf Moeller, Bodo Moeller] - +) Update Rijndael code to version 3.0 and change EVP AES ciphers to handle the new API. Currently only ECB, CBC modes supported. Add new AES OIDs. Add TLS AES ciphersuites as described in the "AES Ciphersuites for TLS" draft-ietf-tls-ciphersuite-03.txt. [Ben Laurie, Steve Henson] - *) In |