<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in build.info</title>
    <link>http://nxr.netbsd.org/rss/src/crypto/external/apache2/openssl/dist/providers/implementations/exchange/build.info</link>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2005</copyright>
    <generator>Java</generator>
    
<item>
    <title>branches:  1.1.1;<br/>Initial revision</title>
    <description>/src/crypto/external/apache2/openssl/dist/providers/implementations/exchange/build.info - 1.1</description>
    <pubDate>Thu Jul 17 13:51:37 UTC 2025</pubDate>
    <dc:creator>christos</dc:creator>
</item>

<item>
    <title>Import openssl-3.5.1 (previous was 3.0.16).<br/>Changes:<br/><br/>Changes between 3.5.0 and 3.5.1 [xx XXX xxxx]<br/><br/>Fix x509 application adds trusted use instead of rejected use.<br/><br/>Issue summary: Use of -addreject option with the openssl x509<br/>application adds a trusted use instead of a rejected use for a<br/>certificate.<br/><br/>Impact summary: If a user intends to make a trusted certificate<br/>rejected for a particular use it will be instead marked as trusted<br/>for that use.<br/><br/>(CVE-2025-4575)<br/><br/>Tomas Mraz<br/><br/>Aligned the behaviour of TLS and DTLS in the event of a no_renegotiation<br/>alert being received. Older versions of OpenSSL failed with DTLS<br/>if a no_renegotiation alert was received. All versions of OpenSSL<br/>do this for TLS. From 3.2 a bug was exposed that meant that DTLS<br/>ignored no_rengotiation. We have now restored the original behaviour<br/>and brought DTLS back into line with TLS.<br/><br/>Matt Caswell<br/><br/>Changes between 3.4 and 3.5.0 [8 Apr 2025]<br/><br/>Added server side support for QUIC<br/><br/>Hugo Landau, Matt Caswell, Tomáš Mráz, Neil Horman, Sasha<br/>Nedvedicky, Andrew Dinh<br/><br/>Tolerate PKCS#8 version 2 with optional public keys. The public<br/>key data is currently ignored.<br/><br/>Viktor Dukhovni<br/><br/>Signature schemes without an explicit signing digest in CMS are<br/>now supported. Examples of such schemes are ED25519 or ML-DSA.<br/><br/>Michael Schroeder<br/><br/>The TLS Signature algorithms defaults now include all three ML-DSA<br/>variants as first algorithms.<br/><br/>Viktor Dukhovni<br/><br/>Added a no-tls-deprecated-ec configuration option.<br/><br/>The no-tls-deprecated-ec option disables support for TLS elliptic<br/>curve groups deprecated in RFC8422 at compile time. This does not<br/>affect use of the associated curves outside TLS. By default support<br/>for these groups is compiled in, but, as before, they are not<br/>included in the default run-time list of supported groups.<br/><br/>With the enable-tls-deprecated-ec option these TLS groups remain<br/>enabled at compile time even if the default configuration is changed,<br/>provided the underlying EC curves remain implemented.<br/><br/>Viktor Dukhovni<br/><br/>Added new API to enable 0-RTT for 3rd party QUIC stacks.<br/><br/>Cheng Zhang<br/><br/>Added support for a new callback registration<br/>SSL_CTX_set_new_pending_conn_cb, which allows for application<br/>notification of new connection SSL object creation, which occurs<br/>independently of calls to SSL_accept_connection(). Note: QUIC<br/>objects passed through SSL callbacks should not have their state<br/>mutated via calls back into the SSL api until such time as they<br/>have been received via a call to SSL_accept_connection().<br/><br/>Neil Horman<br/><br/>Add SLH-DSA as specified in FIPS 205.<br/><br/>Shane Lontis and Dr Paul Dale<br/><br/>ML-KEM as specified in FIPS 203.<br/><br/>Based on the original implementation in BoringSSL, ported from C++<br/>to C, refactored, and integrated into the OpenSSL default and FIPS<br/>providers. Including also the X25519MLKEM768, SecP256r1MLKEM768,<br/>SecP384r1MLKEM1024 TLS hybrid key post-quantum/classical key<br/>agreement schemes.<br/><br/>Michael Baentsch, Viktor Dukhovni, Shane Lontis and Paul Dale<br/><br/>Add ML-DSA as specified in FIPS 204.<br/><br/>The base code was derived from BoringSSL C++ code.<br/><br/>Shane Lontis, Viktor Dukhovni and Paul Dale<br/><br/>Added new API calls to enable 3rd party QUIC stacks to use the<br/>OpenSSL TLS implementation.<br/><br/>Matt Caswell<br/><br/>The default DRBG implementations have been changed to prefer to<br/>fetch algorithm implementations from the default provider (the<br/>provider the DRBG implementation is built in) regardless of the<br/>default properties set in the configuration file. The code will<br/>still fallback to find an implementation, as done previously, if<br/>needed.<br/><br/>Simo Sorce<br/><br/>Initial support for opaque symmetric keys objects (EVP_SKEY). These<br/>replace the ad-hoc byte arrays that are pervasive throughout the<br/>library.<br/><br/>Dmitry Belyavskiy and Simo Sorce<br/><br/>The default TLS group list setting is now set to: ?*X25519MLKEM768<br/>/ ?*X25519:?secp256r1 / ?X448:?secp384r1:?secp521r1 / ?ffdhe2048:?ffdhe3072<br/><br/>This means two key shares (X25519MLKEM768 and X25519) will be sent<br/>by default by the TLS client. GOST groups and FFDHE groups larger<br/>than 3072 bits are no longer enabled by default.<br/><br/>The group names in the group list setting are now also case<br/>insensitive.<br/><br/>Viktor Dukhovni<br/><br/>For TLSv1.3: Add capability for a client to send multiple key<br/>shares. Extend the scope of SSL_OP_CIPHER_SERVER_PREFERENCE to<br/>cover server-side key exchange group selection.<br/><br/>Extend the server-side key exchange group selection algorithm and<br/>related group list syntax to support multiple group priorities,<br/>e.g. to prioritize (hybrid-)KEMs.<br/><br/>David Kelsey, Martin Schmatz<br/><br/>A new random generation API has been introduced which modifies all<br/>of the L&lt;RAND_bytes(3)&gt; family of calls so they are routed through<br/>a specific named provider instead of being resolved via the normal<br/>DRBG chaining. In a future OpenSSL release, this will obsolete<br/>RAND_METHOD.<br/><br/>Dr Paul Dale<br/><br/>New inline functions were added to support loads and stores of<br/>unsigned 16-bit, 32-bit and 64-bit integers in either little-endian<br/>or big-endian form, regardless of the host byte-order. See the<br/>OPENSSL_load_u16_le(3) manpage for details.<br/><br/>Viktor Dukhovni<br/><br/>All the BIO_meth_get_*() functions allowing reuse of the internal<br/>OpenSSL BIO method implementations were deprecated. The reuse is<br/>unsafe due to dependency on the code of the internal methods not<br/>changing.<br/><br/>Tomáš Mráz<br/><br/>Support DEFAULT keyword and '-' prefix in SSL_CTX_set1_groups_list().<br/>SSL_CTX_set1_groups_list() now supports the DEFAULT keyword which<br/>sets the available groups to the default selection. The '-' prefix<br/>allows the calling application to remove a group from the selection.<br/><br/>Frederik Wedel-Heinen<br/><br/>Updated the default encryption cipher for the req, cms, and smime<br/>applications from des-ede3-cbc to aes-256-cbc.<br/><br/>AES-256 provides a stronger 256-bit key encryption than legacy<br/>3DES.<br/><br/>Aditya<br/><br/>Enhanced PKCS#7 inner contents verification. In the PKCS7_verify()<br/>function, the BIO *indata parameter refers to the signed data if<br/>the content is detached from p7. Otherwise, indata should be NULL,<br/>and then the signed data must be in p7.<br/><br/>The previous OpenSSL implementation only supported MIME inner<br/>content [RFC 5652, section 5.2].<br/><br/>The added functionality now enables support for PKCS#7 inner content<br/>[RFC 2315, section 7].<br/><br/>Ma�gorzata Olszówka<br/><br/>The -rawin option of the pkeyutl command is now implied (and thus<br/>no longer required) when using -digest or when signing or verifying<br/>with an Ed25519 or Ed448 key. The -digest and -rawin option may<br/>only be given with -sign or verify.<br/><br/>David von Oheimb<br/><br/>X509_PURPOSE_add() has been modified to take sname instead of id<br/>as the primary purpose identifier. For its convenient use,<br/>X509_PURPOSE_get_unused_id() has been added.<br/><br/>This work was sponsored by Siemens AG.<br/><br/>David von Oheimb<br/><br/>Added support for central key generation in CMP.<br/><br/>This work was sponsored by Siemens AG.<br/><br/>Rajeev Ranjan<br/><br/>Optionally allow the FIPS provider to use the JITTER entropy source.<br/>Note that using this option will require the resulting FIPS provider<br/>to undergo entropy source validation ESV by the CMVP, without this<br/>the FIPS provider will not be FIPS compliant. Enable this using<br/>the configuration option enable-fips-jitter.<br/><br/>Paul Dale<br/><br/>Extended OPENSSL_ia32cap support to accommodate additional CPUID<br/>feature/capability bits in leaf 0x7 (Extended Feature Flags) as<br/>well as leaf 0x24 (Converged Vector ISA).<br/><br/>Dan Zimmerman, Alina Elizarova<br/><br/>Cipher pipelining support for provided ciphers with new API functions<br/>EVP_CIPHER_can_pipeline(), EVP_CipherPipelineEncryptInit(),<br/>EVP_CipherPipelineDecryptInit(), EVP_CipherPipelineUpdate(), and<br/>EVP_CipherPipelineFinal(). Cipher pipelining support allows<br/>application to submit multiple chunks of data in one cipher update<br/>call, thereby allowing the provided implementation to take advantage<br/>of parallel computing. There are currently no built-in ciphers that<br/>support pipelining. This new API replaces the legacy pipeline API<br/>SSL_CTX_set_max_pipelines used with Engines.<br/><br/>Ramkumar<br/><br/>Add CMS_NO_SIGNING_TIME flag to CMS_sign(), CMS_add1_signer()<br/><br/>Previously there was no way to create a CMS SignedData signature<br/>without a signing time attribute, because CMS_SignerInfo_sign added<br/>it unconditionally. However, there is a use case (PAdES signatures<br/>ETSI EN 319 142-1 ) where this attribute is not allowed, so a new<br/>flag was added to the CMS API that causes this attribute to be<br/>omitted at signing time.<br/><br/>The new -no_signing_time option of the cms command enables this<br/>flag.<br/><br/>Juhász Péter<br/><br/>Parallel dual-prime 1024/1536/2048-bit modular exponentiation for<br/>AVX_IFMA capable processors (Intel Sierra Forest and its successor).<br/><br/>This optimization brings performance enhancement, ranging from 1.8<br/>to 2.2 times, for the sign/decryption operations of rsaz-2k/3k/4k<br/>(openssl speed rsa) on the Intel Sierra Forest.<br/><br/>Zhiguo Zhou, Wangyang Guo (Intel Corp)<br/><br/>VAES/AVX-512 support for AES-XTS.<br/><br/>For capable processors (&gt;= Intel Icelake), this provides a vectorized<br/>implementation of AES-XTS with a throughput improvement between<br/>1.3x to 2x, depending on the block size.<br/><br/>Pablo De Lara Guarch, Dan Pittman<br/><br/>Fixed EVP_DecodeUpdate() to not write padding zeros to the decoded<br/>output.<br/><br/>According to the documentation, for every 4 valid base64 bytes<br/>processed (ignoring whitespace, carriage returns and line feeds),<br/>EVP_DecodeUpdate() produces 3 bytes of binary output data (except<br/>at the end of data terminated with one or two padding characters).<br/>However, the function behaved like an EVP_DecodeBlock(). It produced<br/>exactly 3 output bytes for every 4 input bytes. Such behaviour<br/>could cause writes to a non-allocated output buffer if a user<br/>allocates its size based on the documentation and knowing the<br/>padding size.<br/><br/>The fix makes EVP_DecodeUpdate() produce exactly as many output<br/>bytes as in the initial non-encoded message.<br/><br/>Valerii Krygin<br/><br/>Added support for aAissuingDistributionPoint, allowedAttributeAssignments,<br/>timeSpecification, attributeDescriptor, roleSpecCertIdentifier,<br/>authorityAttributeIdentifier and attributeMappings X.509v3 extensions.<br/><br/>Jonathan M. Wilbur<br/><br/>Added a new CLI option -provparam and API functions for setting of<br/>provider configuration parameters.<br/><br/>Viktor Dukhovni<br/><br/>Added a new trace category for PROVIDER calls and added new tracing<br/>calls in provider and algorithm fetching API functions.<br/><br/>Neil Horman<br/><br/>Fixed benchmarking for AEAD ciphers in the openssl speed utility.<br/><br/>Mohammed Alhabib<br/><br/>Added a build configuration option enable-sslkeylog for enabling<br/>support for SSLKEYLOGFILE environment variable to log TLS connection<br/>secrets.<br/><br/>Neil Horman<br/><br/>Added EVP_get_default_properties() function to retrieve the current<br/>default property query string.<br/><br/>Dmitry Belyavskiy<br/><br/>OpenSSL 3.4<br/><br/>Changes between 3.4.1 and 3.4.2 [xx XXX xxxx]<br/><br/>When displaying distinguished names in the openssl application<br/>escape control characters by default.<br/><br/>Tomáš Mráz<br/><br/>Changes between 3.4.0 and 3.4.1 [11 Feb 2025]<br/><br/>Fixed RFC7250 handshakes with unauthenticated servers don't abort<br/>as expected.<br/><br/>Clients using RFC7250 Raw Public Keys (RPKs) to authenticate a<br/>server may fail to notice that the server was not authenticated,<br/>because handshakes don't abort as expected when the SSL_VERIFY_PEER<br/>verification mode is set.<br/><br/>([CVE-2024-12797])<br/><br/>Viktor Dukhovni<br/><br/>Fixed timing side-channel in ECDSA signature computation.<br/><br/>There is a timing signal of around 300 nanoseconds when the top<br/>word of the inverted ECDSA nonce value is zero. This can happen<br/>with significant probability only for some of the supported elliptic<br/>curves. In particular the NIST P-521 curve is affected. To be able<br/>to measure this leak, the attacker process must either be located<br/>in the same physical computer or must have a very fast network<br/>connection with low latency.<br/><br/>(CVE-2024-13176)<br/><br/>Tomáš Mráz<br/><br/>Reverted the behavior change of CMS_get1_certs() and CMS_get1_crls()<br/>that happened in the 3.4.0 release. These functions now return NULL<br/>again if there are no certs or crls in the CMS object.<br/><br/>Tomáš Mráz<br/><br/>Changes between 3.3 and 3.4.0 [22 Oct 2024]<br/><br/>For the FIPS provider only, replaced the primary DRBG with a<br/>continuous health check module. This also removes the now forbidden<br/>DRBG chaining.<br/><br/>Paul Dale<br/><br/>Improved base64 BIO correctness and error reporting.<br/><br/>Viktor Dukhovni<br/><br/>Added support for directly fetched composite signature algorithms<br/>such as RSA-SHA2-256 including new API functions in the EVP_PKEY_sign,<br/>EVP_PKEY_verify and EVP_PKEY_verify_recover groups.<br/><br/>Richard Levitte<br/><br/>XOF Digest API improvements<br/><br/>EVP_MD_CTX_get_size() and EVP_MD_CTX_size are macros that were<br/>aliased to EVP_MD_get_size which returns a constant value. XOF<br/>Digests such as SHAKE have an output size that is not fixed, so<br/>calling EVP_MD_get_size() is not sufficent. The existing macros<br/>now point to the new function EVP_MD_CTX_get_size_ex() which will<br/>retrieve the "size" for a XOF digest, otherwise it falls back to<br/>calling EVP_MD_get_size(). Note that the SHAKE implementation did<br/>not have a context getter previously, so the "size" will only be<br/>able to be retrieved with new providers.<br/><br/>Also added a EVP_xof() helper.<br/><br/>Shane Lontis<br/><br/>Added FIPS indicators to the FIPS provider.<br/><br/>FIPS 140-3 requires indicators to be used if the FIPS provider<br/>allows non-approved algorithms. An algorithm is approved if it<br/>passes all required checks such as minimum key size. By default an<br/>error will occur if any check fails. For backwards compatibility<br/>individual algorithms may override the checks by using either an<br/>option in the FIPS configuration OR in code using an algorithm<br/>context setter. Overriding the check means that the algorithm is<br/>not FIPS compliant. OSSL_INDICATOR_set_callback() can be called to<br/>register a callback to log unapproved algorithms. At the end of<br/>any algorithm operation the approved status can be queried using<br/>an algorithm context getter. FIPS provider configuration options<br/>are set using 'openssl fipsinstall'.<br/><br/>Note that new FIPS 140-3 restrictions have been enforced such as<br/>RSA Encryption using PKCS1 padding is no longer approved. Documentation<br/>related to the changes can be found on the [fips_module(7)] manual<br/>page.<br/><br/>[fips_module(7)]: https://docs.openssl.org/master/man7/fips_module/#FIPS<br/>indicators<br/><br/>Shane Lontis, Paul Dale, Po-Hsing Wu and Dimitri John Ledkov<br/><br/>Added support for hardware acceleration for HMAC on S390x architecture.<br/><br/>Ingo Franzki<br/><br/>Added debuginfo Makefile target for unix platforms to produce a<br/>separate DWARF info file from the corresponding shared libs.<br/><br/>Neil Horman<br/><br/>Added support for encapsulation and decapsulation operations in<br/>the pkeyutl command.<br/><br/>Dmitry Belyavskiy<br/><br/>Added implementation of RFC 9579 (PBMAC1) in PKCS#12.<br/><br/>Dmitry Belyavskiy<br/><br/>Add a new random seed source RNG JITTER using a statically linked<br/>jitterentropy library.<br/><br/>Dimitri John Ledkov<br/><br/>Added a feature to retrieve configured TLS signature algorithms,<br/>e.g., via the openssl list command.<br/><br/>Michael Baentsch<br/><br/>Deprecated TS_VERIFY_CTX_set_* functions and added replacement<br/>TS_VERIFY_CTX_set0_* functions with improved semantics.<br/><br/>Tobias Erbsland<br/><br/>Redesigned Windows use of OPENSSLDIR/ENGINESDIR/MODULESDIR such<br/>that what were formerly build time locations can now be defined at<br/>run time with registry keys. See NOTES-WINDOWS.md.<br/><br/>Neil Horman<br/><br/>Added options -not_before and -not_after for explicit setting start<br/>and end dates of certificates created with the req and x509 commands.<br/>Added the same options also to ca command as alias for -startdate<br/>and -enddate options.<br/><br/>Stephan Wurm<br/><br/>The X25519 and X448 key exchange implementation in the FIPS provider<br/>is unapproved and has fips=no property.<br/><br/>Tomáš Mráz<br/><br/>SHAKE-128 and SHAKE-256 implementations have no default digest<br/>length anymore. That means these algorithms cannot be used with<br/>EVP_DigestFinal/_ex() unless the xoflen param is set before.<br/><br/>This change was necessary because the preexisting default lengths<br/>were half the size necessary for full collision resistance supported<br/>by these algorithms.<br/><br/>Tomáš Mráz<br/><br/>Setting config_diagnostics=1 in the config file will cause errors<br/>to be returned from SSL_CTX_new() and SSL_CTX_new_ex() if there is<br/>an error in the ssl module configuration.<br/><br/>Tomáš Mráz<br/><br/>An empty renegotiate extension will be used in TLS client hellos<br/>instead of the empty renegotiation SCSV, for all connections with<br/>a minimum TLS version &gt; 1.0.<br/><br/>Tim Perry<br/><br/>Added support for integrity-only cipher suites TLS_SHA256_SHA256<br/>and TLS_SHA384_SHA384 in TLS 1.3, as defined in RFC 9150.<br/><br/>This work was sponsored by Siemens AG.<br/><br/>Rajeev Ranjan<br/><br/>Added support for retrieving certificate request templates and CRLs<br/>in CMP, with the respective CLI options -template, -crlcert, -oldcrl,<br/>-crlout, -crlform&gt;, and -rsp_crl.<br/><br/>This work was sponsored by Siemens AG.<br/><br/>Rajeev Ranjan<br/><br/>Added support for issuedOnBehalfOf, auditIdentity, basicAttConstraints,<br/>userNotice, acceptablePrivilegePolicies, acceptableCertPolicies,<br/>subjectDirectoryAttributes, associatedInformation,<br/>delegatedNameConstraints, holderNameConstraints and targetingInformation<br/>X.509v3 extensions.<br/><br/>Jonathan M. Wilbur<br/><br/>Added Attribute Certificate (RFC 5755) support. Attribute Certificates<br/>can be created, parsed, modified and printed via the public API.<br/>There is no command-line tool support at this time.<br/><br/>Damian Hobson-Garcia<br/><br/>Added support to build Position Independent Executables (PIE).<br/>Configuration option enable-pie configures the cflag '-fPIE' and<br/>ldflag '-pie' to support Address Space Layout Randomization (ASLR)<br/>in the openssl executable, removes reliance on external toolchain<br/>configurations.<br/><br/>Craig Lorentzen<br/><br/>SSL_SESSION_get_time()/SSL_SESSION_set_time()/SSL_CTX_flush_sessions()<br/>have been deprecated in favour of their respective ..._ex()<br/>replacement functions which are Y2038-safe.<br/><br/>Alexander Kanavin<br/><br/>ECC groups may now customize their initialization to save CPU by<br/>using precomputed values. This is used by the P-256 implementation.<br/><br/>Watson Ladd<br/><br/>OpenSSL 3.3<br/><br/>Changes between 3.3.2 and 3.3.3 [xx XXX xxxx]<br/><br/>Fixed possible OOB memory access with invalid low-level GF(2^m)<br/>elliptic curve parameters.<br/><br/>Use of the low-level GF(2^m) elliptic curve APIs with untrusted<br/>explicit values for the field polynomial can lead to out-of-bounds<br/>memory reads or writes. Applications working with "exotic" explicit<br/>binary (GF(2^m)) curve parameters, that make it possible to represent<br/>invalid field polynomials with a zero constant term, via the above<br/>or similar APIs, may terminate abruptly as a result of reading or<br/>writing outside of array bounds. Remote code execution cannot easily<br/>be ruled out.<br/><br/>(CVE-2024-9143)<br/><br/>Viktor Dukhovni<br/><br/>Changes between 3.3.1 and 3.3.2 [3 Sep 2024]<br/><br/>Fixed possible denial of service in X.509 name checks.<br/><br/>Applications performing certificate name checks (e.g., TLS clients<br/>checking server certificates) may attempt to read an invalid memory<br/>address when comparing the expected name with an otherName subject<br/>alternative name of an X.509 certificate. This may result in an<br/>exception that terminates the application program.<br/><br/>(CVE-2024-6119)<br/><br/>Viktor Dukhovni<br/><br/>Fixed possible buffer overread in SSL_select_next_proto().<br/><br/>Calling the OpenSSL API function SSL_select_next_proto with an<br/>empty supported client protocols buffer may cause a crash or memory<br/>contents to be sent to the peer.<br/><br/>(CVE-2024-5535)<br/><br/>Matt Caswell<br/><br/>Changes between 3.3.0 and 3.3.1 [4 Jun 2024]<br/><br/>Fixed potential use after free after SSL_free_buffers() is called.<br/><br/>The SSL_free_buffers function is used to free the internal OpenSSL<br/>buffer used when processing an incoming record from the network.<br/>The call is only expected to succeed if the buffer is not currently<br/>in use. However, two scenarios have been identified where the buffer<br/>is freed even when still in use.<br/><br/>The first scenario occurs where a record header has been received<br/>from the network and processed by OpenSSL, but the full record body<br/>has not yet arrived. In this case calling SSL_free_buffers will<br/>succeed even though a record has only been partially processed and<br/>the buffer is still in use.<br/><br/>The second scenario occurs where a full record containing application<br/>data has been received and processed by OpenSSL but the application<br/>has only read part of this data. Again a call to SSL_free_buffers<br/>will succeed even though the buffer is still in use.<br/><br/>(CVE-2024-4741)<br/><br/>Matt Caswell<br/><br/>Fixed an issue where checking excessively long DSA keys or parameters<br/>may be very slow.<br/><br/>Applications that use the functions EVP_PKEY_param_check() or<br/>EVP_PKEY_public_check() to check a DSA public key or DSA parameters<br/>may experience long delays. Where the key or parameters that are<br/>being checked have been obtained from an untrusted source this may<br/>lead to a Denial of Service.<br/><br/>To resolve this issue DSA keys larger than OPENSSL_DSA_MAX_MODULUS_BITS<br/>will now fail the check immediately with a DSA_R_MODULUS_TOO_LARGE<br/>error reason.<br/><br/>(CVE-2024-4603)<br/><br/>Tomáš Mráz<br/><br/>Improved EC/DSA nonce generation routines to avoid bias and timing<br/>side channel leaks.<br/><br/>Thanks to Florian Sieck from Universität zu Lübeck and George<br/>Pantelakis and Hubert Kario from Red Hat for reporting the issues.<br/><br/>Tomáš Mráz and Paul Dale<br/><br/>Changes between 3.2 and 3.3.0 [9 Apr 2024]<br/><br/>The -verify option to the openssl crl and openssl req will make<br/>the program exit with 1 on failure.<br/><br/>Vladimír Kotal<br/><br/>The BIO_get_new_index() function can only be called 127 times before<br/>it reaches its upper bound of BIO_TYPE_MASK. It will now correctly<br/>return an error of -1 once it is exhausted. Users may need to<br/>reserve using this function for cases where BIO_find_type() is<br/>required. Either BIO_TYPE_NONE or BIO_get_new_index() can be used<br/>to supply a type to BIO_meth_new().<br/><br/>Shane Lontis<br/><br/>Added API functions SSL_SESSION_get_time_ex(), SSL_SESSION_set_time_ex()<br/>using time_t which is Y2038 safe on 32 bit systems when 64 bit time<br/>is enabled (e.g via setting glibc macro _TIME_BITS=64).<br/><br/>Ijtaba Hussain<br/><br/>The d2i_ASN1_GENERALIZEDTIME(), d2i_ASN1_UTCTIME(), ASN1_TIME_check(),<br/>and related functions have been augmented to check for a minimum<br/>length of the input string, in accordance with ITU-T X.690 section<br/>11.7 and 11.8.<br/><br/>Job Snijders<br/><br/>Unknown entries in TLS SignatureAlgorithms, ClientSignatureAlgorithms<br/>config options and the respective calls to SSL[_CTX]_set1_sigalgs()<br/>and SSL[_CTX]_set1_client_sigalgs() that start with ? character<br/>are ignored and the configuration will still be used.<br/><br/>Similarly unknown entries that start with ? character in a TLS<br/>Groups config option or set with SSL[_CTX]_set1_groups_list() are<br/>ignored and the configuration will still be used.<br/><br/>In both cases if the resulting list is empty, an error is returned.<br/><br/>Tomáš Mráz<br/><br/>The EVP_PKEY_fromdata function has been augmented to allow for the<br/>derivation of CRT (Chinese Remainder Theorem) parameters when<br/>requested. See the OSSL_PKEY_PARAM_RSA_DERIVE_FROM_PQ param in the<br/>EVP_PKEY-RSA documentation.<br/><br/>Neil Horman<br/><br/>The activate and soft_load configuration settings for providers in<br/>openssl.cnf have been updated to require a value of [1|yes|true|on]<br/>(in lower or UPPER case) to enable the setting. Conversely a value<br/>of [0|no|false|off] will disable the setting. All other values, or<br/>the omission of a value for these settings will result in an error.<br/><br/>Neil Horman<br/><br/>Added -set_issuer and -set_subject options to openssl x509 to<br/>override the Issuer and Subject when creating a certificate. The<br/>-subj option now is an alias for -set_subject.<br/><br/>Job Snijders, George Michaelson<br/><br/>OPENSSL_sk_push() and sk__push() functions now return 0 instead of<br/>-1 if called with a NULL stack argument.<br/><br/>Tomáš Mráz<br/><br/>In openssl speed, changed the default hash function used with hmac<br/>from md5 to sha256.<br/><br/>James Muir<br/><br/>Added several new features of CMPv3 defined in RFC 9480 and RFC<br/>9483:<br/><br/>certProfile request message header and respective -profile CLI<br/>option support for delayed delivery of all types of response messages<br/>This work was sponsored by Siemens AG.<br/><br/>David von Oheimb<br/><br/>The build of exporters (such as .pc files for pkg-config) cleaned<br/>up to be less hard coded in the build file templates, and to allow<br/>easier addition of more exporters. With that, an exporter for CMake<br/>is also added.<br/><br/>Richard Levitte<br/><br/>The BLAKE2s hash algorithm matches BLAKE2b's support for configurable<br/>output length.<br/><br/>Ahelenia Ziemia�ska<br/><br/>New option SSL_OP_PREFER_NO_DHE_KEX, which allows configuring a<br/>TLS1.3 server to prefer session resumption using PSK-only key<br/>exchange over PSK with DHE, if both are available.<br/><br/>Markus Minichmayr, Tapkey GmbH<br/><br/>New API SSL_write_ex2, which can be used to send an end-of-stream<br/>(FIN) condition in an optimised way when using QUIC.<br/><br/>Hugo Landau<br/><br/>New atexit configuration switch, which controls whether the<br/>OPENSSL_cleanup is registered when libcrypto is unloaded. This is<br/>turned off on NonStop configurations because of loader differences<br/>on that platform compared to Linux.<br/><br/>Randall S. Becker<br/><br/>Support for qlog for tracing QUIC connections has been added.<br/><br/>The qlog output from OpenSSL currently uses a pre-standard draft<br/>version of qlog. The output from OpenSSL will change in incompatible<br/>ways in future releases, and is not subject to any format stability<br/>or compatibility guarantees at this time. This functionality can<br/>be disabled with the build-time option no-unstable-qlog. See the<br/>openssl-qlog(7) manpage for details.<br/><br/>Hugo Landau<br/><br/>Added APIs to allow configuring the negotiated idle timeout for<br/>QUIC connections, and to allow determining the number of additional<br/>streams that can currently be created for a QUIC connection.<br/><br/>Hugo Landau<br/><br/>Added APIs to allow disabling implicit QUIC event processing for<br/>QUIC SSL objects, allowing applications to control when event<br/>handling occurs. Refer to the SSL_get_value_uint(3) manpage for<br/>details.<br/><br/>Hugo Landau<br/><br/>Limited support for polling of QUIC connection and stream objects<br/>in a non-blocking manner. Refer to the SSL_poll(3) manpage for<br/>details.<br/><br/>Hugo Landau<br/><br/>Added APIs to allow querying the size and utilisation of a QUIC<br/>stream's write buffer. Refer to the SSL_get_value_uint(3) manpage<br/>for details.<br/><br/>Hugo Landau<br/><br/>New limit on HTTP response headers is introduced to HTTP client.<br/>The default limit is set to 256 header lines. If limit is exceeded<br/>the response processing stops with error HTTP_R_RESPONSE_TOO_MANY_HDRLINES.<br/>Application may call OSSL_HTTP_REQ_CTX_set_max_response_hdr_lines(3)<br/>to change the default. Setting the value to 0 disables the limit.<br/><br/>Alexandr Nedvedicky<br/><br/>Applied AES-GCM unroll8 optimisation to Microsoft Azure Cobalt 100<br/><br/>Tom Cosgrove<br/><br/>Added X509_STORE_get1_objects to avoid issues with the existing<br/>X509_STORE_get0_objects API in multi-threaded applications. Refer<br/>to the documentation for details.<br/><br/>David Benjamin<br/><br/>Added assembly implementation for md5 on loongarch64<br/><br/>Min Zhou<br/><br/>Optimized AES-CTR for ARM Neoverse V1 and V2<br/><br/>Fisher Yu<br/><br/>Enable AES and SHA3 optimisations on Apple Silicon M3-based MacOS<br/>systems similar to M1/M2.<br/><br/>Tom Cosgrove<br/><br/>Added a new EVP_DigestSqueeze() API. This allows SHAKE to squeeze<br/>multiple times with different output sizes.<br/><br/>Shane Lontis, Holger Dengler<br/><br/>Various optimizations for cryptographic routines using RISC-V vector<br/>crypto extensions<br/><br/>Christoph Müllner, Charalampos Mitrodimas, Ard Biesheuvel, Phoebe<br/>Chen, Jerry Shih<br/><br/>Accept longer context for TLS 1.2 exporters<br/><br/>While RFC 5705 implies that the maximum length of a context for<br/>exporters is 65535 bytes as the length is embedded in uint16, the<br/>previous implementation enforced a much smaller limit, which is<br/>less than 1024 bytes. This restriction has been removed.<br/><br/>Daiki Ueno<br/><br/>OpenSSL 3.2<br/><br/>Changes between 3.2.1 and 3.2.2 [xx XXX xxxx]<br/><br/>Fixed an issue where some non-default TLS server configurations<br/>can cause unbounded memory growth when processing TLSv1.3 sessions.<br/>An attacker may exploit certain server configurations to trigger<br/>unbounded memory growth that would lead to a Denial of Service<br/><br/>This problem can occur in TLSv1.3 if the non-default SSL_OP_NO_TICKET<br/>option is being used (but not if early_data is also configured and<br/>the default anti-replay protection is in use). In this case, under<br/>certain conditions, the session cache can get into an incorrect<br/>state and it will fail to flush properly as it fills. The session<br/>cache will continue to grow in an unbounded manner. A malicious<br/>client could deliberately create the scenario for this failure to<br/>force a Denial of Service. It may also happen by accident in normal<br/>operation.<br/><br/>(CVE-2024-2511)<br/><br/>Matt Caswell<br/><br/>Fixed bug where SSL_export_keying_material() could not be used with<br/>QUIC connections. (#23560)<br/><br/>Hugo Landau<br/><br/>Changes between 3.2.0 and 3.2.1 [30 Jan 2024]<br/><br/>A file in PKCS12 format can contain certificates and keys and may<br/>come from an untrusted source. The PKCS12 specification allows<br/>certain fields to be NULL, but OpenSSL did not correctly check for<br/>this case. A fix has been applied to prevent a NULL pointer<br/>dereference that results in OpenSSL crashing. If an application<br/>processes PKCS12 files from an untrusted source using the OpenSSL<br/>APIs then that application will be vulnerable to this issue prior<br/>to this fix.<br/><br/>OpenSSL APIs that were vulnerable to this are: PKCS12_parse(),<br/>PKCS12_unpack_p7data(), PKCS12_unpack_p7encdata(),<br/>PKCS12_unpack_authsafes() and PKCS12_newpass().<br/><br/>We have also fixed a similar issue in SMIME_write_PKCS7(). However<br/>since this function is related to writing data we do not consider<br/>it security significant.<br/><br/>(CVE-2024-0727)<br/><br/>Matt Caswell<br/><br/>When function EVP_PKEY_public_check() is called on RSA public keys,<br/>a computation is done to confirm that the RSA modulus, n, is<br/>composite. For valid RSA keys, n is a product of two or more large<br/>primes and this computation completes quickly. However, if n is an<br/>overly large prime, then this computation would take a long time.<br/><br/>An application that calls EVP_PKEY_public_check() and supplies an<br/>RSA key obtained from an untrusted source could be vulnerable to<br/>a Denial of Service attack.<br/><br/>The function EVP_PKEY_public_check() is not called from other<br/>OpenSSL functions however it is called from the OpenSSL pkey command<br/>line application. For that reason that application is also vulnerable<br/>if used with the "-pubin" and "-check" options on untrusted data.<br/><br/>To resolve this issue RSA keys larger than OPENSSL_RSA_MAX_MODULUS_BITS<br/>will now fail the check immediately with an RSA_R_MODULUS_TOO_LARGE<br/>error reason.<br/><br/>(CVE-2023-6237)<br/><br/>Tomáš Mráz<br/><br/>Restore the encoding of SM2 PrivateKeyInfo and SubjectPublicKeyInfo<br/>to have the contained AlgorithmIdentifier.algorithm set to<br/>id-ecPublicKey rather than SM2.<br/><br/>Richard Levitte<br/><br/>The POLY1305 MAC (message authentication code) implementation in<br/>OpenSSL for PowerPC CPUs saves the contents of vector registers in<br/>different order than they are restored. Thus the contents of some<br/>of these vector registers is corrupted when returning to the caller.<br/>The vulnerable code is used only on newer PowerPC processors<br/>supporting the PowerISA 2.07 instructions.<br/><br/>The consequences of this kind of internal application state corruption<br/>can be various - from no consequences, if the calling application<br/>does not depend on the contents of non-volatile XMM registers at<br/>all, to the worst consequences, where the attacker could get complete<br/>control of the application process. However unless the compiler<br/>uses the vector registers for storing pointers, the most likely<br/>consequence, if any, would be an incorrect result of some application<br/>dependent calculations or a crash leading to a denial of service.<br/><br/>(CVE-2023-6129)<br/><br/>Rohan McLure<br/><br/>Disable building QUIC server utility when OpenSSL is configured<br/>with no-apps.<br/><br/>Vitalii Koshura<br/><br/>Changes between 3.1 and 3.2.0 [23 Nov 2023]<br/><br/>Fix excessive time spent in DH check / generation with large Q<br/>parameter value.<br/><br/>Applications that use the functions DH_generate_key() to generate<br/>an X9.42 DH key may experience long delays. Likewise, applications<br/>that use DH_check_pub_key(), DH_check_pub_key_ex() or<br/>EVP_PKEY_public_check() to check an X9.42 DH key or X9.42 DH<br/>parameters may experience long delays. Where the key or parameters<br/>that are being checked have been obtained from an untrusted source<br/>this may lead to a Denial of Service.<br/><br/>(CVE-2023-5678)<br/><br/>Richard Levitte<br/><br/>The BLAKE2b hash algorithm supports a configurable output length<br/>by setting the "size" parameter.<br/><br/>�estmír Kalina and Tomáš Mráz<br/><br/>Enable extra Arm64 optimization on Windows for GHASH, RAND and AES.<br/><br/>Evgeny Karpov<br/><br/>Added a function to delete objects from store by URI - OSSL_STORE_delete()<br/>and the corresponding provider-storemgmt API function<br/>OSSL_FUNC_store_delete().<br/><br/>Dmitry Belyavskiy<br/><br/>Added OSSL_FUNC_store_open_ex() provider-storemgmt API function to<br/>pass a passphrase callback when opening a store.<br/><br/>Simo Sorce<br/><br/>Changed the default salt length used by PBES2 KDF's (PBKDF2 and<br/>scrypt) from 8 bytes to 16 bytes. The PKCS5 (RFC 8018) standard<br/>uses a 64 bit salt length for PBE, and recommends a minimum of 64<br/>bits for PBES2. For FIPS compliance PBKDF2 requires a salt length<br/>of 128 bits. This affects OpenSSL command line applications such<br/>as "genrsa" and "pkcs8" and API's such as PEM_write_bio_PrivateKey()<br/>that are reliant on the default value. The additional commandline<br/>option 'saltlen' has been added to the OpenSSL command line<br/>applications for "pkcs8" and "enc" to allow the salt length to be<br/>set to a non default value.<br/><br/>Shane Lontis<br/><br/>Changed the default value of the ess_cert_id_alg configuration<br/>option which is used to calculate the TSA's public key certificate<br/>identifier. The default algorithm is updated to be sha256 instead<br/>of sha1.<br/><br/>Ma�gorzata Olszówka<br/><br/>Added optimization for SM2 algorithm on aarch64. It uses a huge<br/>precomputed table for point multiplication of the base point, which<br/>increases the size of libcrypto from 4.4 MB to 4.9 MB. A new<br/>configure option no-sm2-precomp has been added to disable the<br/>precomputed table.<br/><br/>Xu Yizhou<br/><br/>Added client side support for QUIC<br/><br/>Hugo Landau, Matt Caswell, Paul Dale, Tomáš Mráz, Richard Levitte<br/><br/>Added multiple tutorials on the OpenSSL library and in particular<br/>on writing various clients (using TLS and QUIC protocols) with<br/>libssl.<br/><br/>Matt Caswell<br/><br/>Added secp384r1 implementation using Solinas' reduction to improve<br/>speed of the NIST P-384 elliptic curve. To enable the implementation<br/>the build option enable-ec_nistp_64_gcc_128 must be used.<br/><br/>Rohan McLure<br/><br/>Improved RFC7468 compliance of the asn1parse command.<br/><br/>Matthias St. Pierre<br/><br/>Added SHA256/192 algorithm support.<br/><br/>Fergus Dall<br/><br/>Improved contention on global write locks by using more read locks<br/>where appropriate.<br/><br/>Matt Caswell<br/><br/>Improved performance of OSSL_PARAM lookups in performance critical<br/>provider functions.<br/><br/>Paul Dale<br/><br/>Added the SSL_get0_group_name() function to provide access to the<br/>name of the group used for the TLS key exchange.<br/><br/>Alex Bozarth<br/><br/>Provide a new configure option no-http that can be used to disable<br/>the HTTP support. Provide new configure options no-apps and no-docs<br/>to disable building the openssl command line application and the<br/>documentation.<br/><br/>Vladimír Kotal<br/><br/>Provide a new configure option no-ecx that can be used to disable<br/>the X25519, X448, and EdDSA support.<br/><br/>Yi Li<br/><br/>When multiple OSSL_KDF_PARAM_INFO parameters are passed to the<br/>EVP_KDF_CTX_set_params() function they are now concatenated not<br/>just for the HKDF algorithm but also for SSKDF and X9.63 KDF<br/>algorithms.<br/><br/>Paul Dale<br/><br/>Added OSSL_FUNC_keymgmt_im/export_types_ex() provider functions<br/>that get the provider context as a parameter.<br/><br/>Ingo Franzki<br/><br/>TLS round-trip time calculation was added by a Brigham Young<br/>University Capstone team partnering with Sandia National Laboratories.<br/>A new function in ssl_lib titled SSL_get_handshake_rtt will calculate<br/>and retrieve this value.<br/><br/>Jairus Christensen<br/><br/>Added the "-quic" option to s_client to enable connectivity to QUIC<br/>servers. QUIC requires the use of ALPN, so this must be specified<br/>via the "-alpn" option. Use of the "advanced" s_client command<br/>command via the "-adv" option is recommended.<br/><br/>Matt Caswell<br/><br/>Added an "advanced" command mode to s_client. Use this with the<br/>"-adv" option. The old "basic" command mode recognises certain<br/>letters that must always appear at the start of a line and cannot<br/>be escaped. The advanced command mode enables commands to be entered<br/>anywhere and there is an escaping mechanism. After starting s_client<br/>with "-adv" type "{help}" to show a list of available commands.<br/><br/>Matt Caswell<br/><br/>Add Raw Public Key (RFC7250) support. Authentication is supported<br/>by matching keys against either local policy (TLSA records synthesised<br/>from the expected keys) or DANE (TLSA records obtained by the<br/>application from DNS). TLSA records will also match the same key<br/>in the server certificate, should RPK use not happen to be negotiated.<br/><br/>Todd Short<br/><br/>Added support for modular exponentiation and CRT offloading for<br/>the S390x architecture.<br/><br/>Juergen Christ<br/><br/>Added further assembler code for the RISC-V architecture.<br/><br/>Christoph Müllner<br/><br/>Added EC_GROUP_to_params() which creates an OSSL_PARAM array from<br/>a given EC_GROUP.<br/><br/>Oliver Mihatsch<br/><br/>Improved support for non-default library contexts and property<br/>queries when parsing PKCS#12 files.<br/><br/>Shane Lontis<br/><br/>Implemented support for all five instances of EdDSA from RFC8032:<br/>Ed25519, Ed25519ctx, Ed25519ph, Ed448, and Ed448ph. The streaming<br/>is not yet supported for the HashEdDSA variants (Ed25519ph and<br/>Ed448ph).<br/><br/>James Muir<br/><br/>Added SM4 optimization for ARM processors using ASIMD and AES HW<br/>instructions.<br/><br/>Xu Yizhou<br/><br/>Implemented SM4-XTS support.<br/><br/>Xu Yizhou<br/><br/>Added platform-agnostic OSSL_sleep() function.<br/><br/>Richard Levitte<br/><br/>Implemented deterministic ECDSA signatures (RFC6979) support.<br/><br/>Shane Lontis<br/><br/>Implemented AES-GCM-SIV (RFC8452) support.<br/><br/>Todd Short<br/><br/>Added support for pluggable (provider-based) TLS signature algorithms.<br/>This enables TLS 1.3 authentication operations with algorithms<br/>embedded in providers not included by default in OpenSSL. In<br/>combination with the already available pluggable KEM and X.509<br/>support, this enables for example suitable providers to deliver<br/>post-quantum or quantum-safe cryptography to OpenSSL users.<br/><br/>Michael Baentsch<br/><br/>Added support for pluggable (provider-based) CMS signature algorithms.<br/>This enables CMS sign and verify operations with algorithms embedded<br/>in providers not included by default in OpenSSL.<br/><br/>Michael Baentsch<br/><br/>Added support for Hybrid Public Key Encryption (HPKE) as defined<br/>in RFC9180. HPKE is required for TLS Encrypted ClientHello (ECH),<br/>Message Layer Security (MLS) and other IETF specifications. HPKE<br/>can also be used by other applications that require encrypting "to"<br/>an ECDH public key. External APIs are defined in include/openssl/hpke.h<br/>and documented in doc/man3/OSSL_HPKE_CTX_new.pod<br/><br/>Stephen Farrell<br/><br/>Implemented HPKE DHKEM support in providers used by HPKE (RFC9180)<br/>API.<br/><br/>Shane Lontis<br/><br/>Add support for certificate compression (RFC8879), including library<br/>support for Brotli and Zstandard compression.<br/><br/>Todd Short<br/><br/>Add the ability to add custom attributes to PKCS12 files. Add a<br/>new API PKCS12_create_ex2, identical to the existing PKCS12_create_ex<br/>but allows for a user specified callback and optional argument.<br/>Added a new PKCS12_SAFEBAG_set0_attr, which allows for a new attr<br/>to be added to the existing STACK_OF attrs.<br/><br/>Graham Woodward<br/><br/>Major refactor of the libssl record layer.<br/><br/>Matt Caswell<br/><br/>Add a mac salt length option for the pkcs12 command.<br/><br/>Xinping Chen<br/><br/>Add more SRTP protection profiles from RFC8723 and RFC8269.<br/><br/>Kijin Kim<br/><br/>Extended Kernel TLS (KTLS) to support TLS 1.3 receive offload.<br/><br/>Daiki Ueno, John Baldwin and Dmitry Podgorny<br/><br/>Add support for TCP Fast Open (RFC7413) to macOS, Linux, and FreeBSD<br/>where supported and enabled.<br/><br/>Todd Short<br/><br/>Add ciphersuites based on DHE_PSK (RFC 4279) and ECDHE_PSK (RFC<br/>5489) to the list of ciphersuites providing Perfect Forward Secrecy<br/>as required by SECLEVEL &gt;= 3.<br/><br/>Dmitry Belyavskiy, Nicola Tuveri<br/><br/>Add new SSL APIs to aid in efficiently implementing TLS/SSL<br/>fingerprinting. The SSL_CTRL_GET_IANA_GROUPS control code, exposed<br/>as the SSL_get0_iana_groups() function-like macro, retrieves the<br/>list of supported groups sent by the peer. The function<br/>SSL_client_hello_get_extension_order() populates a caller-supplied<br/>array with the list of extension types present in the ClientHello,<br/>in order of appearance.<br/><br/>Phus Lu<br/><br/>Fixed PEM_write_bio_PKCS8PrivateKey() and<br/>PEM_write_bio_PKCS8PrivateKey_nid() to make it possible to use<br/>empty passphrase strings.<br/><br/>Darshan Sen<br/><br/>The PKCS12_parse() function now supports MAC-less PKCS12 files.<br/><br/>Daniel Fiala<br/><br/>Added ASYNC_set_mem_functions() and ASYNC_get_mem_functions() calls<br/>to be able to change functions used for allocating the memory of<br/>asynchronous call stack.<br/><br/>Arran Cudbard-Bell<br/><br/>Added support for signed BIGNUMs in the OSSL_PARAM APIs.<br/><br/>Richard Levitte<br/><br/>A failure exit code is returned when using the openssl x509 command<br/>to check certificate attributes and the checks fail.<br/><br/>Rami Khaldi<br/><br/>The default SSL/TLS security level has been changed from 1 to 2.<br/>RSA, DSA and DH keys of 1024 bits and above and less than 2048 bits<br/>and ECC keys of 160 bits and above and less than 224 bits were<br/>previously accepted by default but are now no longer allowed. By<br/>default TLS compression was already disabled in previous OpenSSL<br/>versions. At security level 2 it cannot be enabled.<br/><br/>Matt Caswell<br/><br/>The SSL_CTX_set_cipher_list family functions now accept ciphers<br/>using their IANA standard names.<br/><br/>Erik Lax<br/><br/>The PVK key derivation function has been moved from b2i_PVK_bio_ex()<br/>into the legacy crypto provider as an EVP_KDF. Applications requiring<br/>this KDF will need to load the legacy crypto provider.<br/><br/>Paul Dale<br/><br/>CCM8 cipher suites in TLS have been downgraded to security level<br/>zero because they use a short authentication tag which lowers their<br/>strength.<br/><br/>Paul Dale<br/><br/>Subject or issuer names in X.509 objects are now displayed as UTF-8<br/>strings by default. Also spaces surrounding = in DN output are<br/>removed.<br/><br/>Dmitry Belyavskiy<br/><br/>Add X.509 certificate codeSigning purpose and related checks on<br/>key usage and extended key usage of the leaf certificate according<br/>to the CA/Browser Forum.<br/><br/>Lutz Jänicke* The x509, ca, and req commands now produce X.509 v3<br/>certificates. The -x509v1 option of req prefers generation of X.509<br/>v1 certificates. X509_sign() and X509_sign_ctx() make sure that<br/>the certificate has X.509 version 3 if the certificate information<br/>includes X.509 extensions.<br/><br/>David von Oheimb<br/><br/>Fix and extend certificate handling and the commands x509, verify<br/>etc. such as adding a trace facility for debugging certificate<br/>chain building.<br/><br/>David von Oheimb<br/><br/>Various fixes and extensions to the CMP+CRMF implementation and<br/>the cmp app in particular supporting various types of genm/genp<br/>exchanges such as getting CA certificates and root CA cert updates<br/>defined in CMP Updates [RFC 9480], as well as the -srvcertout and<br/>-serial CLI options.<br/><br/>This work was sponsored by Siemens AG.<br/><br/>David von Oheimb<br/><br/>Fixes and extensions to the HTTP client and to the HTTP server in<br/>apps/ like correcting the TLS and proxy support and adding tracing<br/>for debugging.<br/><br/>David von Oheimb<br/><br/>Extended the CMS API for handling CMS_SignedData and CMS_EnvelopedData.<br/><br/>David von Oheimb<br/><br/>CMS_add0_cert() and CMS_add1_cert() no longer throw an error if a<br/>certificate to be added is already present. CMS_sign_ex() and<br/>CMS_sign() now ignore any duplicate certificates in their certs<br/>argument and no longer throw an error for them.<br/><br/>David von Oheimb<br/><br/>Fixed and extended util/check-format.pl for checking adherence to<br/>the coding style<br/>https://www.openssl.org/policies/technical/coding-style.html. The<br/>checks are meanwhile more complete and yield fewer false positives.<br/><br/>David von Oheimb<br/><br/>Added BIO_s_dgram_pair() and BIO_s_dgram_mem() that provide<br/>memory-based BIOs with datagram semantics and support for BIO_sendmmsg()<br/>and BIO_recvmmsg() calls. They can be used as the transport BIOs<br/>for QUIC.<br/><br/>Hugo Landau, Matt Caswell and Tomáš Mráz<br/><br/>Add new BIO_sendmmsg() and BIO_recvmmsg() BIO methods which allow<br/>sending and receiving multiple messages in a single call. An<br/>implementation is provided for BIO_dgram. For further details, see<br/>BIO_sendmmsg(3).<br/><br/>Hugo Landau<br/><br/>Support for loading root certificates from the Windows certificate<br/>store has been added. The support is in the form of a store which<br/>recognises the URI string of org.openssl.winstore://. This URI<br/>scheme currently takes no arguments. This store is built by default<br/>and can be disabled using the new compile-time option no-winstore.<br/>This store is not currently used by default and must be loaded<br/>explicitly using the above store URI. It is expected to be loaded<br/>by default in the future.<br/><br/>Hugo Landau<br/><br/>Enable KTLS with the TLS 1.3 CCM mode ciphersuites. Note that some<br/>linux kernel versions that support KTLS have a known bug in CCM<br/>processing. That has been fixed in stable releases starting from<br/>5.4.164, 5.10.84, 5.15.7, and all releases since 5.16. KTLS with<br/>CCM ciphersuites should be only used on these releases.<br/><br/>Tianjia Zhang<br/><br/>Added -ktls option to s_server and s_client commands to enable the<br/>KTLS support.<br/><br/>Tianjia Zhang<br/><br/>Zerocopy KTLS sendfile() support on Linux.<br/><br/>Maxim Mikityanskiy<br/><br/>The OBJ_ calls are now thread safe using a global lock.<br/><br/>Paul Dale<br/><br/>New parameter -digest for openssl cms command allowing signing<br/>pre-computed digests and new CMS API functions supporting that<br/>functionality.<br/><br/>Viktor Söderqvist<br/><br/>OPENSSL_malloc() and other allocation functions now raise errors<br/>on allocation failures. The callers do not need to explicitly raise<br/>errors unless they want to for tracing purposes.<br/><br/>David von Oheimb<br/><br/>Added and enabled by default implicit rejection in RSA PKCS#1 v1.5<br/>decryption as a protection against Bleichenbacher-like attacks.<br/>The RSA decryption API will now return a randomly generated<br/>deterministic message instead of an error in case it detects an<br/>error when checking padding during PKCS#1 v1.5 decryption. This is<br/>a general protection against issues like CVE-2020-25659 and<br/>CVE-2020-25657. This protection can be disabled by calling<br/>EVP_PKEY_CTX_ctrl_str(ctx, "rsa_pkcs1_implicit_rejection". "0") on<br/>the RSA decryption context.<br/><br/>Hubert Kario<br/><br/>Added support for Brainpool curves in TLS-1.3.<br/><br/>Bernd Edlinger and Matt Caswell<br/><br/>Added OpenBSD specific build targets.<br/><br/>David Carlier<br/><br/>Support for Argon2d, Argon2i, Argon2id KDFs has been added along<br/>with a basic thread pool implementation for select platforms.<br/><br/>�estmír Kalina<br/><br/>OpenSSL 3.1<br/><br/>Changes between 3.1.3 and 3.1.4 [24 Oct 2023]<br/><br/>Fix incorrect key and IV resizing issues when calling<br/>EVP_EncryptInit_ex2(), EVP_DecryptInit_ex2() or EVP_CipherInit_ex2()<br/>with OSSL_PARAM parameters that alter the key or IV length<br/>(CVE-2023-5363).<br/><br/>Paul Dale<br/><br/>Changes between 3.1.2 and 3.1.3 [19 Sep 2023]<br/><br/>Fix POLY1305 MAC implementation corrupting XMM registers on Windows.<br/><br/>The POLY1305 MAC (message authentication code) implementation in<br/>OpenSSL does not save the contents of non-volatile XMM registers<br/>on Windows 64 platform when calculating the MAC of data larger than<br/>64 bytes. Before returning to the caller all the XMM registers are<br/>set to zero rather than restoring their previous content. The<br/>vulnerable code is used only on newer x86_64 processors supporting<br/>the AVX512-IFMA instructions.<br/><br/>The consequences of this kind of internal application state corruption<br/>can be various - from no consequences, if the calling application<br/>does not depend on the contents of non-volatile XMM registers at<br/>all, to the worst consequences, where the attacker could get complete<br/>control of the application process. However given the contents of<br/>the registers are just zeroized so the attacker cannot put arbitrary<br/>values inside, the most likely consequence, if any, would be an<br/>incorrect result of some application dependent calculations or a<br/>crash leading to a denial of service.<br/><br/>(CVE-2023-4807)<br/><br/>Bernd Edlinger<br/><br/>Changes between 3.1.1 and 3.1.2 [1 Aug 2023]<br/><br/>Fix excessive time spent checking DH q parameter value.<br/><br/>The function DH_check() performs various checks on DH parameters.<br/>After fixing CVE-2023-3446 it was discovered that a large q parameter<br/>value can also trigger an overly long computation during some of<br/>these checks. A correct q value, if present, cannot be larger than<br/>the modulus p parameter, thus it is unnecessary to perform these<br/>checks if q is larger than p.<br/><br/>If DH_check() is called with such q parameter value,<br/>DH_CHECK_INVALID_Q_VALUE return flag is set and the computationally<br/>intensive checks are skipped.<br/><br/>(CVE-2023-3817)<br/><br/>Tomáš Mráz<br/><br/>Fix DH_check() excessive time with over sized modulus.<br/><br/>The function DH_check() performs various checks on DH parameters.<br/>One of those checks confirms that the modulus ("p" parameter) is<br/>not too large. Trying to use a very large modulus is slow and<br/>OpenSSL will not normally use a modulus which is over 10,000 bits<br/>in length.<br/><br/>However the DH_check() function checks numerous aspects of the key<br/>or parameters that have been supplied. Some of those checks use<br/>the supplied modulus value even if it has already been found to be<br/>too large.<br/><br/>A new limit has been added to DH_check of 32,768 bits. Supplying<br/>a key/parameters with a modulus over this size will simply cause<br/>DH_check() to fail.<br/><br/>(CVE-2023-3446)<br/><br/>Matt Caswell<br/><br/>Do not ignore empty associated data entries with AES-SIV.<br/><br/>The AES-SIV algorithm allows for authentication of multiple associated<br/>data entries along with the encryption. To authenticate empty data<br/>the application has to call EVP_EncryptUpdate() (or EVP_CipherUpdate())<br/>with NULL pointer as the output buffer and 0 as the input buffer<br/>length. The AES-SIV implementation in OpenSSL just returns success<br/>for such call instead of performing the associated data authentication<br/>operation. The empty data thus will not be authenticated.<br/>(CVE-2023-2975)<br/><br/>Thanks to Juerg Wullschleger (Google) for discovering the issue.<br/><br/>The fix changes the authentication tag value and the ciphertext<br/>for applications that use empty associated data entries with AES-SIV.<br/>To decrypt data encrypted with previous versions of OpenSSL the<br/>application has to skip calls to EVP_DecryptUpdate() for empty<br/>associated data entries.<br/><br/>Tomáš Mráz<br/><br/>When building with the enable-fips option and using the resulting<br/>FIPS provider, TLS 1.2 will, by default, mandate the use of an<br/>extended master secret (FIPS 140-3 IG G.Q) and the Hash and HMAC<br/>DRBGs will not operate with truncated digests (FIPS 140-3 IG G.R).<br/><br/>Paul Dale<br/><br/>Changes between 3.1.0 and 3.1.1 [30 May 2023]<br/><br/>Mitigate for the time it takes for OBJ_obj2txt to translate gigantic<br/>OBJECT IDENTIFIER sub-identifiers to canonical numeric text form.<br/><br/>OBJ_obj2txt() would translate any size OBJECT IDENTIFIER to canonical<br/>numeric text form. For gigantic sub-identifiers, this would take<br/>a very long time, the time complexity being O(n^2) where n is the<br/>size of that sub-identifier. (CVE-2023-2650)<br/><br/>To mitigitate this, OBJ_obj2txt() will only translate an OBJECT<br/>IDENTIFIER to canonical numeric text form if the size of that OBJECT<br/>IDENTIFIER is 586 bytes or less, and fail otherwise.<br/><br/>The basis for this restriction is RFC 2578 (STD 58), section 3.5.<br/>OBJECT IDENTIFIER values, which stipulates that OBJECT IDENTIFIERS<br/>may have at most 128 sub-identifiers, and that the maximum value<br/>that each sub- identifier may have is 2^32-1 (4294967295 decimal).<br/><br/>For each byte of every sub-identifier, only the 7 lower bits are<br/>part of the value, so the maximum amount of bytes that an OBJECT<br/>IDENTIFIER with these restrictions may occupy is 32 * 128 / 7,<br/>which is approximately 586 bytes.<br/><br/>Richard Levitte<br/><br/>Multiple algorithm implementation fixes for ARM BE platforms.<br/><br/>Liu-ErMeng<br/><br/>Added a -pedantic option to fipsinstall that adjusts the various<br/>settings to ensure strict FIPS compliance rather than backwards<br/>compatibility.<br/><br/>Paul Dale<br/><br/>Fixed buffer overread in AES-XTS decryption on ARM 64 bit platforms<br/>which happens if the buffer size is 4 mod 5 in 16 byte AES blocks.<br/>This can trigger a crash of an application using AES-XTS decryption<br/>if the memory just after the buffer being decrypted is not mapped.<br/>Thanks to Anton Romanov (Amazon) for discovering the issue.<br/>(CVE-2023-1255)<br/><br/>Nevine Ebeid<br/><br/>Reworked the Fix for the Timing Oracle in RSA Decryption (CVE-2022-4304).<br/>The previous fix for this timing side channel turned out to cause<br/>a severe 2-3x performance regression in the typical use case compared<br/>to 3.0.7. The new fix uses existing constant time code paths, and<br/>restores the previous performance level while fully eliminating<br/>all existing timing side channels. The fix was developed by Bernd<br/>Edlinger with testing support by Hubert Kario.<br/><br/>Bernd Edlinger<br/><br/>Add FIPS provider configuration option to disallow the use of<br/>truncated digests with Hash and HMAC DRBGs (q.v. FIPS 140-3 IG<br/>D.R.). The option '-no_drbg_truncated_digests' can optionally be<br/>supplied to 'openssl fipsinstall'.<br/><br/>Paul Dale<br/><br/>Corrected documentation of X509_VERIFY_PARAM_add0_policy() to<br/>mention that it does not enable policy checking. Thanks to David<br/>Benjamin for discovering this issue. (CVE-2023-0466)<br/><br/>Tomáš Mráz<br/><br/>Fixed an issue where invalid certificate policies in leaf certificates<br/>are silently ignored by OpenSSL and other certificate policy checks<br/>are skipped for that certificate. A malicious CA could use this to<br/>deliberately assert invalid certificate policies in order to<br/>circumvent policy checking on the certificate altogether.<br/>(CVE-2023-0465)<br/><br/>Matt Caswell<br/><br/>Limited the number of nodes created in a policy tree to mitigate<br/>against CVE-2023-0464. The default limit is set to 1000 nodes,<br/>which should be sufficient for most installations. If required,<br/>the limit can be adjusted by setting the OPENSSL_POLICY_TREE_NODES_MAX<br/>build time define to a desired maximum number of nodes or zero to<br/>allow unlimited growth. (CVE-2023-0464)<br/><br/>Paul Dale<br/><br/>Changes between 3.0 and 3.1.0 [14 Mar 2023]<br/><br/>Add FIPS provider configuration option to enforce the Extended<br/>Master Secret (EMS) check during the TLS1_PRF KDF. The option<br/>'-ems_check' can optionally be supplied to 'openssl fipsinstall'.<br/><br/>Shane Lontis<br/><br/>The FIPS provider includes a few non-approved algorithms for backward<br/>compatibility purposes and the "fips=yes" property query must be<br/>used for all algorithm fetches to ensure FIPS compliance.<br/><br/>The algorithms that are included but not approved are Triple DES<br/>ECB, Triple DES CBC and EdDSA.<br/><br/>Paul Dale<br/><br/>Added support for KMAC in KBKDF.<br/><br/>Shane Lontis<br/><br/>RNDR and RNDRRS support in provider functions to provide random<br/>number generation for Arm CPUs (aarch64).<br/><br/>Orr Toledano<br/><br/>s_client and s_server commands now explicitly say when the TLS<br/>version does not include the renegotiation mechanism. This avoids<br/>confusion between that scenario versus when the TLS version includes<br/>secure renegotiation but the peer lacks support for it.<br/><br/>Felipe Gasper<br/><br/>AES-GCM enabled with AVX512 vAES and vPCLMULQDQ.<br/><br/>Tomasz Kantecki, Andrey Matyukov<br/><br/>The various OBJ_* functions have been made thread safe.<br/><br/>Paul Dale<br/><br/>Parallel dual-prime 1536/2048-bit modular exponentiation for<br/>AVX512_IFMA capable processors.<br/><br/>Sergey Kirillov, Andrey Matyukov (Intel Corp)<br/><br/>The functions OPENSSL_LH_stats, OPENSSL_LH_node_stats,<br/>OPENSSL_LH_node_usage_stats, OPENSSL_LH_stats_bio,<br/>OPENSSL_LH_node_stats_bio and OPENSSL_LH_node_usage_stats_bio are<br/>now marked deprecated from OpenSSL 3.1 onwards and can be disabled<br/>by defining OPENSSL_NO_DEPRECATED_3_1.<br/><br/>The macro DEFINE_LHASH_OF is now deprecated in favour of the macro<br/>DEFINE_LHASH_OF_EX, which omits the corresponding type-specific<br/>function definitions for these functions regardless of whether<br/>OPENSSL_NO_DEPRECATED_3_1 is defined.<br/><br/>Users of DEFINE_LHASH_OF may start receiving deprecation warnings<br/>for these functions regardless of whether they are using them. It<br/>is recommended that users transition to the new macro, DEFINE_LHASH_OF_EX.<br/><br/>Hugo Landau<br/><br/>When generating safe-prime DH parameters set the recommended private<br/>key length equivalent to minimum key lengths as in RFC 7919.<br/><br/>Tomáš Mráz<br/><br/>Change the default salt length for PKCS#1 RSASSA-PSS signatures to<br/>the maximum size that is smaller or equal to the digest length to<br/>comply with FIPS 186-4 section 5. This is implemented by a new<br/>option OSSL_PKEY_RSA_PSS_SALT_LEN_AUTO_DIGEST_MAX ("auto-digestmax")<br/>for the rsa_pss_saltlen parameter, which is now the default.<br/>Signature verification is not affected by this change and continues<br/>to work as before.<br/><br/>Clemens Lang</title>
    <description>/src/crypto/external/apache2/openssl/dist/providers/implementations/exchange/build.info - 1.1.1.1</description>
    <pubDate>Thu Jul 17 13:51:37 UTC 2025</pubDate>
    <dc:creator>christos</dc:creator>
</item>
</channel></rss>

