LibreSSL 2.8.2 Released
23 October, 2018 by firstname.lastname@example.org | openbsd
We would like to announce that we have released LibreSSL 2.8.2, which is available in the LibreSSL directory of your local OpenBSD mirror. This announcement comes a few days after it was first available on October 18th, 2018, along with OpenBSD 6.4. This is the first stable release from the 2.8 series. It includes the following changes from 2.8.1 * Added Wycheproof support for ECDH and ECDSA Web Crypto test vectors, along with test harness fixes. * Fixed memory leak in nc(1) LibreSSL 2.8.2 also includes: * Added Wycheproof support for ECDH, RSASSA-PSS, AES-GCM, AES-CMAC, AES-CCM, AES-CBC-PKCS5, DSA, ChaCha20-Poly1305, ECDSA, and X25519 test vectors. Applied appropriate fixes for errors uncovered by tests. * Simplified key exchange signature generation and verification. * Fixed a one-byte buffer overrun in callers of EVP_read_pw_string * Converted more code paths to use CBB/CBS. All handshake messages are now created by CBB. * Fixed various memory leaks found by Coverity. * Simplified session ticket parsing and handling, inspired by BoringSSL. * Modified signature of CRYPTO_mem_leaks_* to return -1. This function is a no-op in LibreSSL, so this function returns an error to not indicate the (non-)existence of memory leaks. * SSL_copy_session_id, PEM_Sign, EVP_EncodeUpdate, BIO_set_cipher, X509_OBJECT_up_ref_count now return an int for error handling, matching OpenSSL. * Converted a number of #defines into proper functions, matching OpenSSL's ABI. * Added X509_get0_serialNumber from OpenSSL. * Removed EVP_PKEY2PKCS8_broken and PKCS8_set_broken, while adding PKCS8_pkey_add1_attr_by_NID and PKCS8_pkey_get0_attrs, matching OpenSSL. * Removed broken pkcs8 formats from openssl(1). * Converted more functions in public API to use const arguments. * Stopped handing AES-GCM in ssl_cipher_get_evp, since they use the EVP_AEAD interface. * Stopped using composite EVP_CIPHER AEADs. * Added timing-safe compares for checking results of signature verification. There are no known attacks, this is just inexpensive prudence. * Correctly clear the current cipher state, when changing cipher state. This fixed an issue where renegotiation of cipher suites would fail when switched from AEAD to non-AEAD or vice-versa. Issue reported by Bernard Spil. * Added more cipher tests to appstest.sh, including all TLSv1.2 ciphers. * Added RSA_meth_get_finish() RSA_meth_set1_name() from OpenSSL. * Added new EVP_CIPHER_CTX_(get|set)_iv() API that allows the IV to be retrieved and set with appropriate validation. * Extensive documentation updates and additional API history. * Fixed a pair of 20+ year-old bugs in X509_NAME_add_entry * Tighten up checks for various X509_VERIFY_PARAM functions, 'poisoning' parameters so that an unverified certificate cannot be used if it fails verification. * Fixed a potential memory leak on failure in ASN1_item_digest * Fixed a potential memory alignment crash in asn1_item_combine_free * Removed unused SSL3_FLAGS_DELAY_CLIENT_FINISHED and SSL3_FLAGS_POP_BUFFER flags in write path, simplifying IO paths. * Removed SSL_OP_TLS_ROLLBACK_BUG buggy client workarounds. * Made ENGINE_finish and ENGINE_free succeed on NULL and simplify callers and matching OpenSSL behavior, rewrote ENGINE_* documentation. * Added const annotations to many existing APIs from OpenSSL, making interoperability easier for downstream applications. * Fixed small timing side-channels in ecdsa_sign_setup and dsa_sign_setup. * Documented security pitfalls with BN_FLG_CONSTTIME and constant-time operation of BN_* functions. * Updated BN_clear to use explicit_bzero. * Added a missing bounds check in c2i_ASN1_BIT_STRING. * More CBS conversions, including simplifications to RSA key exchange, and converted code to use dedicated buffers for secrets. * Removed three remaining single DES cipher suites. * Fixed a potential leak/incorrect return value in DSA signature generation. * Added a blinding value when generating DSA and ECDSA signatures, in order to reduce the possibility of a side-channel attack leaking the private key. * Added ECC constant time scalar multiplication support. From Billy Brumley and his team at Tampere University of Technology. * Revised the implementation of RSASSA-PKCS1-v1_5 to match the specification in RFC 8017. Based on an OpenSSL commit by David Benjamin. * Cleaned up BN_* implementations following changes made in OpenSSL by Davide Galassi and others. The LibreSSL project continues improvement of the codebase to reflect modern, safe programming practices. We welcome feedback and improvements from the broader community. Thanks to all of the contributors who helped make this release possible.