OLD | NEW |
1 | 1 |
2 OpenSSL CHANGES | 2 OpenSSL CHANGES |
3 _______________ | 3 _______________ |
4 | 4 |
| 5 Changes between 1.0.0e and 1.0.0f [4 Jan 2012] |
| 6 |
| 7 *) Nadhem Alfardan and Kenny Paterson have discovered an extension |
| 8 of the Vaudenay padding oracle attack on CBC mode encryption |
| 9 which enables an efficient plaintext recovery attack against |
| 10 the OpenSSL implementation of DTLS. Their attack exploits timing |
| 11 differences arising during decryption processing. A research |
| 12 paper describing this attack can be found at: |
| 13 http://www.isg.rhul.ac.uk/~kp/dtls.pdf |
| 14 Thanks go to Nadhem Alfardan and Kenny Paterson of the Information |
| 15 Security Group at Royal Holloway, University of London |
| 16 (www.isg.rhul.ac.uk) for discovering this flaw and to Robin Seggelmann |
| 17 <seggelmann@fh-muenster.de> and Michael Tuexen <tuexen@fh-muenster.de> |
| 18 for preparing the fix. (CVE-2011-4108) |
| 19 [Robin Seggelmann, Michael Tuexen] |
| 20 |
| 21 *) Clear bytes used for block padding of SSL 3.0 records. |
| 22 (CVE-2011-4576) |
| 23 [Adam Langley (Google)] |
| 24 |
| 25 *) Only allow one SGC handshake restart for SSL/TLS. (CVE-2011-4619) |
| 26 [Adam Langley (Google)] |
| 27 |
| 28 *) Check parameters are not NULL in GOST ENGINE. (CVE-2012-0027) |
| 29 [Andrey Kulikov <amdeich@gmail.com>] |
| 30 |
| 31 *) Prevent malformed RFC3779 data triggering an assertion failure. |
| 32 Thanks to Andrew Chi, BBN Technologies, for discovering the flaw |
| 33 and Rob Austein <sra@hactrn.net> for fixing it. (CVE-2011-4577) |
| 34 [Rob Austein <sra@hactrn.net>] |
| 35 |
| 36 *) Improved PRNG seeding for VOS. |
| 37 [Paul Green <Paul.Green@stratus.com>] |
| 38 |
| 39 *) Fix ssl_ciph.c set-up race. |
| 40 [Adam Langley (Google)] |
| 41 |
| 42 *) Fix spurious failures in ecdsatest.c. |
| 43 [Emilia Käsper (Google)] |
| 44 |
| 45 *) Fix the BIO_f_buffer() implementation (which was mixing different |
| 46 interpretations of the '..._len' fields). |
| 47 [Adam Langley (Google)] |
| 48 |
| 49 *) Fix handling of BN_BLINDING: now BN_BLINDING_invert_ex (rather than |
| 50 BN_BLINDING_invert_ex) calls BN_BLINDING_update, ensuring that concurrent |
| 51 threads won't reuse the same blinding coefficients. |
| 52 |
| 53 This also avoids the need to obtain the CRYPTO_LOCK_RSA_BLINDING |
| 54 lock to call BN_BLINDING_invert_ex, and avoids one use of |
| 55 BN_BLINDING_update for each BN_BLINDING structure (previously, |
| 56 the last update always remained unused). |
| 57 [Emilia Käsper (Google)] |
| 58 |
| 59 *) In ssl3_clear, preserve s3->init_extra along with s3->rbuf. |
| 60 [Bob Buckholz (Google)] |
| 61 |
| 62 Changes between 1.0.0d and 1.0.0e [6 Sep 2011] |
| 63 |
| 64 *) Fix bug where CRLs with nextUpdate in the past are sometimes accepted |
| 65 by initialising X509_STORE_CTX properly. (CVE-2011-3207) |
| 66 [Kaspar Brand <ossl@velox.ch>] |
| 67 |
| 68 *) Fix SSL memory handling for (EC)DH ciphersuites, in particular |
| 69 for multi-threaded use of ECDH. (CVE-2011-3210) |
| 70 [Adam Langley (Google)] |
| 71 |
| 72 *) Fix x509_name_ex_d2i memory leak on bad inputs. |
| 73 [Bodo Moeller] |
| 74 |
| 75 *) Remove hard coded ecdsaWithSHA1 signature tests in ssl code and check |
| 76 signature public key algorithm by using OID xref utilities instead. |
| 77 Before this you could only use some ECC ciphersuites with SHA1 only. |
| 78 [Steve Henson] |
| 79 |
| 80 *) Add protection against ECDSA timing attacks as mentioned in the paper |
| 81 by Billy Bob Brumley and Nicola Tuveri, see: |
| 82 |
| 83 http://eprint.iacr.org/2011/232.pdf |
| 84 |
| 85 [Billy Bob Brumley and Nicola Tuveri] |
| 86 |
| 87 Changes between 1.0.0c and 1.0.0d [8 Feb 2011] |
| 88 |
| 89 *) Fix parsing of OCSP stapling ClientHello extension. CVE-2011-0014 |
| 90 [Neel Mehta, Adam Langley, Bodo Moeller (Google)] |
| 91 |
| 92 *) Fix bug in string printing code: if *any* escaping is enabled we must |
| 93 escape the escape character (backslash) or the resulting string is |
| 94 ambiguous. |
| 95 [Steve Henson] |
| 96 |
| 97 Changes between 1.0.0b and 1.0.0c [2 Dec 2010] |
| 98 |
| 99 *) Disable code workaround for ancient and obsolete Netscape browsers |
| 100 and servers: an attacker can use it in a ciphersuite downgrade attack. |
| 101 Thanks to Martin Rex for discovering this bug. CVE-2010-4180 |
| 102 [Steve Henson] |
| 103 |
| 104 *) Fixed J-PAKE implementation error, originally discovered by |
| 105 Sebastien Martini, further info and confirmation from Stefan |
| 106 Arentz and Feng Hao. Note that this fix is a security fix. CVE-2010-4252 |
| 107 [Ben Laurie] |
| 108 |
| 109 Changes between 1.0.0a and 1.0.0b [16 Nov 2010] |
| 110 |
| 111 *) Fix extension code to avoid race conditions which can result in a buffer |
| 112 overrun vulnerability: resumed sessions must not be modified as they can |
| 113 be shared by multiple threads. CVE-2010-3864 |
| 114 [Steve Henson] |
| 115 |
| 116 *) Fix WIN32 build system to correctly link an ENGINE directory into |
| 117 a DLL. |
| 118 [Steve Henson] |
| 119 |
| 120 Changes between 1.0.0 and 1.0.0a [01 Jun 2010] |
| 121 |
| 122 *) Check return value of int_rsa_verify in pkey_rsa_verifyrecover |
| 123 (CVE-2010-1633) |
| 124 [Steve Henson, Peter-Michael Hager <hager@dortmund.net>] |
| 125 |
| 126 Changes between 0.9.8n and 1.0.0 [29 Mar 2010] |
| 127 |
| 128 *) Add "missing" function EVP_CIPHER_CTX_copy(). This copies a cipher |
| 129 context. The operation can be customised via the ctrl mechanism in |
| 130 case ENGINEs want to include additional functionality. |
| 131 [Steve Henson] |
| 132 |
| 133 *) Tolerate yet another broken PKCS#8 key format: private key value negative. |
| 134 [Steve Henson] |
| 135 |
| 136 *) Add new -subject_hash_old and -issuer_hash_old options to x509 utility to |
| 137 output hashes compatible with older versions of OpenSSL. |
| 138 [Willy Weisz <weisz@vcpc.univie.ac.at>] |
| 139 |
| 140 *) Fix compression algorithm handling: if resuming a session use the |
| 141 compression algorithm of the resumed session instead of determining |
| 142 it from client hello again. Don't allow server to change algorithm. |
| 143 [Steve Henson] |
| 144 |
| 145 *) Add load_crls() function to apps tidying load_certs() too. Add option |
| 146 to verify utility to allow additional CRLs to be included. |
| 147 [Steve Henson] |
| 148 |
| 149 *) Update OCSP request code to permit adding custom headers to the request: |
| 150 some responders need this. |
| 151 [Steve Henson] |
| 152 |
| 153 *) The function EVP_PKEY_sign() returns <=0 on error: check return code |
| 154 correctly. |
| 155 [Julia Lawall <julia@diku.dk>] |
| 156 |
| 157 *) Update verify callback code in apps/s_cb.c and apps/verify.c, it |
| 158 needlessly dereferenced structures, used obsolete functions and |
| 159 didn't handle all updated verify codes correctly. |
| 160 [Steve Henson] |
| 161 |
| 162 *) Disable MD2 in the default configuration. |
| 163 [Steve Henson] |
| 164 |
| 165 *) In BIO_pop() and BIO_push() use the ctrl argument (which was NULL) to |
| 166 indicate the initial BIO being pushed or popped. This makes it possible |
| 167 to determine whether the BIO is the one explicitly called or as a result |
| 168 of the ctrl being passed down the chain. Fix BIO_pop() and SSL BIOs so |
| 169 it handles reference counts correctly and doesn't zero out the I/O bio |
| 170 when it is not being explicitly popped. WARNING: applications which |
| 171 included workarounds for the old buggy behaviour will need to be modified |
| 172 or they could free up already freed BIOs. |
| 173 [Steve Henson] |
| 174 |
| 175 *) Extend the uni2asc/asc2uni => OPENSSL_uni2asc/OPENSSL_asc2uni |
| 176 renaming to all platforms (within the 0.9.8 branch, this was |
| 177 done conditionally on Netware platforms to avoid a name clash). |
| 178 [Guenter <lists@gknw.net>] |
| 179 |
| 180 *) Add ECDHE and PSK support to DTLS. |
| 181 [Michael Tuexen <tuexen@fh-muenster.de>] |
| 182 |
| 183 *) Add CHECKED_STACK_OF macro to safestack.h, otherwise safestack can't |
| 184 be used on C++. |
| 185 [Steve Henson] |
| 186 |
| 187 *) Add "missing" function EVP_MD_flags() (without this the only way to |
| 188 retrieve a digest flags is by accessing the structure directly. Update |
| 189 EVP_MD_do_all*() and EVP_CIPHER_do_all*() to include the name a digest |
| 190 or cipher is registered as in the "from" argument. Print out all |
| 191 registered digests in the dgst usage message instead of manually |
| 192 attempting to work them out. |
| 193 [Steve Henson] |
| 194 |
| 195 *) If no SSLv2 ciphers are used don't use an SSLv2 compatible client hello: |
| 196 this allows the use of compression and extensions. Change default cipher |
| 197 string to remove SSLv2 ciphersuites. This effectively avoids ancient SSLv2 |
| 198 by default unless an application cipher string requests it. |
| 199 [Steve Henson] |
| 200 |
| 201 *) Alter match criteria in PKCS12_parse(). It used to try to use local |
| 202 key ids to find matching certificates and keys but some PKCS#12 files |
| 203 don't follow the (somewhat unwritten) rules and this strategy fails. |
| 204 Now just gather all certificates together and the first private key |
| 205 then look for the first certificate that matches the key. |
| 206 [Steve Henson] |
| 207 |
| 208 *) Support use of registered digest and cipher names for dgst and cipher |
| 209 commands instead of having to add each one as a special case. So now |
| 210 you can do: |
| 211 |
| 212 openssl sha256 foo |
| 213 |
| 214 as well as: |
| 215 |
| 216 openssl dgst -sha256 foo |
| 217 |
| 218 and this works for ENGINE based algorithms too. |
| 219 |
| 220 [Steve Henson] |
| 221 |
| 222 *) Update Gost ENGINE to support parameter files. |
| 223 [Victor B. Wagner <vitus@cryptocom.ru>] |
| 224 |
| 225 *) Support GeneralizedTime in ca utility. |
| 226 [Oliver Martin <oliver@volatilevoid.net>, Steve Henson] |
| 227 |
| 228 *) Enhance the hash format used for certificate directory links. The new |
| 229 form uses the canonical encoding (meaning equivalent names will work |
| 230 even if they aren't identical) and uses SHA1 instead of MD5. This form |
| 231 is incompatible with the older format and as a result c_rehash should |
| 232 be used to rebuild symbolic links. |
| 233 [Steve Henson] |
| 234 |
| 235 *) Make PKCS#8 the default write format for private keys, replacing the |
| 236 traditional format. This form is standardised, more secure and doesn't |
| 237 include an implicit MD5 dependency. |
| 238 [Steve Henson] |
| 239 |
| 240 *) Add a $gcc_devteam_warn option to Configure. The idea is that any code |
| 241 committed to OpenSSL should pass this lot as a minimum. |
| 242 [Steve Henson] |
| 243 |
| 244 *) Add session ticket override functionality for use by EAP-FAST. |
| 245 [Jouni Malinen <j@w1.fi>] |
| 246 |
| 247 *) Modify HMAC functions to return a value. Since these can be implemented |
| 248 in an ENGINE errors can occur. |
| 249 [Steve Henson] |
| 250 |
| 251 *) Type-checked OBJ_bsearch_ex. |
| 252 [Ben Laurie] |
| 253 |
| 254 *) Type-checked OBJ_bsearch. Also some constification necessitated |
| 255 by type-checking. Still to come: TXT_DB, bsearch(?), |
| 256 OBJ_bsearch_ex, qsort, CRYPTO_EX_DATA, ASN1_VALUE, ASN1_STRING, |
| 257 CONF_VALUE. |
| 258 [Ben Laurie] |
| 259 |
| 260 *) New function OPENSSL_gmtime_adj() to add a specific number of days and |
| 261 seconds to a tm structure directly, instead of going through OS |
| 262 specific date routines. This avoids any issues with OS routines such |
| 263 as the year 2038 bug. New *_adj() functions for ASN1 time structures |
| 264 and X509_time_adj_ex() to cover the extended range. The existing |
| 265 X509_time_adj() is still usable and will no longer have any date issues. |
| 266 [Steve Henson] |
| 267 |
| 268 *) Delta CRL support. New use deltas option which will attempt to locate |
| 269 and search any appropriate delta CRLs available. |
| 270 |
| 271 This work was sponsored by Google. |
| 272 [Steve Henson] |
| 273 |
| 274 *) Support for CRLs partitioned by reason code. Reorganise CRL processing |
| 275 code and add additional score elements. Validate alternate CRL paths |
| 276 as part of the CRL checking and indicate a new error "CRL path validation |
| 277 error" in this case. Applications wanting additional details can use |
| 278 the verify callback and check the new "parent" field. If this is not |
| 279 NULL CRL path validation is taking place. Existing applications wont |
| 280 see this because it requires extended CRL support which is off by |
| 281 default. |
| 282 |
| 283 This work was sponsored by Google. |
| 284 [Steve Henson] |
| 285 |
| 286 *) Support for freshest CRL extension. |
| 287 |
| 288 This work was sponsored by Google. |
| 289 [Steve Henson] |
| 290 |
| 291 *) Initial indirect CRL support. Currently only supported in the CRLs |
| 292 passed directly and not via lookup. Process certificate issuer |
| 293 CRL entry extension and lookup CRL entries by bother issuer name |
| 294 and serial number. Check and process CRL issuer entry in IDP extension. |
| 295 |
| 296 This work was sponsored by Google. |
| 297 [Steve Henson] |
| 298 |
| 299 *) Add support for distinct certificate and CRL paths. The CRL issuer |
| 300 certificate is validated separately in this case. Only enabled if |
| 301 an extended CRL support flag is set: this flag will enable additional |
| 302 CRL functionality in future. |
| 303 |
| 304 This work was sponsored by Google. |
| 305 [Steve Henson] |
| 306 |
| 307 *) Add support for policy mappings extension. |
| 308 |
| 309 This work was sponsored by Google. |
| 310 [Steve Henson] |
| 311 |
| 312 *) Fixes to pathlength constraint, self issued certificate handling, |
| 313 policy processing to align with RFC3280 and PKITS tests. |
| 314 |
| 315 This work was sponsored by Google. |
| 316 [Steve Henson] |
| 317 |
| 318 *) Support for name constraints certificate extension. DN, email, DNS |
| 319 and URI types are currently supported. |
| 320 |
| 321 This work was sponsored by Google. |
| 322 [Steve Henson] |
| 323 |
| 324 *) To cater for systems that provide a pointer-based thread ID rather |
| 325 than numeric, deprecate the current numeric thread ID mechanism and |
| 326 replace it with a structure and associated callback type. This |
| 327 mechanism allows a numeric "hash" to be extracted from a thread ID in |
| 328 either case, and on platforms where pointers are larger than 'long', |
| 329 mixing is done to help ensure the numeric 'hash' is usable even if it |
| 330 can't be guaranteed unique. The default mechanism is to use "&errno" |
| 331 as a pointer-based thread ID to distinguish between threads. |
| 332 |
| 333 Applications that want to provide their own thread IDs should now use |
| 334 CRYPTO_THREADID_set_callback() to register a callback that will call |
| 335 either CRYPTO_THREADID_set_numeric() or CRYPTO_THREADID_set_pointer(). |
| 336 |
| 337 Note that ERR_remove_state() is now deprecated, because it is tied |
| 338 to the assumption that thread IDs are numeric. ERR_remove_state(0) |
| 339 to free the current thread's error state should be replaced by |
| 340 ERR_remove_thread_state(NULL). |
| 341 |
| 342 (This new approach replaces the functions CRYPTO_set_idptr_callback(), |
| 343 CRYPTO_get_idptr_callback(), and CRYPTO_thread_idptr() that existed in |
| 344 OpenSSL 0.9.9-dev between June 2006 and August 2008. Also, if an |
| 345 application was previously providing a numeric thread callback that |
| 346 was inappropriate for distinguishing threads, then uniqueness might |
| 347 have been obtained with &errno that happened immediately in the |
| 348 intermediate development versions of OpenSSL; this is no longer the |
| 349 case, the numeric thread callback will now override the automatic use |
| 350 of &errno.) |
| 351 [Geoff Thorpe, with help from Bodo Moeller] |
| 352 |
| 353 *) Initial support for different CRL issuing certificates. This covers a |
| 354 simple case where the self issued certificates in the chain exist and |
| 355 the real CRL issuer is higher in the existing chain. |
| 356 |
| 357 This work was sponsored by Google. |
| 358 [Steve Henson] |
| 359 |
| 360 *) Removed effectively defunct crypto/store from the build. |
| 361 [Ben Laurie] |
| 362 |
| 363 *) Revamp of STACK to provide stronger type-checking. Still to come: |
| 364 TXT_DB, bsearch(?), OBJ_bsearch, qsort, CRYPTO_EX_DATA, ASN1_VALUE, |
| 365 ASN1_STRING, CONF_VALUE. |
| 366 [Ben Laurie] |
| 367 |
| 368 *) Add a new SSL_MODE_RELEASE_BUFFERS mode flag to release unused buffer |
| 369 RAM on SSL connections. This option can save about 34k per idle SSL. |
| 370 [Nick Mathewson] |
| 371 |
| 372 *) Revamp of LHASH to provide stronger type-checking. Still to come: |
| 373 STACK, TXT_DB, bsearch, qsort. |
| 374 [Ben Laurie] |
| 375 |
| 376 *) Initial support for Cryptographic Message Syntax (aka CMS) based |
| 377 on RFC3850, RFC3851 and RFC3852. New cms directory and cms utility, |
| 378 support for data, signedData, compressedData, digestedData and |
| 379 encryptedData, envelopedData types included. Scripts to check against |
| 380 RFC4134 examples draft and interop and consistency checks of many |
| 381 content types and variants. |
| 382 [Steve Henson] |
| 383 |
| 384 *) Add options to enc utility to support use of zlib compression BIO. |
| 385 [Steve Henson] |
| 386 |
| 387 *) Extend mk1mf to support importing of options and assembly language |
| 388 files from Configure script, currently only included in VC-WIN32. |
| 389 The assembly language rules can now optionally generate the source |
| 390 files from the associated perl scripts. |
| 391 [Steve Henson] |
| 392 |
| 393 *) Implement remaining functionality needed to support GOST ciphersuites. |
| 394 Interop testing has been performed using CryptoPro implementations. |
| 395 [Victor B. Wagner <vitus@cryptocom.ru>] |
| 396 |
| 397 *) s390x assembler pack. |
| 398 [Andy Polyakov] |
| 399 |
| 400 *) ARMv4 assembler pack. ARMv4 refers to v4 and later ISA, not CPU |
| 401 "family." |
| 402 [Andy Polyakov] |
| 403 |
| 404 *) Implement Opaque PRF Input TLS extension as specified in |
| 405 draft-rescorla-tls-opaque-prf-input-00.txt. Since this is not an |
| 406 official specification yet and no extension type assignment by |
| 407 IANA exists, this extension (for now) will have to be explicitly |
| 408 enabled when building OpenSSL by providing the extension number |
| 409 to use. For example, specify an option |
| 410 |
| 411 -DTLSEXT_TYPE_opaque_prf_input=0x9527 |
| 412 |
| 413 to the "config" or "Configure" script to enable the extension, |
| 414 assuming extension number 0x9527 (which is a completely arbitrary |
| 415 and unofficial assignment based on the MD5 hash of the Internet |
| 416 Draft). Note that by doing so, you potentially lose |
| 417 interoperability with other TLS implementations since these might |
| 418 be using the same extension number for other purposes. |
| 419 |
| 420 SSL_set_tlsext_opaque_prf_input(ssl, src, len) is used to set the |
| 421 opaque PRF input value to use in the handshake. This will create |
| 422 an interal copy of the length-'len' string at 'src', and will |
| 423 return non-zero for success. |
| 424 |
| 425 To get more control and flexibility, provide a callback function |
| 426 by using |
| 427 |
| 428 SSL_CTX_set_tlsext_opaque_prf_input_callback(ctx, cb) |
| 429 SSL_CTX_set_tlsext_opaque_prf_input_callback_arg(ctx, arg) |
| 430 |
| 431 where |
| 432 |
| 433 int (*cb)(SSL *, void *peerinput, size_t len, void *arg); |
| 434 void *arg; |
| 435 |
| 436 Callback function 'cb' will be called in handshakes, and is |
| 437 expected to use SSL_set_tlsext_opaque_prf_input() as appropriate. |
| 438 Argument 'arg' is for application purposes (the value as given to |
| 439 SSL_CTX_set_tlsext_opaque_prf_input_callback_arg() will directly |
| 440 be provided to the callback function). The callback function |
| 441 has to return non-zero to report success: usually 1 to use opaque |
| 442 PRF input just if possible, or 2 to enforce use of the opaque PRF |
| 443 input. In the latter case, the library will abort the handshake |
| 444 if opaque PRF input is not successfully negotiated. |
| 445 |
| 446 Arguments 'peerinput' and 'len' given to the callback function |
| 447 will always be NULL and 0 in the case of a client. A server will |
| 448 see the client's opaque PRF input through these variables if |
| 449 available (NULL and 0 otherwise). Note that if the server |
| 450 provides an opaque PRF input, the length must be the same as the |
| 451 length of the client's opaque PRF input. |
| 452 |
| 453 Note that the callback function will only be called when creating |
| 454 a new session (session resumption can resume whatever was |
| 455 previously negotiated), and will not be called in SSL 2.0 |
| 456 handshakes; thus, SSL_CTX_set_options(ctx, SSL_OP_NO_SSLv2) or |
| 457 SSL_set_options(ssl, SSL_OP_NO_SSLv2) is especially recommended |
| 458 for applications that need to enforce opaque PRF input. |
| 459 |
| 460 [Bodo Moeller] |
| 461 |
| 462 *) Update ssl code to support digests other than SHA1+MD5 for handshake |
| 463 MAC. |
| 464 |
| 465 [Victor B. Wagner <vitus@cryptocom.ru>] |
| 466 |
| 467 *) Add RFC4507 support to OpenSSL. This includes the corrections in |
| 468 RFC4507bis. The encrypted ticket format is an encrypted encoded |
| 469 SSL_SESSION structure, that way new session features are automatically |
| 470 supported. |
| 471 |
| 472 If a client application caches session in an SSL_SESSION structure |
| 473 support is transparent because tickets are now stored in the encoded |
| 474 SSL_SESSION. |
| 475 |
| 476 The SSL_CTX structure automatically generates keys for ticket |
| 477 protection in servers so again support should be possible |
| 478 with no application modification. |
| 479 |
| 480 If a client or server wishes to disable RFC4507 support then the option |
| 481 SSL_OP_NO_TICKET can be set. |
| 482 |
| 483 Add a TLS extension debugging callback to allow the contents of any client |
| 484 or server extensions to be examined. |
| 485 |
| 486 This work was sponsored by Google. |
| 487 [Steve Henson] |
| 488 |
| 489 *) Final changes to avoid use of pointer pointer casts in OpenSSL. |
| 490 OpenSSL should now compile cleanly on gcc 4.2 |
| 491 [Peter Hartley <pdh@utter.chaos.org.uk>, Steve Henson] |
| 492 |
| 493 *) Update SSL library to use new EVP_PKEY MAC API. Include generic MAC |
| 494 support including streaming MAC support: this is required for GOST |
| 495 ciphersuite support. |
| 496 [Victor B. Wagner <vitus@cryptocom.ru>, Steve Henson] |
| 497 |
| 498 *) Add option -stream to use PKCS#7 streaming in smime utility. New |
| 499 function i2d_PKCS7_bio_stream() and PEM_write_PKCS7_bio_stream() |
| 500 to output in BER and PEM format. |
| 501 [Steve Henson] |
| 502 |
| 503 *) Experimental support for use of HMAC via EVP_PKEY interface. This |
| 504 allows HMAC to be handled via the EVP_DigestSign*() interface. The |
| 505 EVP_PKEY "key" in this case is the HMAC key, potentially allowing |
| 506 ENGINE support for HMAC keys which are unextractable. New -mac and |
| 507 -macopt options to dgst utility. |
| 508 [Steve Henson] |
| 509 |
| 510 *) New option -sigopt to dgst utility. Update dgst to use |
| 511 EVP_Digest{Sign,Verify}*. These two changes make it possible to use |
| 512 alternative signing paramaters such as X9.31 or PSS in the dgst |
| 513 utility. |
| 514 [Steve Henson] |
| 515 |
| 516 *) Change ssl_cipher_apply_rule(), the internal function that does |
| 517 the work each time a ciphersuite string requests enabling |
| 518 ("foo+bar"), moving ("+foo+bar"), disabling ("-foo+bar", or |
| 519 removing ("!foo+bar") a class of ciphersuites: Now it maintains |
| 520 the order of disabled ciphersuites such that those ciphersuites |
| 521 that most recently went from enabled to disabled not only stay |
| 522 in order with respect to each other, but also have higher priority |
| 523 than other disabled ciphersuites the next time ciphersuites are |
| 524 enabled again. |
| 525 |
| 526 This means that you can now say, e.g., "PSK:-PSK:HIGH" to enable |
| 527 the same ciphersuites as with "HIGH" alone, but in a specific |
| 528 order where the PSK ciphersuites come first (since they are the |
| 529 most recently disabled ciphersuites when "HIGH" is parsed). |
| 530 |
| 531 Also, change ssl_create_cipher_list() (using this new |
| 532 funcionality) such that between otherwise identical |
| 533 cihpersuites, ephemeral ECDH is preferred over ephemeral DH in |
| 534 the default order. |
| 535 [Bodo Moeller] |
| 536 |
| 537 *) Change ssl_create_cipher_list() so that it automatically |
| 538 arranges the ciphersuites in reasonable order before starting |
| 539 to process the rule string. Thus, the definition for "DEFAULT" |
| 540 (SSL_DEFAULT_CIPHER_LIST) now is just "ALL:!aNULL:!eNULL", but |
| 541 remains equivalent to "AES:ALL:!aNULL:!eNULL:+aECDH:+kRSA:+RC4:@STRENGTH". |
| 542 This makes it much easier to arrive at a reasonable default order |
| 543 in applications for which anonymous ciphers are OK (meaning |
| 544 that you can't actually use DEFAULT). |
| 545 [Bodo Moeller; suggested by Victor Duchovni] |
| 546 |
| 547 *) Split the SSL/TLS algorithm mask (as used for ciphersuite string |
| 548 processing) into multiple integers instead of setting |
| 549 "SSL_MKEY_MASK" bits, "SSL_AUTH_MASK" bits, "SSL_ENC_MASK", |
| 550 "SSL_MAC_MASK", and "SSL_SSL_MASK" bits all in a single integer. |
| 551 (These masks as well as the individual bit definitions are hidden |
| 552 away into the non-exported interface ssl/ssl_locl.h, so this |
| 553 change to the definition of the SSL_CIPHER structure shouldn't |
| 554 affect applications.) This give us more bits for each of these |
| 555 categories, so there is no longer a need to coagulate AES128 and |
| 556 AES256 into a single algorithm bit, and to coagulate Camellia128 |
| 557 and Camellia256 into a single algorithm bit, which has led to all |
| 558 kinds of kludges. |
| 559 |
| 560 Thus, among other things, the kludge introduced in 0.9.7m and |
| 561 0.9.8e for masking out AES256 independently of AES128 or masking |
| 562 out Camellia256 independently of AES256 is not needed here in 0.9.9. |
| 563 |
| 564 With the change, we also introduce new ciphersuite aliases that |
| 565 so far were missing: "AES128", "AES256", "CAMELLIA128", and |
| 566 "CAMELLIA256". |
| 567 [Bodo Moeller] |
| 568 |
| 569 *) Add support for dsa-with-SHA224 and dsa-with-SHA256. |
| 570 Use the leftmost N bytes of the signature input if the input is |
| 571 larger than the prime q (with N being the size in bytes of q). |
| 572 [Nils Larsch] |
| 573 |
| 574 *) Very *very* experimental PKCS#7 streaming encoder support. Nothing uses |
| 575 it yet and it is largely untested. |
| 576 [Steve Henson] |
| 577 |
| 578 *) Add support for the ecdsa-with-SHA224/256/384/512 signature types. |
| 579 [Nils Larsch] |
| 580 |
| 581 *) Initial incomplete changes to avoid need for function casts in OpenSSL |
| 582 some compilers (gcc 4.2 and later) reject their use. Safestack is |
| 583 reimplemented. Update ASN1 to avoid use of legacy functions. |
| 584 [Steve Henson] |
| 585 |
| 586 *) Win32/64 targets are linked with Winsock2. |
| 587 [Andy Polyakov] |
| 588 |
| 589 *) Add an X509_CRL_METHOD structure to allow CRL processing to be redirected |
| 590 to external functions. This can be used to increase CRL handling |
| 591 efficiency especially when CRLs are very large by (for example) storing |
| 592 the CRL revoked certificates in a database. |
| 593 [Steve Henson] |
| 594 |
| 595 *) Overhaul of by_dir code. Add support for dynamic loading of CRLs so |
| 596 new CRLs added to a directory can be used. New command line option |
| 597 -verify_return_error to s_client and s_server. This causes real errors |
| 598 to be returned by the verify callback instead of carrying on no matter |
| 599 what. This reflects the way a "real world" verify callback would behave. |
| 600 [Steve Henson] |
| 601 |
| 602 *) GOST engine, supporting several GOST algorithms and public key formats. |
| 603 Kindly donated by Cryptocom. |
| 604 [Cryptocom] |
| 605 |
| 606 *) Partial support for Issuing Distribution Point CRL extension. CRLs |
| 607 partitioned by DP are handled but no indirect CRL or reason partitioning |
| 608 (yet). Complete overhaul of CRL handling: now the most suitable CRL is |
| 609 selected via a scoring technique which handles IDP and AKID in CRLs. |
| 610 [Steve Henson] |
| 611 |
| 612 *) New X509_STORE_CTX callbacks lookup_crls() and lookup_certs() which |
| 613 will ultimately be used for all verify operations: this will remove the |
| 614 X509_STORE dependency on certificate verification and allow alternative |
| 615 lookup methods. X509_STORE based implementations of these two callbacks. |
| 616 [Steve Henson] |
| 617 |
| 618 *) Allow multiple CRLs to exist in an X509_STORE with matching issuer names. |
| 619 Modify get_crl() to find a valid (unexpired) CRL if possible. |
| 620 [Steve Henson] |
| 621 |
| 622 *) New function X509_CRL_match() to check if two CRLs are identical. Normally |
| 623 this would be called X509_CRL_cmp() but that name is already used by |
| 624 a function that just compares CRL issuer names. Cache several CRL |
| 625 extensions in X509_CRL structure and cache CRLDP in X509. |
| 626 [Steve Henson] |
| 627 |
| 628 *) Store a "canonical" representation of X509_NAME structure (ASN1 Name) |
| 629 this maps equivalent X509_NAME structures into a consistent structure. |
| 630 Name comparison can then be performed rapidly using memcmp(). |
| 631 [Steve Henson] |
| 632 |
| 633 *) Non-blocking OCSP request processing. Add -timeout option to ocsp |
| 634 utility. |
| 635 [Steve Henson] |
| 636 |
| 637 *) Allow digests to supply their own micalg string for S/MIME type using |
| 638 the ctrl EVP_MD_CTRL_MICALG. |
| 639 [Steve Henson] |
| 640 |
| 641 *) During PKCS7 signing pass the PKCS7 SignerInfo structure to the |
| 642 EVP_PKEY_METHOD before and after signing via the EVP_PKEY_CTRL_PKCS7_SIGN |
| 643 ctrl. It can then customise the structure before and/or after signing |
| 644 if necessary. |
| 645 [Steve Henson] |
| 646 |
| 647 *) New function OBJ_add_sigid() to allow application defined signature OIDs |
| 648 to be added to OpenSSLs internal tables. New function OBJ_sigid_free() |
| 649 to free up any added signature OIDs. |
| 650 [Steve Henson] |
| 651 |
| 652 *) New functions EVP_CIPHER_do_all(), EVP_CIPHER_do_all_sorted(), |
| 653 EVP_MD_do_all() and EVP_MD_do_all_sorted() to enumerate internal |
| 654 digest and cipher tables. New options added to openssl utility: |
| 655 list-message-digest-algorithms and list-cipher-algorithms. |
| 656 [Steve Henson] |
| 657 |
| 658 *) Change the array representation of binary polynomials: the list |
| 659 of degrees of non-zero coefficients is now terminated with -1. |
| 660 Previously it was terminated with 0, which was also part of the |
| 661 value; thus, the array representation was not applicable to |
| 662 polynomials where t^0 has coefficient zero. This change makes |
| 663 the array representation useful in a more general context. |
| 664 [Douglas Stebila] |
| 665 |
| 666 *) Various modifications and fixes to SSL/TLS cipher string |
| 667 handling. For ECC, the code now distinguishes between fixed ECDH |
| 668 with RSA certificates on the one hand and with ECDSA certificates |
| 669 on the other hand, since these are separate ciphersuites. The |
| 670 unused code for Fortezza ciphersuites has been removed. |
| 671 |
| 672 For consistency with EDH, ephemeral ECDH is now called "EECDH" |
| 673 (not "ECDHE"). For consistency with the code for DH |
| 674 certificates, use of ECDH certificates is now considered ECDH |
| 675 authentication, not RSA or ECDSA authentication (the latter is |
| 676 merely the CA's signing algorithm and not actively used in the |
| 677 protocol). |
| 678 |
| 679 The temporary ciphersuite alias "ECCdraft" is no longer |
| 680 available, and ECC ciphersuites are no longer excluded from "ALL" |
| 681 and "DEFAULT". The following aliases now exist for RFC 4492 |
| 682 ciphersuites, most of these by analogy with the DH case: |
| 683 |
| 684 kECDHr - ECDH cert, signed with RSA |
| 685 kECDHe - ECDH cert, signed with ECDSA |
| 686 kECDH - ECDH cert (signed with either RSA or ECDSA) |
| 687 kEECDH - ephemeral ECDH |
| 688 ECDH - ECDH cert or ephemeral ECDH |
| 689 |
| 690 aECDH - ECDH cert |
| 691 aECDSA - ECDSA cert |
| 692 ECDSA - ECDSA cert |
| 693 |
| 694 AECDH - anonymous ECDH |
| 695 EECDH - non-anonymous ephemeral ECDH (equivalent to "kEECDH:-AECDH") |
| 696 |
| 697 [Bodo Moeller] |
| 698 |
| 699 *) Add additional S/MIME capabilities for AES and GOST ciphers if supported. |
| 700 Use correct micalg parameters depending on digest(s) in signed message. |
| 701 [Steve Henson] |
| 702 |
| 703 *) Add engine support for EVP_PKEY_ASN1_METHOD. Add functions to process |
| 704 an ENGINE asn1 method. Support ENGINE lookups in the ASN1 code. |
| 705 [Steve Henson] |
| 706 |
| 707 *) Initial engine support for EVP_PKEY_METHOD. New functions to permit |
| 708 an engine to register a method. Add ENGINE lookups for methods and |
| 709 functional reference processing. |
| 710 [Steve Henson] |
| 711 |
| 712 *) New functions EVP_Digest{Sign,Verify)*. These are enchance versions of |
| 713 EVP_{Sign,Verify}* which allow an application to customise the signature |
| 714 process. |
| 715 [Steve Henson] |
| 716 |
| 717 *) New -resign option to smime utility. This adds one or more signers |
| 718 to an existing PKCS#7 signedData structure. Also -md option to use an |
| 719 alternative message digest algorithm for signing. |
| 720 [Steve Henson] |
| 721 |
| 722 *) Tidy up PKCS#7 routines and add new functions to make it easier to |
| 723 create PKCS7 structures containing multiple signers. Update smime |
| 724 application to support multiple signers. |
| 725 [Steve Henson] |
| 726 |
| 727 *) New -macalg option to pkcs12 utility to allow setting of an alternative |
| 728 digest MAC. |
| 729 [Steve Henson] |
| 730 |
| 731 *) Initial support for PKCS#5 v2.0 PRFs other than default SHA1 HMAC. |
| 732 Reorganize PBE internals to lookup from a static table using NIDs, |
| 733 add support for HMAC PBE OID translation. Add a EVP_CIPHER ctrl: |
| 734 EVP_CTRL_PBE_PRF_NID this allows a cipher to specify an alternative |
| 735 PRF which will be automatically used with PBES2. |
| 736 [Steve Henson] |
| 737 |
| 738 *) Replace the algorithm specific calls to generate keys in "req" with the |
| 739 new API. |
| 740 [Steve Henson] |
| 741 |
| 742 *) Update PKCS#7 enveloped data routines to use new API. This is now |
| 743 supported by any public key method supporting the encrypt operation. A |
| 744 ctrl is added to allow the public key algorithm to examine or modify |
| 745 the PKCS#7 RecipientInfo structure if it needs to: for RSA this is |
| 746 a no op. |
| 747 [Steve Henson] |
| 748 |
| 749 *) Add a ctrl to asn1 method to allow a public key algorithm to express |
| 750 a default digest type to use. In most cases this will be SHA1 but some |
| 751 algorithms (such as GOST) need to specify an alternative digest. The |
| 752 return value indicates how strong the prefernce is 1 means optional and |
| 753 2 is mandatory (that is it is the only supported type). Modify |
| 754 ASN1_item_sign() to accept a NULL digest argument to indicate it should |
| 755 use the default md. Update openssl utilities to use the default digest |
| 756 type for signing if it is not explicitly indicated. |
| 757 [Steve Henson] |
| 758 |
| 759 *) Use OID cross reference table in ASN1_sign() and ASN1_verify(). New |
| 760 EVP_MD flag EVP_MD_FLAG_PKEY_METHOD_SIGNATURE. This uses the relevant |
| 761 signing method from the key type. This effectively removes the link |
| 762 between digests and public key types. |
| 763 [Steve Henson] |
| 764 |
| 765 *) Add an OID cross reference table and utility functions. Its purpose is to |
| 766 translate between signature OIDs such as SHA1WithrsaEncryption and SHA1, |
| 767 rsaEncryption. This will allow some of the algorithm specific hackery |
| 768 needed to use the correct OID to be removed. |
| 769 [Steve Henson] |
| 770 |
| 771 *) Remove algorithm specific dependencies when setting PKCS7_SIGNER_INFO |
| 772 structures for PKCS7_sign(). They are now set up by the relevant public |
| 773 key ASN1 method. |
| 774 [Steve Henson] |
| 775 |
| 776 *) Add provisional EC pkey method with support for ECDSA and ECDH. |
| 777 [Steve Henson] |
| 778 |
| 779 *) Add support for key derivation (agreement) in the API, DH method and |
| 780 pkeyutl. |
| 781 [Steve Henson] |
| 782 |
| 783 *) Add DSA pkey method and DH pkey methods, extend DH ASN1 method to support |
| 784 public and private key formats. As a side effect these add additional |
| 785 command line functionality not previously available: DSA signatures can be |
| 786 generated and verified using pkeyutl and DH key support and generation in |
| 787 pkey, genpkey. |
| 788 [Steve Henson] |
| 789 |
| 790 *) BeOS support. |
| 791 [Oliver Tappe <zooey@hirschkaefer.de>] |
| 792 |
| 793 *) New make target "install_html_docs" installs HTML renditions of the |
| 794 manual pages. |
| 795 [Oliver Tappe <zooey@hirschkaefer.de>] |
| 796 |
| 797 *) New utility "genpkey" this is analagous to "genrsa" etc except it can |
| 798 generate keys for any algorithm. Extend and update EVP_PKEY_METHOD to |
| 799 support key and parameter generation and add initial key generation |
| 800 functionality for RSA. |
| 801 [Steve Henson] |
| 802 |
| 803 *) Add functions for main EVP_PKEY_method operations. The undocumented |
| 804 functions EVP_PKEY_{encrypt,decrypt} have been renamed to |
| 805 EVP_PKEY_{encrypt,decrypt}_old. |
| 806 [Steve Henson] |
| 807 |
| 808 *) Initial definitions for EVP_PKEY_METHOD. This will be a high level public |
| 809 key API, doesn't do much yet. |
| 810 [Steve Henson] |
| 811 |
| 812 *) New function EVP_PKEY_asn1_get0_info() to retrieve information about |
| 813 public key algorithms. New option to openssl utility: |
| 814 "list-public-key-algorithms" to print out info. |
| 815 [Steve Henson] |
| 816 |
| 817 *) Implement the Supported Elliptic Curves Extension for |
| 818 ECC ciphersuites from draft-ietf-tls-ecc-12.txt. |
| 819 [Douglas Stebila] |
| 820 |
| 821 *) Don't free up OIDs in OBJ_cleanup() if they are in use by EVP_MD or |
| 822 EVP_CIPHER structures to avoid later problems in EVP_cleanup(). |
| 823 [Steve Henson] |
| 824 |
| 825 *) New utilities pkey and pkeyparam. These are similar to algorithm specific |
| 826 utilities such as rsa, dsa, dsaparam etc except they process any key |
| 827 type. |
| 828 [Steve Henson] |
| 829 |
| 830 *) Transfer public key printing routines to EVP_PKEY_ASN1_METHOD. New |
| 831 functions EVP_PKEY_print_public(), EVP_PKEY_print_private(), |
| 832 EVP_PKEY_print_param() to print public key data from an EVP_PKEY |
| 833 structure. |
| 834 [Steve Henson] |
| 835 |
| 836 *) Initial support for pluggable public key ASN1. |
| 837 De-spaghettify the public key ASN1 handling. Move public and private |
| 838 key ASN1 handling to a new EVP_PKEY_ASN1_METHOD structure. Relocate |
| 839 algorithm specific handling to a single module within the relevant |
| 840 algorithm directory. Add functions to allow (near) opaque processing |
| 841 of public and private key structures. |
| 842 [Steve Henson] |
| 843 |
| 844 *) Implement the Supported Point Formats Extension for |
| 845 ECC ciphersuites from draft-ietf-tls-ecc-12.txt. |
| 846 [Douglas Stebila] |
| 847 |
| 848 *) Add initial support for RFC 4279 PSK TLS ciphersuites. Add members |
| 849 for the psk identity [hint] and the psk callback functions to the |
| 850 SSL_SESSION, SSL and SSL_CTX structure. |
| 851 |
| 852 New ciphersuites: |
| 853 PSK-RC4-SHA, PSK-3DES-EDE-CBC-SHA, PSK-AES128-CBC-SHA, |
| 854 PSK-AES256-CBC-SHA |
| 855 |
| 856 New functions: |
| 857 SSL_CTX_use_psk_identity_hint |
| 858 SSL_get_psk_identity_hint |
| 859 SSL_get_psk_identity |
| 860 SSL_use_psk_identity_hint |
| 861 |
| 862 [Mika Kousa and Pasi Eronen of Nokia Corporation] |
| 863 |
| 864 *) Add RFC 3161 compliant time stamp request creation, response generation |
| 865 and response verification functionality. |
| 866 [Zoltán Glózik <zglozik@opentsa.org>, The OpenTSA Project] |
| 867 |
| 868 *) Add initial support for TLS extensions, specifically for the server_name |
| 869 extension so far. The SSL_SESSION, SSL_CTX, and SSL data structures now |
| 870 have new members for a host name. The SSL data structure has an |
| 871 additional member SSL_CTX *initial_ctx so that new sessions can be |
| 872 stored in that context to allow for session resumption, even after the |
| 873 SSL has been switched to a new SSL_CTX in reaction to a client's |
| 874 server_name extension. |
| 875 |
| 876 New functions (subject to change): |
| 877 |
| 878 SSL_get_servername() |
| 879 SSL_get_servername_type() |
| 880 SSL_set_SSL_CTX() |
| 881 |
| 882 New CTRL codes and macros (subject to change): |
| 883 |
| 884 SSL_CTRL_SET_TLSEXT_SERVERNAME_CB |
| 885 - SSL_CTX_set_tlsext_servername_callback() |
| 886 SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG |
| 887 - SSL_CTX_set_tlsext_servername_arg() |
| 888 SSL_CTRL_SET_TLSEXT_HOSTNAME - SSL_set_tlsext_host_name() |
| 889 |
| 890 openssl s_client has a new '-servername ...' option. |
| 891 |
| 892 openssl s_server has new options '-servername_host ...', '-cert2 ...', |
| 893 '-key2 ...', '-servername_fatal' (subject to change). This allows |
| 894 testing the HostName extension for a specific single host name ('-cert' |
| 895 and '-key' remain fallbacks for handshakes without HostName |
| 896 negotiation). If the unrecogninzed_name alert has to be sent, this by |
| 897 default is a warning; it becomes fatal with the '-servername_fatal' |
| 898 option. |
| 899 |
| 900 [Peter Sylvester, Remy Allais, Christophe Renou] |
| 901 |
| 902 *) Whirlpool hash implementation is added. |
| 903 [Andy Polyakov] |
| 904 |
| 905 *) BIGNUM code on 64-bit SPARCv9 targets is switched from bn(64,64) to |
| 906 bn(64,32). Because of instruction set limitations it doesn't have |
| 907 any negative impact on performance. This was done mostly in order |
| 908 to make it possible to share assembler modules, such as bn_mul_mont |
| 909 implementations, between 32- and 64-bit builds without hassle. |
| 910 [Andy Polyakov] |
| 911 |
| 912 *) Move code previously exiled into file crypto/ec/ec2_smpt.c |
| 913 to ec2_smpl.c, and no longer require the OPENSSL_EC_BIN_PT_COMP |
| 914 macro. |
| 915 [Bodo Moeller] |
| 916 |
| 917 *) New candidate for BIGNUM assembler implementation, bn_mul_mont, |
| 918 dedicated Montgomery multiplication procedure, is introduced. |
| 919 BN_MONT_CTX is modified to allow bn_mul_mont to reach for higher |
| 920 "64-bit" performance on certain 32-bit targets. |
| 921 [Andy Polyakov] |
| 922 |
| 923 *) New option SSL_OP_NO_COMP to disable use of compression selectively |
| 924 in SSL structures. New SSL ctrl to set maximum send fragment size. |
| 925 Save memory by seeting the I/O buffer sizes dynamically instead of |
| 926 using the maximum available value. |
| 927 [Steve Henson] |
| 928 |
| 929 *) New option -V for 'openssl ciphers'. This prints the ciphersuite code |
| 930 in addition to the text details. |
| 931 [Bodo Moeller] |
| 932 |
| 933 *) Very, very preliminary EXPERIMENTAL support for printing of general |
| 934 ASN1 structures. This currently produces rather ugly output and doesn't |
| 935 handle several customised structures at all. |
| 936 [Steve Henson] |
| 937 |
| 938 *) Integrated support for PVK file format and some related formats such |
| 939 as MS PUBLICKEYBLOB and PRIVATEKEYBLOB. Command line switches to support |
| 940 these in the 'rsa' and 'dsa' utilities. |
| 941 [Steve Henson] |
| 942 |
| 943 *) Support for PKCS#1 RSAPublicKey format on rsa utility command line. |
| 944 [Steve Henson] |
| 945 |
| 946 *) Remove the ancient ASN1_METHOD code. This was only ever used in one |
| 947 place for the (very old) "NETSCAPE" format certificates which are now |
| 948 handled using new ASN1 code equivalents. |
| 949 [Steve Henson] |
| 950 |
| 951 *) Let the TLSv1_method() etc. functions return a 'const' SSL_METHOD |
| 952 pointer and make the SSL_METHOD parameter in SSL_CTX_new, |
| 953 SSL_CTX_set_ssl_version and SSL_set_ssl_method 'const'. |
| 954 [Nils Larsch] |
| 955 |
| 956 *) Modify CRL distribution points extension code to print out previously |
| 957 unsupported fields. Enhance extension setting code to allow setting of |
| 958 all fields. |
| 959 [Steve Henson] |
| 960 |
| 961 *) Add print and set support for Issuing Distribution Point CRL extension. |
| 962 [Steve Henson] |
| 963 |
| 964 *) Change 'Configure' script to enable Camellia by default. |
| 965 [NTT] |
| 966 |
| 967 Changes between 0.9.8r and 0.9.8s [xx XXX xxxx] |
| 968 |
| 969 *) Fix ssl_ciph.c set-up race. |
| 970 [Adam Langley (Google)] |
| 971 |
| 972 *) Fix spurious failures in ecdsatest.c. |
| 973 [Emilia Käsper (Google)] |
| 974 |
| 975 *) Fix the BIO_f_buffer() implementation (which was mixing different |
| 976 interpretations of the '..._len' fields). |
| 977 [Adam Langley (Google)] |
| 978 |
| 979 *) Fix handling of BN_BLINDING: now BN_BLINDING_invert_ex (rather than |
| 980 BN_BLINDING_invert_ex) calls BN_BLINDING_update, ensuring that concurrent |
| 981 threads won't reuse the same blinding coefficients. |
| 982 |
| 983 This also avoids the need to obtain the CRYPTO_LOCK_RSA_BLINDING |
| 984 lock to call BN_BLINDING_invert_ex, and avoids one use of |
| 985 BN_BLINDING_update for each BN_BLINDING structure (previously, |
| 986 the last update always remained unused). |
| 987 [Emilia Käsper (Google)] |
| 988 |
| 989 *) Fix SSL memory handling for (EC)DH ciphersuites, in particular |
| 990 for multi-threaded use of ECDH. |
| 991 [Adam Langley (Google)] |
| 992 |
| 993 *) Fix x509_name_ex_d2i memory leak on bad inputs. |
| 994 [Bodo Moeller] |
| 995 |
| 996 *) Add protection against ECDSA timing attacks as mentioned in the paper |
| 997 by Billy Bob Brumley and Nicola Tuveri, see: |
| 998 |
| 999 http://eprint.iacr.org/2011/232.pdf |
| 1000 |
| 1001 [Billy Bob Brumley and Nicola Tuveri] |
| 1002 |
| 1003 Changes between 0.9.8q and 0.9.8r [8 Feb 2011] |
| 1004 |
| 1005 *) Fix parsing of OCSP stapling ClientHello extension. CVE-2011-0014 |
| 1006 [Neel Mehta, Adam Langley, Bodo Moeller (Google)] |
| 1007 |
| 1008 *) Fix bug in string printing code: if *any* escaping is enabled we must |
| 1009 escape the escape character (backslash) or the resulting string is |
| 1010 ambiguous. |
| 1011 [Steve Henson] |
| 1012 |
| 1013 Changes between 0.9.8p and 0.9.8q [2 Dec 2010] |
| 1014 |
| 1015 *) Disable code workaround for ancient and obsolete Netscape browsers |
| 1016 and servers: an attacker can use it in a ciphersuite downgrade attack. |
| 1017 Thanks to Martin Rex for discovering this bug. CVE-2010-4180 |
| 1018 [Steve Henson] |
| 1019 |
| 1020 *) Fixed J-PAKE implementation error, originally discovered by |
| 1021 Sebastien Martini, further info and confirmation from Stefan |
| 1022 Arentz and Feng Hao. Note that this fix is a security fix. CVE-2010-4252 |
| 1023 [Ben Laurie] |
| 1024 |
| 1025 Changes between 0.9.8o and 0.9.8p [16 Nov 2010] |
| 1026 |
| 1027 *) Fix extension code to avoid race conditions which can result in a buffer |
| 1028 overrun vulnerability: resumed sessions must not be modified as they can |
| 1029 be shared by multiple threads. CVE-2010-3864 |
| 1030 [Steve Henson] |
| 1031 |
| 1032 *) Fix for double free bug in ssl/s3_clnt.c CVE-2010-2939 |
| 1033 [Steve Henson] |
| 1034 |
| 1035 *) Don't reencode certificate when calculating signature: cache and use |
| 1036 the original encoding instead. This makes signature verification of |
| 1037 some broken encodings work correctly. |
| 1038 [Steve Henson] |
| 1039 |
| 1040 *) ec2_GF2m_simple_mul bugfix: compute correct result if the output EC_POINT |
| 1041 is also one of the inputs. |
| 1042 [Emilia Käsper <emilia.kasper@esat.kuleuven.be> (Google)] |
| 1043 |
| 1044 *) Don't repeatedly append PBE algorithms to table if they already exist. |
| 1045 Sort table on each new add. This effectively makes the table read only |
| 1046 after all algorithms are added and subsequent calls to PKCS12_pbe_add |
| 1047 etc are non-op. |
| 1048 [Steve Henson] |
| 1049 |
5 Changes between 0.9.8n and 0.9.8o [01 Jun 2010] | 1050 Changes between 0.9.8n and 0.9.8o [01 Jun 2010] |
6 | 1051 |
| 1052 [NB: OpenSSL 0.9.8o and later 0.9.8 patch levels were released after |
| 1053 OpenSSL 1.0.0.] |
| 1054 |
7 *) Correct a typo in the CMS ASN1 module which can result in invalid memory | 1055 *) Correct a typo in the CMS ASN1 module which can result in invalid memory |
8 access or freeing data twice (CVE-2010-0742) | 1056 access or freeing data twice (CVE-2010-0742) |
9 [Steve Henson, Ronald Moesbergen <intercommit@gmail.com>] | 1057 [Steve Henson, Ronald Moesbergen <intercommit@gmail.com>] |
10 | 1058 |
11 *) Add SHA2 algorithms to SSL_library_init(). SHA2 is becoming far more | 1059 *) Add SHA2 algorithms to SSL_library_init(). SHA2 is becoming far more |
12 common in certificates and some applications which only call | 1060 common in certificates and some applications which only call |
13 SSL_library_init and not OpenSSL_add_all_algorithms() will fail. | 1061 SSL_library_init and not OpenSSL_add_all_algorithms() will fail. |
14 [Steve Henson] | 1062 [Steve Henson] |
15 | 1063 |
16 *) VMS fixes: | 1064 *) VMS fixes: |
(...skipping 8496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8513 *) Fixed a few memory leaks. | 9561 *) Fixed a few memory leaks. |
8514 [Eric A. Young] | 9562 [Eric A. Young] |
8515 | 9563 |
8516 *) Fixed various code and comment typos. | 9564 *) Fixed various code and comment typos. |
8517 [Eric A. Young] | 9565 [Eric A. Young] |
8518 | 9566 |
8519 *) A minor bug in ssl/s3_clnt.c where there would always be 4 0 | 9567 *) A minor bug in ssl/s3_clnt.c where there would always be 4 0 |
8520 bytes sent in the client random. | 9568 bytes sent in the client random. |
8521 [Edward Bishop <ebishop@spyglass.com>] | 9569 [Edward Bishop <ebishop@spyglass.com>] |
8522 | 9570 |
OLD | NEW |