|
| 1 | +# wolfSSL Release 5.7.4 (Oct 24, 2024) |
| 2 | + |
| 3 | +Release 5.7.4 has been developed according to wolfSSL's development and QA |
| 4 | +process (see link below) and successfully passed the quality criteria. |
| 5 | +https://www.wolfssl.com/about/wolfssl-software-development-process-quality-assurance |
| 6 | + |
| 7 | +NOTE: * --enable-heapmath is being deprecated and will be removed by end of 2024 |
| 8 | + |
| 9 | +PR stands for Pull Request, and PR <NUMBER> references a GitHub pull request |
| 10 | + number where the code change was added. |
| 11 | + |
| 12 | + |
| 13 | +## Vulnerabilities |
| 14 | +* [Low] When the OpenSSL compatibility layer is enabled, certificate |
| 15 | + verification behaved differently in wolfSSL than OpenSSL, in the |
| 16 | + X509_STORE_add_cert() and X509_STORE_load_locations() implementations. |
| 17 | + Previously, in cases where an application explicitly loaded an intermediate |
| 18 | + certificate, wolfSSL was verifying only up to that intermediate certificate, |
| 19 | + rather than verifying up to the root CA. This only affects use cases where the |
| 20 | + API is called directly, and does not affect TLS connections. Users that call |
| 21 | + the API X509_STORE_add_cert() or X509_STORE_load_locations() directly in their |
| 22 | + applications are recommended to update the version of wolfSSL used or to have |
| 23 | + additional sanity checks on certificates loaded into the X509_STORE when |
| 24 | + verifying a certificate. (https://github.com/wolfSSL/wolfssl/pull/8087) |
| 25 | + |
| 26 | + |
| 27 | +## PQC TLS Experimental Build Fix |
| 28 | +* When using TLS with post quantum algorithms enabled, the connection uses a |
| 29 | + smaller EC curve than agreed on. Users building with --enable-experimental and |
| 30 | + enabling PQC cipher suites with TLS connections are recommended to update the |
| 31 | + version of wolfSSL used. Thanks to Daniel Correa for the report. |
| 32 | + (https://github.com/wolfSSL/wolfssl/pull/8084) |
| 33 | + |
| 34 | + |
| 35 | +## New Feature Additions |
| 36 | +* RISC-V 64 new assembly optimizations added for SHA-256, SHA-512, ChaCha20, |
| 37 | + Poly1305, and SHA-3 (PR 7758,7833,7818,7873,7916) |
| 38 | +* Implement support for Connection ID (CID) with DTLS 1.2 (PR 7995) |
| 39 | +* Add support for (DevkitPro)libnds (PR 7990) |
| 40 | +* Add port for Mosquitto OSP (Open Source Project) (PR 6460) |
| 41 | +* Add port for init sssd (PR 7781) |
| 42 | +* Add port for eXosip2 (PR 7648) |
| 43 | +* Add support for STM32G4 (PR 7997) |
| 44 | +* Add support for MAX32665 and MAX32666 TPU HW and ARM ASM Crypto Callback |
| 45 | + Support (PR 7777) |
| 46 | +* Add support for building wolfSSL to be used in libspdm (PR 7869) |
| 47 | +* Add port for use with Nucleus Plus 2.3 (PR 7732) |
| 48 | +* Initial support for RFC5755 x509 attribute certificates (acerts). Enabled with |
| 49 | + --enable-acert (PR 7926) |
| 50 | +* PKCS#11 RSA Padding offload allows tokens to perform CKM_RSA_PKCS |
| 51 | + (sign/encrypt), CKM_RSA_PKCS_PSS (sign), and CKM_RSA_PKCS_OAEP (encrypt). |
| 52 | + (PR 7750) |
| 53 | +* Added “new” and “delete” style functions for heap/pool allocation and freeing |
| 54 | + of low level crypto structures (PR 3166 and 8089) |
| 55 | + |
| 56 | + |
| 57 | +## Enhancements and Optimizations |
| 58 | +* Increase default max alt. names from 128 to 1024 (PR 7762) |
| 59 | +* Added new constant time DH agree function wc_DhAgree_ct (PR 7802) |
| 60 | +* Expanded compatibility layer with the API EVP_PKEY_is_a (PR 7804) |
| 61 | +* Add option to disable cryptocb test software test using |
| 62 | + --disable-cryptocb-sw-test (PR 7862) |
| 63 | +* Add a call to certificate verify callback before checking certificate dates |
| 64 | + (PR 7895) |
| 65 | +* Expanded algorithms supported with the wolfCrypt CSharp wrapper. Adding |
| 66 | + support for RNG, ECC(ECIES and ECDHE), RSA, ED25519/Curve25519, AES-GCM, and |
| 67 | + Hashing (PR 3166) |
| 68 | +* Expand MMCAU support for use with DES ECB (PR 7960) |
| 69 | +* Update AES SIV to handle multiple associated data inputs (PR 7911) |
| 70 | +* Remove HAVE_NULL_CIPHER from --enable-openssh (PR 7811) |
| 71 | +* Removed duplicate if(NULL) checks when calling XFREE (macro does) (PR 7839) |
| 72 | +* Set RSA_MIN_SIZE default to 2048 bits (PR 7923) |
| 73 | +* Added support for wolfSSL to be used as the default TLS in the zephyr kernel |
| 74 | + (PR 7731) |
| 75 | +* Add enable provider build using --enable-wolfprovider with autotools (PR 7550) |
| 76 | +* Renesas RX TSIP ECDSA support (PR 7685) |
| 77 | +* Support DTLS1.3 downgrade when the server supports CID (PR 7841) |
| 78 | +* Server-side checks OCSP even if it uses v2 multi (PR 7828) |
| 79 | +* Add handling of absent hash params in PKCS7 bundle parsing and creation |
| 80 | + (PR 7845) |
| 81 | +* Add the use of w64wrapper for Poly1305, enabling Poly1305 to be used in |
| 82 | + environments that do not have a word64 type (PR 7759) |
| 83 | +* Update to the maxq10xx support (PR 7824) |
| 84 | +* Add support for parsing over optional PKCS8 attributes (PR 7944) |
| 85 | +* Add support for either side method with DTLS 1.3 (PR 8012) |
| 86 | +* Added PKCS7 PEM support for parsing PEM data with BEGIN/END PKCS7 (PR 7704) |
| 87 | +* Add CMake support for WOLFSSL_CUSTOM_CURVES (PR 7962) |
| 88 | +* Add left-most wildcard matching support to X509_check_host() (PR 7966) |
| 89 | +* Add option to set custom SKID with PKCS7 bundle creation (PR 7954) |
| 90 | +* Building wolfSSL as a library with Ada and corrections to Alire manifest |
| 91 | + (PR 7303,7940) |
| 92 | +* Renesas RX72N support updated (PR 7849) |
| 93 | +* New option WOLFSSL_COPY_KEY added to always copy the key to the SSL object |
| 94 | + (PR 8005) |
| 95 | +* Add the new option WOLFSSL_COPY_CERT to always copy the cert buffer for each |
| 96 | + SSL object (PR 7867) |
| 97 | +* Add an option to use AES-CBC with HMAC for default session ticket enc/dec. |
| 98 | + Defaults to AES-128-CBC with HMAC-SHA256 (PR 7703) |
| 99 | +* Memory usage improvements in wc_PRF, sha256 (for small code when many |
| 100 | + registers are available) and sp_int objects (PR 7901) |
| 101 | +* Change in the configure script to work around ">>" with no command. In older |
| 102 | + /bin/sh it can be ambiguous, as used in OS’s such as FreeBSD 9.2 (PR 7876) |
| 103 | +* Don't attempt to include system headers when not required (PR 7813) |
| 104 | +* Certificates: DER encoding of ECC signature algorithm parameter is now |
| 105 | + allowed to be NULL with a define (PR 7903) |
| 106 | +* SP x86_64 asm: check for AVX2 support for VMs (PR 7979) |
| 107 | +* Update rx64n support on gr-rose (PR 7889) |
| 108 | +* Update FSP version to v5.4.0 for RA6M4 (PR 7994) |
| 109 | +* Update TSIP driver version to v1.21 for RX65N RSK (PR 7993) |
| 110 | +* Add a new crypto callback for RSA with padding (PR 7907) |
| 111 | +* Replaced the use of pqm4 with wolfSSL implementations of Kyber/MLDSA |
| 112 | + (PR 7924) |
| 113 | +* Modernized memory fence support for C11 and clang (PR 7938) |
| 114 | +* Add a CRL error override callback (PR 7986) |
| 115 | +* Extend the X509 unknown extension callback for use with a user context |
| 116 | + (PR 7730) |
| 117 | +* Additional debug error tracing added with TLS (PR 7917) |
| 118 | +* Added runtime support for library call stack traces with |
| 119 | + –enable-debug-trace-errcodes=backtrace, using libbacktrace (PR 7846) |
| 120 | +* Expanded C89 conformance (PR 8077) |
| 121 | +* Expanded support for WOLFSSL_NO_MALLOC (PR 8065) |
| 122 | +* Added support for cross-compilation of Linux kernel module (PR 7746) |
| 123 | +* Updated Linux kernel module with support for kernel 6.11 and 6.12 (PR 7826) |
| 124 | +* Introduce WOLFSSL_ASN_ALLOW_0_SERIAL to allow parsing of certificates with a |
| 125 | + serial number of 0 (PR 7893) |
| 126 | +* Add conditional repository_owner to all wolfSSL GitHub workflows (PR 7871) |
| 127 | + |
| 128 | +### Espressif / Arduino Updates |
| 129 | +* Update wolfcrypt settings.h for Espressif ESP-IDF, template update (PR 7953) |
| 130 | +* Update Espressif sha, util, mem, time helpers (PR 7955) |
| 131 | +* Espressif _thread_local_start and _thread_local_end fix (PR 8030) |
| 132 | +* Improve benchmark for Espressif devices (PR 8037) |
| 133 | +* Introduce Espressif common CONFIG_WOLFSSL_EXAMPLE_NAME, Kconfig (PR 7866) |
| 134 | +* Add wolfSSL esp-tls and Certificate Bundle Support for Espressif ESP-IDF |
| 135 | + (PR 7936) |
| 136 | +* Update wolfssl Release for Arduino (PR 7775) |
| 137 | + |
| 138 | +### Post Quantum Crypto Updates |
| 139 | +* Dilithium: support fixed size arrays in dilithium_key (PR 7727) |
| 140 | +* Dilithium: add option to use precalc with small sign (PR 7744) |
| 141 | +* Allow Kyber to be built with FIPS (PR 7788) |
| 142 | +* Allow Kyber asm to be used in the Linux kernel module (PR 7872) |
| 143 | +* Dilithium, Kyber: Update to final specification (PR 7877) |
| 144 | +* Dilithium: Support FIPS 204 Draft and Final Draft (PR 7909,8016) |
| 145 | + |
| 146 | +### ARM Assembly Optimizations |
| 147 | +* ARM32 assembly optimizations added for ChaCha20 and Poly1305 (PR 8020) |
| 148 | +* Poly1305 assembly optimizations improvements for Aarch64 (PR 7859) |
| 149 | +* Poly1305 assembly optimizations added for Thumb-2 (PR 7939) |
| 150 | +* Adding ARM ASM build option to STM32CubePack (PR 7747) |
| 151 | +* Add ARM64 to Visual Studio Project (PR 8010) |
| 152 | +* Kyber assembly optimizations for ARM32 and Aarch64 (PR 8040,7998) |
| 153 | +* Kyber assembly optimizations for ARMv7E-M/ARMv7-M (PR 7706) |
| 154 | + |
| 155 | + |
| 156 | +## Fixes |
| 157 | +* ECC key load: fixes for certificates with parameters that are not default for |
| 158 | + size (PR 7751) |
| 159 | +* Fixes for building x86 in Visual Studio for non-windows OS (PR 7884) |
| 160 | +* Fix for TLS v1.2 secret callback, incorrectly detecting bad master secret |
| 161 | + (PR 7812) |
| 162 | +* Fixes for PowerPC assembly use with Darwin and SP math all (PR 7931) |
| 163 | +* Fix for detecting older versions of Mac OS when trying to link with |
| 164 | + libdispatch (PR 7932) |
| 165 | +* Fix for DTLS1.3 downgrade to DTLS1.2 when the server sends multiple handshake |
| 166 | + packets combined into a single transmission. (PR 7840) |
| 167 | +* Fix for OCSP to save the request if it was stored in ssl->ctx->certOcspRequest |
| 168 | + (PR 7779) |
| 169 | +* Fix to OCSP for searching for CA by key hash instead of ext. key id (PR 7934) |
| 170 | +* Fix for staticmemory and singlethreaded build (PR 7737) |
| 171 | +* Fix to not allow Shake128/256 with Xilinx AFALG (PR 7708) |
| 172 | +* Fix to support PKCS11 without RSA key generation (PR 7738) |
| 173 | +* Fix not calling the signing callback when using PK callbacks + TLS 1.3 |
| 174 | + (PR 7761) |
| 175 | +* Cortex-M/Thumb2 ASM fix label for IAR compiler (PR 7753) |
| 176 | +* Fix with PKCS11 to iterate correctly over slotId (PR 7736) |
| 177 | +* Stop stripping out the sequence header on the AltSigAlg extension (PR 7710) |
| 178 | +* Fix ParseCRL_AuthKeyIdExt with ASN template to set extAuthKeyIdSet value |
| 179 | + (PR 7742) |
| 180 | +* Use max key length for PSK encrypt buffer size (PR 7707) |
| 181 | +* DTLS 1.3 fix for size check to include headers and CID fixes (PR 7912,7951) |
| 182 | +* Fix STM32 Hash FIFO and add support for STM32U5A9xx (PR 7787) |
| 183 | +* Fix CMake build error for curl builds (PR 8021) |
| 184 | +* SP Maths: PowerPC ASM fix to use XOR instead of LI (PR 8038) |
| 185 | +* SSL loading of keys/certs: testing and fixes (PR 7789) |
| 186 | +* Misc. fixes for Dilithium and Kyber (PR 7721,7765,7803,8027,7904) |
| 187 | +* Fixes for building wolfBoot sources for PQ LMS/XMSS (PR 7868) |
| 188 | +* Fixes for building with Kyber enabled using CMake and zephyr port (PR 7773) |
| 189 | +* Fix for edge cases with session resumption with TLS 1.2 (PR 8097) |
| 190 | +* Fix issue with ARM ASM with AES CFB/OFB not initializing the "left" member |
| 191 | + (PR 8099) |
| 192 | + |
| 193 | + |
1 | 194 | # wolfSSL Release 5.7.2 (July 08, 2024) |
2 | 195 |
|
3 | 196 | Release 5.7.2 has been developed according to wolfSSL's development and QA |
|
0 commit comments