tag:github.com,2008:https://github.com/wolfSSL/Arduino-wolfSSL/releasesRelease notes from Arduino-wolfSSL2025-12-02T20:08:30Ztag:github.com,2008:Repository/742109102/5.8.42025-12-04T16:23:57Zv5.8.4<p>To download the release bundle of wolfSSL visit the download page at <a href="http://www.wolfssl.com/download/" rel="nofollow">www.wolfssl.com/download/</a></p>
<h1>wolfSSL Release 5.8.4 (November 20, 2025)</h1>
<p>PR stands for Pull Request, and PR references a GitHub pull request number where the code change was added.</p>
<h2>Vulnerabilities</h2>
<ul>
<li>
<p>[Low <a title="CVE-2025-12888" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-xmgq-3783-qgm4/hovercard" href="https://github.com/advisories/GHSA-xmgq-3783-qgm4">CVE-2025-12888</a>] Vulnerability in X25519 constant-time cryptographic implementations due to timing side channels introduced by compiler optimizations and CPU architecture limitations, specifically with the Xtensa-based ESP32 chips. If targeting Xtensa it is recommended to use the low memory implementations of X25519, which is now turned on as the default for Xtensa. Thanks to Adrian Cinal for the report. Fixed in PR 9275.</p>
</li>
<li>
<p>[Med. <a title="CVE-2025-11936" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-2mmq-prpj-ww9q/hovercard" href="https://github.com/advisories/GHSA-2mmq-prpj-ww9q">CVE-2025-11936</a>] Potential DoS vulnerability due to a memory leak through multiple KeyShareEntry with the same group in malicious TLS 1.3 ClientHello messages. This affects users who are running wolfSSL on the server side with TLS 1.3. Thanks to Jaehun Lee and Kyungmin Bae, Pohang University of Science and Technology (POSTECH) for the report. Fixed in PR 9117.</p>
</li>
<li>
<p>[Low <a title="CVE-2025-11935" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-4497-xvm3-5vh9/hovercard" href="https://github.com/advisories/GHSA-4497-xvm3-5vh9">CVE-2025-11935</a>] PSK with PFS (Perfect Forward Secrecy) downgrades to PSK without PFS during TLS 1.3 handshake. If the client sends a ClientHello that has a key share extension and the server responds with a ServerHello that does not have a key share extension the connection would previously continue on without using PFS. Thanks to Jaehun Lee from Pohang University of Science and Technology (POSTECH) for the report. Fixed in PR 9112.</p>
</li>
<li>
<p>[Low <a title="CVE-2025-11934" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-wq2x-6c88-jrh3/hovercard" href="https://github.com/advisories/GHSA-wq2x-6c88-jrh3">CVE-2025-11934</a>] Signature Algorithm downgrade from ECDSA P521 to P256 during TLS 1.3 handshake. When a client sends ECDSA P521 as the supported signature algorithm the server previously could respond as ECDSA P256 being the accepted signature algorithm and the connection would continue with using ECDSA P256. Thanks to Jaehun Lee from Pohang University of Science and Technology (POSTECH) for the report. Fixed in PR 9113.</p>
</li>
<li>
<p>[Low <a title="CVE-2025-11933" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-g9wx-2hxf-f2rj/hovercard" href="https://github.com/advisories/GHSA-g9wx-2hxf-f2rj">CVE-2025-11933</a>] DoS Vulnerability in wolfSSL TLS 1.3 CKS extension parsing. Previously duplicate CKS extensions were not rejected leading to a potential memory leak when processing a ClientHello. Thanks to Jaehun Lee from Pohang University of Science and Technology (POSTECH) for the report. Fixed in PR 9132.</p>
</li>
<li>
<p>[Low <a title="CVE-2025-11931" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-h957-386q-gm5j/hovercard" href="https://github.com/advisories/GHSA-h957-386q-gm5j">CVE-2025-11931</a>] Integer Underflow Leads to Out-of-Bounds Access in XChaCha20-Poly1305 Decrypt. This issue is hit specifically with a call to the function wc_XChaCha20Poly1305_Decrypt() which is not used with TLS connections, only from direct calls from an application. Thanks to Luigino Camastra from Aisle Research for the report. Fixed in PR 9223.</p>
</li>
<li>
<p>[Low <a title="CVE-2025-11932" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-6qhq-g72j-7wvf/hovercard" href="https://github.com/advisories/GHSA-6qhq-g72j-7wvf">CVE-2025-11932</a>] Timing Side-Channel in PSK Binder Verification. The server previously verified the TLS 1.3 PSK binder using a non-constant time method which could potentially leak information about the PSK binder. Thanks to Luigino Camastra from Aisle Research for the report. Fixed in PR 9223.</p>
</li>
<li>
<p>[Low <a title="CVE-2025-12889" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-6wfx-6f8c-8wg4/hovercard" href="https://github.com/advisories/GHSA-6wfx-6f8c-8wg4">CVE-2025-12889</a>] With TLS 1.2 connections a client can use any digest, specifically a weaker digest, rather than those in the CertificateRequest. Thanks to Jaehun Lee from Pohang University of Science and Technology (POSTECH) for the report. Fixed in PR 9395</p>
</li>
</ul>
<h2>New Features</h2>
<ul>
<li>New ML-KEM / ML-DSA APIs and seed/import PKCS8 support; added _new/_delete APIs for ML-KEM/ML-DSA. (PR 9039, 9000, 9049)</li>
<li>Initial wolfCrypt FreeBSD kernel module support (PR 9392)</li>
<li>Expanded PKCS7/CMS capabilities: decode SymmetricKeyPackage / OneSymmetricKey, add wc_PKCS7_GetEnvelopedDataKariRid, and allow PKCS7 builds with AES keywrap unset. (PR 9018, 9029, 9032)</li>
<li>Add custom AES key wrap/unwrap callbacks and crypto callback copy/free operations. (PR 9002, 9309)</li>
<li>Add support for certificate_authorities extension in ClientHello and certificate manager CA-type selection/unloading. (PR 9209, 9046)</li>
<li>Large expansion of Rust wrapper modules: random, aes, rsa, ecc, dh, sha, hmac, cmac, ed25519/ed448, pbkdf2/PKCS#12, kdf/prf, SRTP KDFs, and conditional compilation options. (PR 9191, 9212, 9273, 9306, 9320, 9328, 9368, 9389, 9357, 9433)</li>
<li>Rust: support optional heap and dev_id parameters and enable conditional compilation based on C build options. (PR 9407, 9433)</li>
<li>STM32 fixes (benchmarking and platform fixes) and PSoC6 hardware acceleration additions. (PR 9228, 9256, 9185)</li>
<li>STM32U5 added support for SAES and DHUK. (PR 9087)</li>
<li>Add --enable-curl=tiny option for a smaller build when used with cURL. (PR 9174)</li>
</ul>
<h2>Improvements / Optimizations</h2>
<ul>
<li>Regression test fixes and expansion: TLS 1.3/1.2 tests, ARDUINO examples, libssh2 tests, hostap workflows, and nightly test improvements. (PR 9096, 9141, 9091, 9122, 9388)</li>
<li>Improved test ordering and CI test stability (random tests run order changes, FIPS test fixes). (PR 9204, 9257)</li>
<li>Docs and readme fixes, docstring updates, AsconAEAD comment placement, and example certificate renewals. (PR 9131, 9293, 9262, 9429)</li>
<li>Updated GPL exception lists (GPLv2 and GPLv3 exception updates: add Fetchmail and OpenVPN). (PR 9398, 9413)</li>
<li>Introduced WOLFSSL_DEBUG_CERTS and additional debug/logging refinements. (PR 8902, 9055)</li>
<li>Expanded crypto-callback support (SHA family, HKDF, SHA-224, sha512_family digest selection) and improved crypto-only build cases. (PR 9070, 9252, 9271, 9100, 9194)</li>
<li>AES & HW offload improvements including AES-CTR support in PKCS11 driver and AES ECB offload sizing fix. (PR 9277, 9364)</li>
<li>ESP32: PSRAM allocator support and SHA HW fixes for ESP-IDF v6/v5. (PR 8987, 9225, 9264)</li>
<li>Renesas FSP / RA examples updated and security-module TLS context improvements. (PR 9047, 9010, 9158, 9150)</li>
<li>Broad configure/CMake/Autotools workflow improvements (Apple options tracking, Watcom pinning, Debian packaging, ESP-IDF pinning). (PR 9037, 9167, 9161, 9264)</li>
<li>New assembly introspection / performance helpers for RISC-V and PPC32; benchmarking enhancements (cycle counts). (PR 9101, 9317)</li>
<li>Update to SGX build for using assembly optimizations. (PR 8463, 9138)</li>
<li>Testing with Fil-C compiler version to 0.674 (PR 9396)</li>
<li>Refactors and compressing of small stack code (PR 9153)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>Removed the test feature using popen when defining the macro WOLFSSL_USE_POPEN_HOST and not having HAVE_GETADDRINFO defined, along with having the macro HAVE_HTTP_CLIENT set. There was the potential for vulnerable behavior with the use of popen when the API wolfSSL_BIO_new_connect() was called with this specific build. This exact build configuration is only intended for testing with QEMU and is not enabled with any autoconf/cmake flags. Thanks to linraymond2006 for the report. (PR 9038)</li>
<li>Fix for C# wrapper Ed25519 potential crash and heap overwrite with raw public key import when using the API Ed25519ImportPublic.This was a broken API with the C# wrapper that would crash on use. Thanks to Luigino Camastra from Aisle Research for the bug report. (PR 9291)</li>
<li>Coverity, cppcheck, MISRA, clang-tidy, ZeroPath and other static-analysis driven fixes across the codebase. (PR 9006, 9078, 9068, 9265, 9324)</li>
<li>TLS 1.2/DTLS improvements: client message order checks, DTLS cookie/exchange and replay protections, better DTLS early-data handling. (PR 9387, 9253, 9205, 9367)</li>
<li>Improved X.509 & cert handling: allow larger pathLen in Basic Constraints, restore inner server name for ECH, retrying cert candidate chains. (PR 8890, 9234, 8692)</li>
<li>Sniffer robustness: fix infinite recursion, better handling of OOO appData and partial overlaps, and improved retransmission detection. (PR 9051, 9106, 9140, 9094)</li>
<li>Numerous linuxkm (kernel-mode) fixes, relocation/PIE normalization, and FIPS-related build tweaks across many iterations. (PR 9025, 9035, 9067, 9111, 9121)</li>
<li>ML-KEM/Kyber and ML-DSA fixes for out-of-bounds and seed-import correctness; multiple ML-related safety fixes. (PR 9142, 9105, 9439)</li>
<li>Avoid uninitialized-variable and GCC warnings; several fixes for undefined-shift/overflow issues. (PR 9020, 9372, 9195)</li>
<li>Memory & leak fixes in X509 verification and various struct sizing fixes for WOLFSSL_NO_MALLOC usage. (PR 9258, 9036)</li>
<li>Fixed RSA / signing / verify-only warnings allowing WOLFSSL_NO_CT_OPS when WOLFSSL_RSA_VERIFY_ONLY is used and API cleanups for using const. (PR 9031, 9263)</li>
</ul>gojimmypitag:github.com,2008:Repository/742109102/5.8.22025-07-22T17:30:32Zv5.8.2<h1>wolfSSL Release 5.8.2 (July 17, 2025)</h1>
<h1>To download the release bundle of wolfSSL visit the download page at <a href="http://www.wolfssl.com/download/" rel="nofollow">www.wolfssl.com/download/</a></h1>
<p>NOTE: * wolfSSL is now GPLv3 instead of GPLv2<br>
* --enable-heapmath is deprecated<br>
* MD5 is now disabled by default</p>
<p>PR stands for Pull Request, and PR references a GitHub pull request number where the code change was added.</p>
<h2>Vulnerabilities</h2>
<ul>
<li>[Low] There is the potential for a fault injection attack on ECC and Ed25519 verify operations. In versions of wolfSSL 5.7.6 and later the --enable-faultharden option is available to help mitigate against potential fault injection attacks. The mitigation added in wolfSSL version 5.7.6 is to help harden applications relying on the results of the verify operations, such as when used with wolfBoot. If doing ECC or Ed25519 verify operations on a device at risk for fault injection attacks then --enable-faultharden could be used to help mitigate it. Thanks to Kevin from Fraunhofer AISEC for the report.</li>
</ul>
<p>Hardening option added in PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2739254798" data-permission-text="Title is private" data-url="https://github.com/wolfSSL/wolfssl/issues/8289" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/wolfssl/pull/8289/hovercard" href="https://github.com/wolfSSL/wolfssl/pull/8289">wolfSSL/wolfssl#8289</a></p>
<ul>
<li>[High <a title="CVE-2025-7395" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-g6x8-5jj7-qqfv/hovercard" href="https://github.com/advisories/GHSA-g6x8-5jj7-qqfv">CVE-2025-7395</a>] When using WOLFSSL_SYS_CA_CERTS and WOLFSSL_APPLE_NATIVE_CERT_VALIDATION on an Apple platform, the native trust store verification routine overrides errors produced elsewhere in the wolfSSL certificate verification process including failures due to hostname matching/SNI, OCSP, CRL, etc. This allows any trusted cert chain to override other errors detected during chain verification that should have resulted in termination of the TLS connection. If building wolfSSL on versions after 5.7.6 and before 5.8.2 with use of the system CA support and the apple native cert validation feature enabled on Apple devices (on by default for non-macOS Apple targets when using autotools or CMake) we recommend updating to the latest version of wolfSSL. Thanks to Thomas Leong from ExpressVPN for the report.</li>
</ul>
<p>Fixed in PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3111898296" data-permission-text="Title is private" data-url="https://github.com/wolfSSL/wolfssl/issues/8833" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/wolfssl/pull/8833/hovercard" href="https://github.com/wolfSSL/wolfssl/pull/8833">wolfSSL/wolfssl#8833</a></p>
<ul>
<li>[Med. <a title="CVE-2025-7394" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-jgh6-fqf6-cpj8/hovercard" href="https://github.com/advisories/GHSA-jgh6-fqf6-cpj8">CVE-2025-7394</a>] In the OpenSSL compatibility layer implementation, the function RAND_poll() was not behaving as expected and leading to the potential for predictable values returned from RAND_bytes() after fork() is called. This can lead to weak or predictable random numbers generated in applications that are both using RAND_bytes() and doing fork() operations. This only affects applications explicitly calling RAND_bytes() after fork() and does not affect any internal TLS operations. Although RAND_bytes() documentation in OpenSSL calls out not being safe for use with fork() without first calling RAND_poll(), an additional code change was also made in wolfSSL to make RAND_bytes() behave similar to OpenSSL after a fork() call without calling RAND_poll(). Now the Hash-DRBG used gets reseeded after detecting running in a new process. If making use of RAND_bytes() and calling fork() we recommend updating to the latest version of wolfSSL. Thanks to Per Allansson from Appgate for the report.</li>
</ul>
<p>Fixed in the following PR’s<br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3123132173" data-permission-text="Title is private" data-url="https://github.com/wolfSSL/wolfssl/issues/8849" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/wolfssl/pull/8849/hovercard" href="https://github.com/wolfSSL/wolfssl/pull/8849">wolfSSL/wolfssl#8849</a><br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3134961394" data-permission-text="Title is private" data-url="https://github.com/wolfSSL/wolfssl/issues/8867" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/wolfssl/pull/8867/hovercard" href="https://github.com/wolfSSL/wolfssl/pull/8867">wolfSSL/wolfssl#8867</a><br>
<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3158313010" data-permission-text="Title is private" data-url="https://github.com/wolfSSL/wolfssl/issues/8898" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/wolfssl/pull/8898/hovercard" href="https://github.com/wolfSSL/wolfssl/pull/8898">wolfSSL/wolfssl#8898</a></p>
<ul>
<li>[Low <a title="CVE-2025-7396" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-h9v3-wvxh-4mwp/hovercard" href="https://github.com/advisories/GHSA-h9v3-wvxh-4mwp">CVE-2025-7396</a>] In wolfSSL 5.8.0 the option of hardening the C implementation of Curve25519 private key operations was added with the addition of blinding support (<a href="https://www.wolfssl.com/curve25519-blinding-support-added-in-wolfssl-5-8-0/" rel="nofollow">https://www.wolfssl.com/curve25519-blinding-support-added-in-wolfssl-5-8-0/</a>). In wolfSSL release 5.8.2 that blinding support is turned on by default in applicable builds. The blinding configure option is only for the base C implementation of Curve25519. It is not needed, or available with; ARM assembly builds, Intel assembly builds, and the small Curve25519 feature. While the attack would be very difficult to execute in practice, enabling blinding provides an additional layer of protection for devices that may be more susceptible to physical access or side-channel observation. Thanks to Arnaud Varillon, Laurent Sauvage, and Allan Delautre from Telecom Paris for the report.</li>
</ul>
<p>Blinding enabled by default in PR <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3040679808" data-permission-text="Title is private" data-url="https://github.com/wolfSSL/wolfssl/issues/8736" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/wolfssl/pull/8736/hovercard" href="https://github.com/wolfSSL/wolfssl/pull/8736">wolfSSL/wolfssl#8736</a></p>
<h2>New Features</h2>
<ul>
<li>Multiple sessions are now supported in the sniffer due to the removal of a cached check. (PR #8723)</li>
<li>New API ssl_RemoveSession() has been implemented for sniffer cleanup operations. (PR #8768)</li>
<li>The new ASN X509 API, <code>wc_GetSubjectPubKeyInfoDerFromCert</code>, has been introduced for retrieving public key information from certificates. (PR #8758)</li>
<li><code>wc_PKCS12_create()</code> has been enhanced to support PBE_AES(256|128)_CBC key and certificate encryptions. (PR #8782, PR #8822, PR #8859)</li>
<li><code>wc_PKCS7_DecodeEncryptedKeyPackage()</code> has been added for decoding encrypted key packages. (PR #8976)</li>
<li>All AES, SHA, and HMAC functionality has been implemented within the Linux Kernel Module. (PR #8998)</li>
<li>Additions to the compatibility layer have been introduced for X.509 extensions and RSA PSS. Adding the API i2d_PrivateKey_bio, BN_ucmp and X509v3_get_ext_by_NID. (PR #8897)</li>
<li>Added support for STM32N6. (PR #8914)</li>
<li>Implemented SHA-256 for PPC 32 assembly. (PR #8894)</li>
</ul>
<h2>Improvements / Optimizations</h2>
<h3>Linux Kernel Module (LinuxKM) Enhancements</h3>
<ul>
<li>Registered DH and FFDHE for the Linux Kernel Module. (PR #8707)</li>
<li>Implemented fixes for standard RNG in the Linux Kernel Module. (PR #8718)</li>
<li>Added an ECDSA workaround for the Linux Kernel Module. (PR #8727)</li>
<li>Added more PKCS1 pad SHA variants for RSA in the Linux Kernel Module. (PR #8730)</li>
<li>Set default priority to 100000 for LKCAPI in the Linux Kernel Module. (PR #8740)</li>
<li>Ensured ECDH never has FIPS enabled in the Linux Kernel Module. (PR #8751)</li>
<li>Implemented further Linux Kernel Module and SP tweaks. (PR #8773)</li>
<li>Added sig_alg support for Linux 6.13 RSA in the Linux Kernel Module. (PR #8796)</li>
<li>Optimized wc_linuxkm_fpu_state_assoc. (PR #8828)</li>
<li>Ensured DRBG is multithread-round-1 in the Linux Kernel Module. (PR #8840)</li>
<li>Prevented toggling of fips_enabled in the Linux Kernel Module. (PR #8873)</li>
<li>Refactored drbg_ctx clear in the Linux Kernel Module. (PR #8876)</li>
<li>Set sig_alg max_size and digest_size callbacks for RSA in the Linux Kernel Module. (PR #8915)</li>
<li>Added get_random_bytes for the Linux Kernel Module. (PR #8943)</li>
<li>Implemented distro fix for the Linux Kernel Module. (PR #8994)</li>
<li>Fixed page-flags-h in the Linux Kernel Module. (PR #9001)</li>
<li>Added MODULE_LICENSE for the Linux Kernel Module. (PR #9005)</li>
<li>Post-Quantum Cryptography (PQC) & Asymmetric Algorithms</li>
<li>Kyber has been updated to the MLKEM ARM file for Zephyr (PR #8781)</li>
<li>Backward compatibility has been implemented for ML_KEM IDs (PR #8827)</li>
<li>ASN.1 is now ensured to be enabled when only building PQ algorithms (PR #8884)</li>
<li>Building LMS with verify-only has been fixed (PR #8913)</li>
<li>Parameters for LMS SHA-256_192 have been corrected (PR #8912)</li>
<li>State can now be saved with the private key for LMS (PR #8836)</li>
<li>Support for OpenSSL format has been added for ML-DSA/Dilithium (PR #8947)</li>
<li><code>dilithium_coeff_eta2[]</code> has been explicitly declared as signed (PR #8955)</li>
</ul>
<h3>Build System & Portability</h3>
<ul>
<li>Prepared for the inclusion of v5.8.0 in the Ada Alire index. (PR #8714)</li>
<li>Introduced a new build option to allow reuse of the Windows crypt provider handle. (PR #8706)</li>
<li>Introduced general fixes for various build configurations. (PR #8763)</li>
<li>Made improvements for portability using older GCC 4.8.2. (PR #8753)</li>
<li>Macro guards updated to allow tests to build with opensslall and no server. (PR #8776)</li>
<li>Added a check for STDC_NO_ATOMICS macro before use of atomics. (PR #8885)</li>
<li>Introduced CMakePresets.json and CMakeSettings.json. (PR #8905)</li>
<li>Added an option to not use constant time code with min/max. (PR #8830)</li>
<li>Implemented proper MacOS dispatch for conditional signal/wait. (PR #8928)</li>
<li>Disabled MD5 by default for both general and CMake builds. (PR #8895, PR #8948)</li>
<li>Improved to allow building OPENSSL_EXTRA without KEEP_PEER_CERT. (PR #8926)</li>
<li>Added introspection for Intel and ARM assembly speedups. (PR #8954)</li>
<li>Fixed cURL config to set HAVE_EX_DATA and HAVE_ALPN. (PR #8973)</li>
<li>Moved FREESCALE forced algorithm HAVE_ECC to IDE/MQX/user_settings.h. (PR #8977)</li>
</ul>
<h3>Testing & Debugging</h3>
<ul>
<li>Fixed the exit status for testwolfcrypt. (PR #8762)</li>
<li>Added WOLFSSL_DEBUG_PRINTF and WOLFSSL_DEBUG_CERTIFICATE_LOADS for improved debugging output. (PR #8769, PR #8770)</li>
<li>Guarded some benchmark tests with NO_SW_BENCH. (PR #8760)</li>
<li>Added an additional unit test for wolfcrypt PKCS12 file to improve code coverage. (PR #8831)</li>
<li>Added an additional unit test for increased DH code coverage. (PR #8837)</li>
<li>Adjusted for warnings with NO_TLS build and added GitHub actions test. (PR #8851)</li>
<li>Added additional compatibility layer RAND tests. (PR #8852)</li>
<li>Added an API unit test for checking domain name. (PR #8863)</li>
<li>Added bind v9.18.33 testing. (PR #8888)</li>
<li>Fixed issue with benchmark help options and descriptions not lining up. (PR #8957)</li>
</ul>
<h3>Certificates & ASN.1</h3>
<ul>
<li>Changed the algorithm for sum in ASN.1 OIDs. (PR #8655)</li>
<li>Updated PKCS7 to use X509 STORE for internal verification. (PR #8748)</li>
<li>Improved handling of temporary buffer size for X509 extension printing. (PR #8710)</li>
<li>Marked IP address as WOLFSSL_V_ASN1_OCTET_STRING for ALT_NAMES_OID. (PR #8842)</li>
<li>Fixed printing empty names in certificates. (PR #8880)</li>
<li>Allowed CA:FALSE on wolftpm. (PR #8925)</li>
<li>Fixed several inconsistent function prototype parameter names in wc/asn. (PR #8949)</li>
<li>Accounted for custom extensions when creating a Cert from a WOLFSSL_X509. (PR #8960)</li>
</ul>
<h3>TLS/DTLS & Handshake</h3>
<ul>
<li>Checked group correctness outside of TLS 1.3 too for TLSX_UseSupportedCurve. (PR #8785)</li>
<li>Dropped records that span datagrams in DTLS. (PR #8642)</li>
<li>Implemented WC_NID_netscape_cert_type. (PR #8800)</li>
<li>Refactored GetHandshakeHeader/GetHandShakeHeader into one function. (PR #8787)</li>
<li>Correctly set the current peer in dtlsProcessPendingPeer. (PR #8848)</li>
<li>Fixed set_groups for TLS. (PR #8824)</li>
<li>Allowed trusted_ca_keys with TLSv1.3. (PR #8860)</li>
<li>Moved Dtls13NewEpoch into DeriveTls13Keys. (PR #8858)</li>
<li>Cleared tls1_3 on downgrade. (PR #8861)</li>
<li>Always sent ACKs on detected retransmission for DTLS1.3. (PR #8882)</li>
<li>Removed DTLS from echo examples. (PR #8889)</li>
<li>Recalculated suites at SSL initialization. (PR #8757)</li>
<li>No longer using BIO for ALPN. (PR #8969)</li>
<li>Fixed wolfSSL_BIO_new_connect's handling of IPV6 addresses. (PR #8815)</li>
<li>Memory Management & Optimizations</li>
<li>Performed small stack refactors, improved stack size with mlkem and dilithium, and added additional tests. (PR #8779)</li>
<li>Implemented FREE_MP_INT_SIZE in heap math. (PR #8881)</li>
<li>Detected correct MAX_ENCODED_SIG_SZ based on max support in math lib. (PR #8931)</li>
<li>Fixed improper access of sp_int_minimal using sp_int. (PR #8985)</li>
</ul>
<h3>Cryptography & Hash Functions</h3>
<ul>
<li>Implemented WC_SIPHASH_NO_ASM for not using assembly optimizations with siphash. (PR #8789, PR #8791)</li>
<li>Added missing DH_MAX_SIZE define for FIPS and corrected wolfssl.rc FILETYPE to VFT_DLL. (PR #8794)</li>
<li>Implemented WC_SHA3_NO_ASM for not using assembly with SHA3. (PR #8817)</li>
<li>Improved Aarch64 XFENCE. (PR #8832)</li>
<li>Omitted frame pointer for ARM32/Thumb2/RISC-V 64 assembly. (PR #8893)</li>
<li>Fixed branch instruction in ARMv7a ASM. (PR #8933)</li>
<li>Enabled EVP HMAC to work with WOLFSSL_HMAC_COPY_HASH. (PR #8944)</li>
<li>Platform-Specific & Hardware Integration</li>
<li>Added HAVE_HKDF for wolfssl_test and explicit support for ESP32P4. (PR #8742)</li>
<li>Corrected Espressif default time setting. (PR #8829)</li>
<li>Made wc_tsip_* APIs public. (PR #8717)</li>
<li>Improved PlatformIO Certificate Bundle Support. (PR #8847)</li>
<li>Fixed the TSIP TLS example program. (PR #8857)</li>
<li>Added crypto callback functions for TROPIC01 secure element. (PR #8812)</li>
<li>Added Renesas RX TSIP AES CTR support. (PR #8854)</li>
<li>Fixed TSIP port using crypto callback. (PR #8937)</li>
</ul>
<h3>General Improvements & Refactoring</h3>
<ul>
<li>Attempted wolfssl_read_bio_file in read_bio even when XFSEEK is available. (PR #8703)</li>
<li>Refactored GetHandshakeHeader/GetHandShakeHeader into one function. (PR #8787)</li>
<li>Updated libspdm from 3.3.0 to 3.7.0. (PR #8906)</li>
<li>Fixed missing dashes on the end of header and footer for Falcon PEM key. (PR #8904)</li>
<li>Fixed minor code typos for macos signal and types.h max block size. (PR #8934)</li>
<li>Make the API wolfSSL_X509_STORE_CTX_get_error accessible to more build configurations for ease of getting the "store" error code and depth with certificate failure callback implementations. (PR #8903)</li>
</ul>
<h2>Bug Fixes</h2>
<ul>
<li>Fixed issues to support _WIN32_WCE (VS 2008 with WinCE 6.0/7.0). (PR #8709)</li>
<li>Fixed STM32 Hash with IRQ enabled. (PR #8705)</li>
<li>Fixed raw hash when using crypto instructions on RISC-V 64-bit. (PR #8733)</li>
<li>Fixed ECDH decode secret in the Linux Kernel Module. (PR #8729)</li>
<li>Passed in the correct hash type to wolfSSL_RSA_verify_ex. (PR #8726)</li>
<li>Fixed issues for Intel QuickAssist latest driver (4.28). (PR #8728)</li>
<li>Speculative fix for CodeSonar overflow issue in ssl_certman.c. (PR #8715)</li>
<li>Fixed Arduino progmem print and AVR WOLFSSL_USER_IO. (PR #8668)</li>
<li>Correctly advanced the index in wc_HKDF_Expand_ex. (PR #8737)</li>
<li>Fixed STM32 hash status check logic, including NO_AES_192 and NO_AES_256. (PR #8732)</li>
<li>Added missing call to wolfSSL_RefFree in FreeCRL to prevent memory leaks. (PR #8750)</li>
<li>Fixed sanity check on --group with unit test app and null sanity check with des decrypt. (PR #8711)</li>
<li>Fixed Curve25519 and static ephemeral issue with blinding. (PR #8766)</li>
<li>Fixed edge case issue with STM32 AES GCM auth padding. (PR #8745)</li>
<li>Removed redefinition of MlKemKey and fixed build issue in benchmark. (PR #8755)</li>
<li>Used proper heap hint when freeing CRL in error case. (PR #8713)</li>
<li>Added support for no malloc with wc_CheckCertSigPubKey. (PR #8725)</li>
<li>Fixed C# wrapper Release build. (PR #8802)</li>
<li>Handled malformed CCS and CCS before CH in TLS1.3. (PR #8788)</li>
<li>Fixed ML-DSA with WOLFSSL_DILITHIUM_NO_SIGN. (PR #8798)</li>
<li>Fixed AesGcmCrypt_1 no-stream in the Linux Kernel Module. (PR #8814)</li>
<li>Fixed return value usage for crypto_sig_sign in the Linux Kernel Module. (PR #8816)</li>
<li>Fixed issue with CSharp and Windows CE with conversion of ASCII and Unicode. (PR #8799)</li>
<li>Fixed Renesas SCE on RA6M4. (PR #8838)</li>
<li>Fixed tests for different configs for ML-DSA. (PR #8865)</li>
<li>Fixed bug in ParseCRL_Extensions around the size of a CRL number handled and CRL number OID. (PR #8587)</li>
<li>Fixed uninitialized wc_FreeRng in prime_test. (PR #8886)</li>
<li>Fixed ECC configuration issues with ECC verify only and no RNG. (PR #8901)</li>
<li>Fixed issues with max size, openssl.test netcat, and clang-tidy. (PR #8909)</li>
<li>Fixed for casting down and uninit issues in Dilithium/ML-DSA. (PR #8868)</li>
<li>Fixed memory allocation failure testing and related unit test cases. (PR #8945, PR #8952)</li>
<li>Fixed build issue with ML-DSA 44 only. (PR #8981)</li>
<li>Fixed possible memory leak with X509 reference counter when using x509small. (PR #8982)</li>
</ul>gojimmypitag:github.com,2008:Repository/742109102/5.8.02025-05-19T14:56:50Zv5.8.0<p>See: <a href="https://github.com/wolfSSL/Arduino-wolfSSL/pull/15" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/Arduino-wolfSSL/pull/15/hovercard">wolfSSL 5.8.0 Release for Arduino #15</a> and <a href="https://github.com/wolfSSL/Arduino-wolfSSL/pull/16" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/Arduino-wolfSSL/pull/16/hovercard">Post Release Arduino 5.8.0 post release #16</a> from <a href="https://github.com/wolfSSL/wolfssl/releases/tag/v5.8.0-stable">wolfSSL Release 5.8.0 (Apr 24, 2025)</a>.</p>
<h1>Text from wolfSSL 5.8.0 Release:</h1>
<p>NOTE: * --enable-heapmath is deprecated</p>
<p>PR stands for Pull Request, and PR references a GitHub pull request<br>
number where the code change was added.</p>
<h2>New Feature Additions</h2>
<ul>
<li>Algorithm registration in the Linux kernel module for all supported FIPS AES,<br>
SHA, HMAC, ECDSA, ECDH, and RSA modes, key sizes, and digest sizes.</li>
<li>Implemented various fixes to support building for Open Watcom including OS/2<br>
support and Open Watcom 1.9 compatibility (PR 8505, 8484)</li>
<li>Added support for STM32H7S (tested on NUCLEO-H7S3L8) (PR 8488)</li>
<li>Added support for STM32WBA (PR 8550)</li>
<li>Added Extended Master Secret Generation Callback to the --enable-pkcallbacks<br>
build (PR 8303)</li>
<li>Implement AES-CTS (configure flag --enable-aescts) in wolfCrypt (PR 8594)</li>
<li>Added support for libimobiledevice commit 860ffb (PR 8373)</li>
<li>Initial ASCON hash256 and AEAD128 support based on NIST SP 800-232 IPD<br>
(PR 8307)</li>
<li>Added blinding option when using a Curve25519 private key by defining the<br>
macro WOLFSSL_CURVE25519_BLINDING (PR 8392)</li>
</ul>
<h2>Linux Kernel Module</h2>
<ul>
<li>Production-ready LKCAPI registration for cbc(aes), cfb(aes), gcm(aes),<br>
rfc4106 (gcm(aes)), ctr(aes), ofb(aes), and ecb(aes), ECDSA with P192, P256,<br>
P384, and P521 curves, ECDH with P192, P256, and P384 curves, and RSA with<br>
bare and PKCS1 padding</li>
<li>Various fixes for LKCAPI wrapper for AES-CBC and AES-CFB (PR 8534, 8552)</li>
<li>Adds support for the legacy one-shot AES-GCM back end (PR 8614, 8567) for<br>
compatibility with FIPS 140-3 Cert #4718.</li>
<li>On kernel >=6.8, for CONFIG_FORTIFY_SOURCE, use 5-arg fortify_panic() override<br>
macro (PR 8654)</li>
<li>Update calls to scatterwalk_map() and scatterwalk_unmap() for linux commit<br>
7450ebd29c (merged for Linux 6.15) (PR 8667)</li>
<li>Inhibit LINUXKM_LKCAPI_REGISTER_ECDH on kernel <5.13 (PR 8673)</li>
<li>Fix for uninitialized build error with fedora (PR 8569)</li>
<li>Register ecdsa, ecdh, and rsa for use with linux kernel crypto (PR 8637, 8663,</li>
</ul>
<ol start="8646">
<li></li>
</ol>
<ul>
<li>Added force zero shared secret buffer, and clear of old key with ecdh<br>
(PR 8685)</li>
<li>Update fips-check.sh script to pickup XTS streaming support on aarch64 and<br>
disable XTS-384 as an allowed use in FIPS mode (PR 8509, 8546)</li>
</ul>
<h2>Enhancements and Optimizations</h2>
<h3>Security & Cryptography</h3>
<ul>
<li>Add constant-time implementation improvements for encoding functions. We thank<br>
Zhiyuan and Gilles for sharing a new constant-time analysis tool (CT-LLVM) and<br>
reporting several non-constant-time implementations. (PR 8396, 8617)</li>
<li>Additional support for PKCS7 verify and decode with indefinite lengths<br>
(PR 8520, 834, 8645)</li>
<li>Add more PQC hybrid key exchange algorithms such as support for combinations<br>
with X25519 and X448 enabling compatibility with the PQC key exchange support<br>
in Chromium browsers and Mozilla Firefox (PR 7821)</li>
<li>Add short-circuit comparisons to DH key validation for RFC 7919 parameters<br>
(PR 8335)</li>
<li>Improve FIPS compatibility with various build configurations for more resource<br>
constrained builds (PR 8370)</li>
<li>Added option to disable ECC public key order checking (PR 8581)</li>
<li>Allow critical alt and basic constraints extensions (PR 8542)</li>
<li>New codepoint for MLDSA to help with interoperability (PR 8393)</li>
<li>Add support for parsing trusted PEM certs having the header<br>
“BEGIN_TRUSTED_CERT” (PR 8400)</li>
<li>Add support for parsing only of DoD certificate policy and Comodo Ltd PKI OIDs<br>
(PR 8599, 8686)</li>
<li>Update ssl code in <code>src/*.c</code> to be consistent with wolfcrypt/src/asn.c<br>
handling of ML_DSA vs Dilithium and add dual alg. test (PR 8360, 8425)</li>
</ul>
<h3>Build System, Configuration, CI & Protocols</h3>
<ul>
<li>Internal refactor for include of config.h and when building with<br>
BUILDING_WOLFSSL macro. This refactor will give a warning of “deprecated<br>
function” when trying to improperly use an internal API of wolfSSL in an<br>
external application. (PR 8640, 8647, 8660, 8662, 8664)</li>
<li>Add WOLFSSL_CLU option to CMakeLists.txt (PR 8548)</li>
<li>Add CMake and Zephyr support for XMSS and LMS (PR 8494)</li>
<li>Added GitHub CI for CMake builds (PR 8439)</li>
<li>Added necessary macros when building wolfTPM Zephyr with wolfSSL (PR 8382)</li>
<li>Add MSYS2 build continuous integration test (PR 8504)</li>
<li>Update DevKitPro doc to list calico dependency with build commands (PR 8607)</li>
<li>Conversion compiler warning fixes and additional continuous integration test<br>
added (PR 8538)</li>
<li>Enable DTLS 1.3 by default in --enable-jni builds (PR 8481)</li>
<li>Enabled TLS 1.3 middlebox compatibility by default for --enable-jni builds<br>
(PR 8526)</li>
</ul>
<h3>Performance Improvements</h3>
<ul>
<li>Performance improvements AES-GCM and HMAC (in/out hash copy) (PR 8429)</li>
<li>LMS fixes and improvements adding API to get Key ID from raw private key,<br>
change to identifiers to match standard, and fix for when<br>
WOLFSSL_LMS_MAX_LEVELS is 1 (PR 8390, 8684, 8613, 8623)</li>
<li>ML-KEM/Kyber improvements and fixes; no malloc builds, small memory usage,<br>
performance improvement, fix for big-endian (PR 8397, 8412, 8436, 8467, 8619,<br>
8622, 8588)</li>
<li>Performance improvements for AES-GCM and when doing multiple HMAC operations<br>
(PR 8445)</li>
</ul>
<h3>Assembly and Platform-Specific Enhancements</h3>
<ul>
<li>Poly1305 arm assembly changes adding ARM32 NEON implementation and fix for<br>
Aarch64 use (PR 8344, 8561, 8671)</li>
<li>Aarch64 assembly enhancement to use more CPU features, fix for FreeBSD/OpenBSD<br>
(PR 8325, 8348)</li>
<li>Only perform ARM assembly CPUID checks if support was enabled at build time<br>
(PR 8566)</li>
<li>Optimizations for ARM32 assembly instructions on platforms less than ARMv7<br>
(PR 8395)</li>
<li>Improve MSVC feature detection for static assert macros (PR 8440)</li>
<li>Improve Espressif make and CMake for ESP8266 and ESP32 series (PR 8402)</li>
<li>Espressif updates for Kconfig, ESP32P4 and adding a sample user_settings.h<br>
(PR 8422, PR 8641)</li>
</ul>
<h3>OpenSSL Compatibility Layer</h3>
<ul>
<li>Modification to the push/pop to/from in OpenSSL compatibility layer. This is<br>
a pretty major API change in the OpenSSL compatibility stack functions.<br>
Previously the API would push/pop from the beginning of the list but now they<br>
operate on the tail of the list. This matters when using the sk_value with<br>
index values. (PR 8616)</li>
<li>OpenSSL Compat Layer: OCSP response improvements (PR 8408, 8498)</li>
<li>Expand the OpenSSL compatibility layer to include an implementation of<br>
BN_CTX_get (PR 8388)</li>
</ul>
<h3>API Additions and Modifications</h3>
<ul>
<li>Refactor Hpke to allow multiple uses of a context instead of just one shot<br>
mode (PR 6805)</li>
<li>Add support for PSK client callback with Ada and use with Alire (thanks<br>
mgrojo, PR 8332, 8606)</li>
<li>Change wolfSSL_CTX_GenerateEchConfig to generate multiple configs and add<br>
functions wolfSSL_CTX_SetEchConfigs and wolfSSL_CTX_SetEchConfigsBase64 to<br>
rotate the server's echConfigs (PR 8556)</li>
<li>Added the public API wc_PkcsPad to do PKCS padding (PR 8502)</li>
<li>Add NULL_CIPHER_TYPE support to wolfSSL_EVP_CipherUpdate (PR 8518)</li>
<li>Update Kyber APIs to ML-KEM APIs (PR 8536)</li>
<li>Add option to disallow automatic use of "default" devId using the macro<br>
WC_NO_DEFAULT_DEVID (PR 8555)</li>
<li>Detect unknown key format on ProcessBufferTryDecode() and handle RSA-PSSk<br>
format (PR 8630)</li>
</ul>
<h3>Porting and Language Support</h3>
<ul>
<li>Update Python port to support version 3.12.6 (PR 8345)</li>
<li>New additions for MAXQ with wolfPKCS11 (PR 8343)</li>
<li>Port to ntp 4.2.8p17 additions (PR 8324)</li>
<li>Add version 0.9.14 to tested libvncserver builds (PR 8337)</li>
</ul>
<h3>General Improvements and Cleanups</h3>
<ul>
<li>Cleanups for STM32 AES GCM (PR 8584)</li>
<li>Improvements to isascii() and the CMake key log option (PR 8596)</li>
<li>Arduino documentation updates, comments and spelling corrections (PR 8381,<br>
8384, 8514)</li>
<li>Expanding builds with WOLFSSL_NO_REALLOC for use with --enable-opensslall and<br>
--enable-all builds (PR 8369, 8371)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li>Fix a use after free caused by an early free on error in the X509 store<br>
(PR 8449)</li>
<li>Fix to account for existing PKCS8 header with<br>
wolfSSL_PEM_write_PKCS8PrivateKey (PR 8612)</li>
<li>Fixed failing CMake build issue when standard threads support is not found in<br>
the system (PR 8485)</li>
<li>Fix segmentation fault in SHA-512 implementation for AVX512 targets built with<br>
gcc -march=native -O2 (PR 8329)</li>
<li>Fix Windows socket API compatibility warning with mingw32 build (PR 8424)</li>
<li>Fix potential null pointer increments in cipher list parsing (PR 8420)</li>
<li>Fix for possible stack buffer overflow read with wolfSSL_SMIME_write_PKCS7.<br>
Thanks to the team at Code Intelligence for the report. (PR 8466)</li>
<li>Fix AES ECB implementation for Aarch64 ARM assembly (PR 8379)</li>
<li>Fixed building with VS2008 and .NET 3.5 (PR 8621)</li>
<li>Fixed possible error case memory leaks in CRL and EVP_Sign_Final (PR 8447)</li>
<li>Fixed SSL_set_mtu compatibility function return code (PR 8330)</li>
<li>Fixed Renesas RX TSIP (PR 8595)</li>
<li>Fixed ECC non-blocking tests (PR 8533)</li>
<li>Fixed CMake on MINGW and MSYS (PR 8377)</li>
<li>Fixed Watcom compiler and added new CI test (PR 8391)</li>
<li>Fixed STM32 PKA ECC 521-bit support (PR 8450)</li>
<li>Fixed STM32 PKA with P521 and shared secret (PR 8601)</li>
<li>Fixed crypto callback macro guards with <code>DEBUG_CRYPTOCB</code> (PR 8602)</li>
<li>Fix outlen return for RSA private decrypt with WOLF_CRYPTO_CB_RSA_PAD<br>
(PR 8575)</li>
<li>Additional sanity check on r and s lengths in DecodeECC_DSA_Sig_Bin (PR 8350)</li>
<li>Fix compat. layer ASN1_TIME_diff to accept NULL output params (PR 8407)</li>
<li>Fix CMake lean_tls build (PR 8460)</li>
<li>Fix for QUIC callback failure (PR 8475)</li>
<li>Fix missing alert types in AlertTypeToString for print out with debugging<br>
enabled (PR 8572)</li>
<li>Fixes for MSVS build issues with PQC configure (PR 8568)</li>
<li>Fix for SE050 port and minor improvements (PR 8431, 8437)</li>
<li>Fix for missing rewind function in zephyr and add missing files for compiling<br>
with assembly optimizations (PR 8531, 8541)</li>
<li>Fix for quic_record_append to return the correct code (PR 8340, 8358)</li>
<li>Fixes for Bind 9.18.28 port (PR 8331)</li>
<li>Fix to adhere more closely with RFC8446 Appendix D and set haveEMS when<br>
negotiating TLS 1.3 (PR 8487)</li>
<li>Fix to properly check for signature_algorithms from the client in a TLS 1.3<br>
server (PR 8356)</li>
<li>Fix for when BIO data is less than seq buffer size. Thanks to the team at Code<br>
Intelligence for the report (PR 8426)</li>
<li>ARM32/Thumb2 fixes for WOLFSSL_NO_VAR_ASSIGN_REG and td4 variable declarations<br>
(PR 8590, 8635)</li>
<li>Fix for Intel AVX1/SSE2 assembly to not use vzeroupper instructions unless ymm<br>
or zmm registers are used (PR 8479)</li>
<li>Entropy MemUse fix for when block size less than update bits (PR 8675)</li>
</ul>gojimmypitag:github.com,2008:Repository/742109102/5.7.62025-02-04T23:35:28Zv5.7.6<p>See <a href="https://github.com/wolfSSL/wolfssl/releases/tag/v5.7.6-stable">wolfSSL Release 5.7.6 (Dec 31, 2024)</a> via <a href="https://github.com/wolfSSL/Arduino-wolfSSL/pull/12" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/Arduino-wolfSSL/pull/12/hovercard">wolfssl 5.7.6 Release for Arduino #12</a></p>
<h1>NOTE:</h1>
<p>This release is based on a branch with minor post-release updates. See: <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2811734577" data-permission-text="Title is private" data-url="https://github.com/wolfSSL/wolfssl/issues/8381" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/wolfssl/pull/8381/hovercard" href="https://github.com/wolfSSL/wolfssl/pull/8381">wolfSSL/wolfssl#8381</a> and <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2813765508" data-permission-text="Title is private" data-url="https://github.com/wolfSSL/wolfssl/issues/8384" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/wolfssl/pull/8384/hovercard" href="https://github.com/wolfSSL/wolfssl/pull/8384">wolfSSL/wolfssl#8384</a> that mainly improved visibility to tips on wolfSSL user settings customization, in particular:</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="/* wolfSSL user_settings.h must be included from settings.h
* Make all configurations changes in user_settings.h
* Do not edit wolfSSL `settings.h` or `config.h` files.
* Do not explicitly include user_settings.h in any source code.
* Each Arduino sketch that uses wolfSSL must have: #include "wolfssl.h"
* C/C++ source files can use: #include <wolfssl/wolfcrypt/settings.h>
* The wolfSSL "settings.h" must be included in each source file using wolfSSL.
* The wolfSSL "settings.h" must be listed before any other wolfSSL include.
*/"><pre class="notranslate"><code>/* wolfSSL user_settings.h must be included from settings.h
* Make all configurations changes in user_settings.h
* Do not edit wolfSSL `settings.h` or `config.h` files.
* Do not explicitly include user_settings.h in any source code.
* Each Arduino sketch that uses wolfSSL must have: #include "wolfssl.h"
* C/C++ source files can use: #include <wolfssl/wolfcrypt/settings.h>
* The wolfSSL "settings.h" must be included in each source file using wolfSSL.
* The wolfSSL "settings.h" must be listed before any other wolfSSL include.
*/
</code></pre></div>
<h1>To download the release bundle of wolfSSL visit the download page at <a href="http://www.wolfssl.com/download/" rel="nofollow">www.wolfssl.com/download/</a></h1>
<p>NOTE:</p>
<ul>
<li>--enable-heapmath is deprecated.</li>
<li>In this release, the default cipher suite preference is updated to prioritize<br>
TLS_AES_256_GCM_SHA384 over TLS_AES_128_GCM_SHA256 when enabled.</li>
<li>This release adds a sanity check for including wolfssl/options.h or<br>
user_settings.h.</li>
</ul>
<p>PR stands for Pull Request, and PR references a GitHub pull request<br>
number where the code change was added.</p>
<h2>Vulnerabilities</h2>
<ul>
<li>[Med] An OCSP (non stapling) issue was introduced in wolfSSL version 5.7.4<br>
when performing OCSP requests for intermediate certificates in a certificate<br>
chain. This affects only TLS 1.3 connections on the server side. It would not<br>
impact other TLS protocol versions or connections that are not using the<br>
traditional OCSP implementation. (Fix in pull request 8115)</li>
</ul>
<h2>New Feature Additions</h2>
<ul>
<li>Add support for RP2350 and improve RP2040 support, both with RNG optimizations<br>
(PR 8153)</li>
<li>Add support for STM32MP135F, including STM32CubeIDE support and HAL support<br>
for SHA2/SHA3/AES/RNG/ECC optimizations. (PR 8223, 8231, 8241)</li>
<li>Implement Renesas TSIP RSA Public Enc/Private support (PR 8122)</li>
<li>Add support for Fedora/RedHat system-wide crypto-policies (PR 8205)</li>
<li>Curve25519 generic keyparsing API added with wc_Curve25519KeyToDer and<br>
wc_Curve25519KeyDecode (PR 8129)</li>
<li>CRL improvements and update callback, added the functions<br>
wolfSSL_CertManagerGetCRLInfo and wolfSSL_CertManagerSetCRLUpdate_Cb (PR 8006)</li>
<li>For DTLS, add server-side stateless and CID quality-of-life API. (PR 8224)</li>
</ul>
<h2>Enhancements and Optimizations</h2>
<ul>
<li>Add a CMake dependency check for pthreads when required. (PR 8162)</li>
<li>Update OS_Seed declarations for legacy compilers and FIPS modules (boundary<br>
not affected). (PR 8170)</li>
<li>Enable WOLFSSL_ALWAYS_KEEP_SNI by default when using --enable-jni. (PR 8283)</li>
<li>Change the default cipher suite preference, prioritizing<br>
TLS_AES_256_GCM_SHA384 over TLS_AES_128_GCM_SHA256. (PR 7771)</li>
<li>Add SRTP-KDF (FIPS module v6.0.0) to checkout script for release bundling<br>
(PR 8215)</li>
<li>Make library build when no hardware crypto available for Aarch64 (PR 8293)</li>
<li>Update assembly code to avoid <code>uint*_t</code> types for better compatibility with<br>
older C standards. (PR 8133)</li>
<li>Add initial documentation for writing ASN template code to decode BER/DER.<br>
(PR 8120)</li>
<li>Perform full reduction in sc_muladd for EdDSA with Curve448 (PR 8276)</li>
<li>Allow SHA-3 hardware cryptography instructions to be explicitly not used in<br>
MacOS builds (PR 8282)</li>
<li>Make Kyber and ML-KEM available individually and together. (PR 8143)</li>
<li>Update configuration options to include Kyber/ML-KEM and fix defines used in<br>
wolfSSL_get_curve_name. (PR 8183)</li>
<li>Make GetShortInt available with WOLFSSL_ASN_EXTRA (PR 8149)</li>
<li>Improved test coverage and minor improvements of X509 (PR 8176)</li>
<li>Add sanity checks for configuration methods, ensuring the inclusion of<br>
wolfssl/options.h or user_settings.h. (PR 8262)</li>
<li>Enable support for building without TLS (NO_TLS). Provides reduced code size<br>
option for non-TLS users who want features like the certificate manager or<br>
compatibility layer. (PR 8273)</li>
<li>Exposed get_verify functions with OPENSSL_EXTRA. (PR 8258)</li>
<li>ML-DSA/Dilithium: obtain security level from DER when decoding (PR 8177)</li>
<li>Implementation for using PKCS11 to retrieve certificate for SSL CTX (PR 8267)</li>
<li>Add support for the RFC822 Mailbox attribute (PR 8280)</li>
<li>Initialize variables and adjust types resolve warnings with Visual Studio in<br>
Windows builds. (PR 8181)</li>
<li>Refactors and expansion of opensslcoexist build (PR 8132, 8216, 8230)</li>
<li>Add DTLS 1.3 interoperability, libspdm and DTLS CID interoperability tests<br>
(PR 8261, 8255, 8245)</li>
<li>Remove trailing error exit code in wolfSSL install setup script (PR 8189)</li>
<li>Update Arduino files for wolfssl 5.7.4 (PR 8219)</li>
<li>Improve Espressif SHA HW/SW mutex messages (PR 8225)</li>
<li>Apply post-5.7.4 release updates for Espressif Managed Component examples<br>
(PR 8251)</li>
<li>Expansion of c89 conformance (PR 8164)</li>
<li>Added configure option for additional sanity checks with --enable-faultharden<br>
(PR 8289)</li>
<li>Aarch64 ASM additions to check CPU features before hardware crypto instruction<br>
use (PR 8314)</li>
</ul>
<h2>Fixes</h2>
<ul>
<li>Fix a memory issue when using the compatibility layer with<br>
WOLFSSL_GENERAL_NAME and handling registered ID types. (PR 8155)</li>
<li>Fix a build issue with signature fault hardening when using public key<br>
callbacks (HAVE_PK_CALLBACKS). (PR 8287)</li>
<li>Fix for handling heap hint pointer properly when managing multiple WOLFSSL_CTX<br>
objects and free’ing one of them (PR 8180)</li>
<li>Fix potential memory leak in error case with Aria. (PR 8268)</li>
<li>Fix Set_Verify flag behaviour on Ada wrapper. (PR 8256)</li>
<li>Fix a compilation error with the NO_WOLFSSL_DIR flag. (PR 8294)</li>
<li>Resolve a corner case for Poly1305 assembly code on Aarch64. (PR 8275)</li>
<li>Fix incorrect version setting in CSRs. (PR 8136)</li>
<li>Correct debugging output for cryptodev. (PR 8202)</li>
<li>Fix for benchmark application use with /dev/crypto GMAC auth error due to size<br>
of AAD (PR 8210)</li>
<li>Add missing checks for the initialization of sp_int/mp_int with DSA to free<br>
memory properly in error cases. (PR 8209)</li>
<li>Fix return value of wolfSSL_CTX_set_tlsext_use_srtp (8252)</li>
<li>Check Root CA by Renesas TSIP before adding it to ca-table (PR 8101)</li>
<li>Prevent adding a certificate to the CA cache for Renesas builds if it does not<br>
set CA:TRUE in basic constraints. (PR 8060)</li>
<li>Fix attribute certificate holder entityName parsing. (PR 8166)</li>
<li>Resolve build issues for configurations without any wolfSSL/openssl<br>
compatibility layer headers. (PR 8182)</li>
<li>Fix for building SP RSA small and RSA public only (PR 8235)</li>
<li>Fix for Renesas RX TSIP RSA Sign/Verify with wolfCrypt only (PR 8206)</li>
<li>Fix to ensure all files have settings.h included (like wc_lms.c) and guards<br>
for building all <code>*.c</code> files (PR 8257 and PR 8140)</li>
<li>Fix x86 target build issues in Visual Studio for non-Windows operating<br>
systems. (PR 8098)</li>
<li>Fix wolfSSL_X509_STORE_get0_objects to handle no CA (PR 8226)</li>
<li>Properly handle reference counting when adding to the X509 store. (PR 8233)</li>
<li>Fix for various typos and improper size used with FreeRTOS_bind in the Renesas<br>
example. Thanks to Hongbo for the report on example issues. (PR 7537)</li>
<li>Fix for potential heap use after free with wolfSSL_PEM_read_bio_PrivateKey.<br>
Thanks to Peter for the issue reported. (PR 8139)</li>
</ul>gojimmypitag:github.com,2008:Repository/742109102/5.7.42024-11-25T19:24:27Zv5.7.4<p>See <a href="https://github.com/wolfSSL/wolfssl/releases/tag/v5.7.4-stable">wolfSSL Release 5.7.4 (October 24, 2024)</a></p>
<p>After the merge of <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2686593201" data-permission-text="Title is private" data-url="https://github.com/wolfSSL/Arduino-wolfSSL/issues/10" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/Arduino-wolfSSL/pull/10/hovercard" href="https://github.com/wolfSSL/Arduino-wolfSSL/pull/10">#10</a> (that was essentially a "restructured copy" of <a href="https://github.com/wolfSSL/wolfssl/releases/tag/v5.7.4-stable">wolfSSL 5.7.4</a> via the <a href="https://github.com/wolfSSL/wolfssl/blob/master/IDE/ARDUINO/wolfssl-arduino.sh">IDE/ARDUINO/wolfssl-arduino.sh</a> script), creating this release should propagate to the Arduino Registry as noted in the <a href="https://github.com/arduino/library-registry/blob/main/FAQ.md#submission-requirements">FAQ Submission Requirements</a>:</p>
<p><a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/13059545/354852362-7643996a-fb83-4d45-8d3b-da3b783bd7fe.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzM3MTA2MDksIm5iZiI6MTc3MzcxMDMwOSwicGF0aCI6Ii8xMzA1OTU0NS8zNTQ4NTIzNjItNzY0Mzk5NmEtZmI4My00ZDQ1LThkM2ItZGEzYjc4M2JkN2ZlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzE3VDAxMTgyOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRiMWUxMDRmZTU2N2ZjNzQ5YzM5YWI2ZjgwNDMxOTdlOWZjOTNlMWNhM2IwNTFlMTdkNmZiMTQwZmI5N2ZmYjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.XO9NYwcB3CPmpcGJZR8bX2N8PZJpf-PThPGmCytFE-k"><img src="https://private-user-images.githubusercontent.com/13059545/354852362-7643996a-fb83-4d45-8d3b-da3b783bd7fe.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzM3MTA2MDksIm5iZiI6MTc3MzcxMDMwOSwicGF0aCI6Ii8xMzA1OTU0NS8zNTQ4NTIzNjItNzY0Mzk5NmEtZmI4My00ZDQ1LThkM2ItZGEzYjc4M2JkN2ZlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzE3VDAxMTgyOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRiMWUxMDRmZTU2N2ZjNzQ5YzM5YWI2ZjgwNDMxOTdlOWZjOTNlMWNhM2IwNTFlMTdkNmZiMTQwZmI5N2ZmYjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.XO9NYwcB3CPmpcGJZR8bX2N8PZJpf-PThPGmCytFE-k" alt="image" content-type-secured-asset="image/png" style="max-width: 100%;"></a></p>
<p>There's sometimes been a publishing delay observed as noted in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2421053468" data-permission-text="Title is private" data-url="https://github.com/wolfSSL/Arduino-wolfSSL/issues/8" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/Arduino-wolfSSL/pull/8/hovercard" href="https://github.com/wolfSSL/Arduino-wolfSSL/pull/8">#8</a>.</p>gojimmypitag:github.com,2008:Repository/742109102/5.7.22024-08-04T00:58:20Zv5.7.2<p>See <a href="https://github.com/wolfSSL/wolfssl/releases/tag/v5.7.2-stable">wolfSSL Release 5.7.2 (July 8, 2024)</a></p>
<p>After the merge of <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2421053468" data-permission-text="Title is private" data-url="https://github.com/wolfSSL/Arduino-wolfSSL/issues/8" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/Arduino-wolfSSL/pull/8/hovercard" href="https://github.com/wolfSSL/Arduino-wolfSSL/pull/8">#8</a> (that was essentially a "restructured copy" of <a href="https://github.com/wolfSSL/wolfssl/releases/tag/v5.7.2-stable">wolfSSL 5.7.2</a>), creating this release should propagate to the Arduino Registry as noted in the <a href="https://github.com/arduino/library-registry/blob/main/FAQ.md#submission-requirements">FAQ Submission Requirements</a>:</p>
<p><a target="_blank" rel="noopener noreferrer" href="https://private-user-images.githubusercontent.com/13059545/354852362-7643996a-fb83-4d45-8d3b-da3b783bd7fe.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzM3MTA2MDksIm5iZiI6MTc3MzcxMDMwOSwicGF0aCI6Ii8xMzA1OTU0NS8zNTQ4NTIzNjItNzY0Mzk5NmEtZmI4My00ZDQ1LThkM2ItZGEzYjc4M2JkN2ZlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzE3VDAxMTgyOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRiMWUxMDRmZTU2N2ZjNzQ5YzM5YWI2ZjgwNDMxOTdlOWZjOTNlMWNhM2IwNTFlMTdkNmZiMTQwZmI5N2ZmYjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.XO9NYwcB3CPmpcGJZR8bX2N8PZJpf-PThPGmCytFE-k"><img src="https://private-user-images.githubusercontent.com/13059545/354852362-7643996a-fb83-4d45-8d3b-da3b783bd7fe.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzM3MTA2MDksIm5iZiI6MTc3MzcxMDMwOSwicGF0aCI6Ii8xMzA1OTU0NS8zNTQ4NTIzNjItNzY0Mzk5NmEtZmI4My00ZDQ1LThkM2ItZGEzYjc4M2JkN2ZlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjAzMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwMzE3VDAxMTgyOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRiMWUxMDRmZTU2N2ZjNzQ5YzM5YWI2ZjgwNDMxOTdlOWZjOTNlMWNhM2IwNTFlMTdkNmZiMTQwZmI5N2ZmYjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.XO9NYwcB3CPmpcGJZR8bX2N8PZJpf-PThPGmCytFE-k" alt="image" content-type-secured-asset="image/png" style="max-width: 100%;"></a></p>gojimmypitag:github.com,2008:Repository/742109102/5.7.02024-04-01T16:31:50ZwolfSSL for Arduino Release 5.7.0 (Mar 20, 2024)<p>This is the Arduino formatted library of <a href="https://github.com/wolfSSL/wolfssl/releases/tag/v5.7.0-stable">wolfSSL 5.7.0</a></p>
<h2>What's Changed</h2>
<ul>
<li>wolfSSL v5.7.0 for Arduino in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2200725735" data-permission-text="Title is private" data-url="https://github.com/wolfSSL/Arduino-wolfSSL/issues/6" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/Arduino-wolfSSL/pull/6/hovercard" href="https://github.com/wolfSSL/Arduino-wolfSSL/pull/6">#6</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/wolfSSL/Arduino-wolfSSL/compare/5.6.6-Arduino.2...5.7.0"><tt>5.6.6-Arduino.2...5.7.0</tt></a></p>gojimmypitag:github.com,2008:Repository/742109102/5.6.6-Arduino.22024-03-08T22:49:10Z5.6.6-Arduino.2<p>This is the second interim release of wolfSSL 5.6.6 with Arduino updates.</p>
<h2>What's Changed</h2>
<ul>
<li>wolfSSL 5.6.6-Arduino.2 update by <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/gojimmypi/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/gojimmypi">@gojimmypi</a> in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2174752238" data-permission-text="Title is private" data-url="https://github.com/wolfSSL/Arduino-wolfSSL/issues/5" data-hovercard-type="pull_request" data-hovercard-url="/wolfSSL/Arduino-wolfSSL/pull/5/hovercard" href="https://github.com/wolfSSL/Arduino-wolfSSL/pull/5">#5</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a class="commit-link" href="https://github.com/wolfSSL/Arduino-wolfSSL/compare/5.6.6-Arduino.1...5.6.6-Arduino.2"><tt>5.6.6-Arduino.1...5.6.6-Arduino.2</tt></a></p>gojimmypitag:github.com,2008:Repository/742109102/5.6.6-Arduino.12024-02-15T22:58:42Z5.6.6-Arduino.1<p>This is the initial wolfSSL Arduino library, with library name in all lower case to match <code>wolfssl.h</code></p>gojimmypi