We have released LibreSSL 2.3.0, which will be arriving in the
LibreSSL directory of your local OpenBSD mirror soon.

This release is the first snapshot based on the development OpenBSD 5.9 branch.
As such, it is likely to change more compared to the 2.2.x and 2.1.x branches.
The ABI/API for the LibreSSL 2.3.x series will be declared stable around March
2016. See http://www.libressl.org/releases.html for more details.

  * SSLv3 is now permanently removed from the tree.

  * The libtls API is changed from the 2.2.x series.

    The read/write functions work correctly with external event
    libraries.  See the tls_init man page for examples of using libtls
    correctly in asynchronous mode.

    Client-side verification is now supported, with the client supplying
    the certificate to the server.

    Also, when using tls_connect_fds, tls_connect_socket or
    tls_accept_fds, libtls no longer implicitly closes the passed in
    sockets. The caller is responsible for closing them in this case.

  * When loading a DSA key from an raw (without DH parameters) ASN.1
    serialization, perform some consistency checks on its `p' and `q'
    values, and return an error if the checks failed.

    Thanks for Georgi Guninski (guninski at guninski dot com) for
    mentioning the possibility of a weak (non prime) q value and
    providing a test case.

    See
    https://cpunks.org/pipermail/cypherpunks/2015-September/009007.html
    for a longer discussion.

  * Fixed a bug in ECDH_compute_key that can lead to silent truncation
    of the result key without error. A coding error could cause software
    to use much shorter keys than intended.

  * Removed support for DTLS_BAD_VER. Pre-DTLSv1 implementations are no
    longer supported.

  * The engine command and parameters are removed from the openssl(1).
    Previous releases removed dynamic and builtin engine support
    already.

  * SHA-0 is removed, which was withdrawn shortly after publication 20
    years ago.

  * Added Certplus CA root certificate to the default cert.pem file.

  * New interface OPENSSL_cpu_caps is provided that does not allow
    software to inadvertently modify cpu capability flags.
    OPENSSL_ia32cap and OPENSSL_ia32cap_loc are removed.

  * The out_len argument of AEAD changed from ssize_t to size_t.

  * Deduplicated DTLS code, sharing bugfixes and improvements with
    TLS.

  * Converted 'nc' to use libtls for client and server operations; it is
    included in the libressl-portable distribution as an example of how
    to use the library.

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.