|
| 1 | +# wolfSSL Release 5.8.0 (Apr 24, 2025) |
| 2 | + |
| 3 | +Release 5.8.0 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 deprecated |
| 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 | +## New Feature Additions |
| 14 | +* Algorithm registration in the Linux kernel module for all supported FIPS AES, |
| 15 | + SHA, HMAC, ECDSA, ECDH, and RSA modes, key sizes, and digest sizes. |
| 16 | +* Implemented various fixes to support building for Open Watcom including OS/2 |
| 17 | + support and Open Watcom 1.9 compatibility (PR 8505, 8484) |
| 18 | +* Added support for STM32H7S (tested on NUCLEO-H7S3L8) (PR 8488) |
| 19 | +* Added support for STM32WBA (PR 8550) |
| 20 | +* Added Extended Master Secret Generation Callback to the --enable-pkcallbacks |
| 21 | + build (PR 8303) |
| 22 | +* Implement AES-CTS (configure flag --enable-aescts) in wolfCrypt (PR 8594) |
| 23 | +* Added support for libimobiledevice commit 860ffb (PR 8373) |
| 24 | +* Initial ASCON hash256 and AEAD128 support based on NIST SP 800-232 IPD |
| 25 | + (PR 8307) |
| 26 | +* Added blinding option when using a Curve25519 private key by defining the |
| 27 | + macro WOLFSSL_CURVE25519_BLINDING (PR 8392) |
| 28 | + |
| 29 | + |
| 30 | +## Linux Kernel Module |
| 31 | +* Production-ready LKCAPI registration for cbc(aes), cfb(aes), gcm(aes), |
| 32 | + rfc4106 (gcm(aes)), ctr(aes), ofb(aes), and ecb(aes), ECDSA with P192, P256, |
| 33 | + P384, and P521 curves, ECDH with P192, P256, and P384 curves, and RSA with |
| 34 | + bare and PKCS1 padding |
| 35 | +* Various fixes for LKCAPI wrapper for AES-CBC and AES-CFB (PR 8534, 8552) |
| 36 | +* Adds support for the legacy one-shot AES-GCM back end (PR 8614, 8567) for |
| 37 | + compatibility with FIPS 140-3 Cert #4718. |
| 38 | +* On kernel >=6.8, for CONFIG_FORTIFY_SOURCE, use 5-arg fortify_panic() override |
| 39 | + macro (PR 8654) |
| 40 | +* Update calls to scatterwalk_map() and scatterwalk_unmap() for linux commit |
| 41 | + 7450ebd29c (merged for Linux 6.15) (PR 8667) |
| 42 | +* Inhibit LINUXKM_LKCAPI_REGISTER_ECDH on kernel <5.13 (PR 8673) |
| 43 | +* Fix for uninitialized build error with fedora (PR 8569) |
| 44 | +* Register ecdsa, ecdh, and rsa for use with linux kernel crypto (PR 8637, 8663, |
| 45 | + 8646) |
| 46 | +* Added force zero shared secret buffer, and clear of old key with ecdh |
| 47 | + (PR 8685) |
| 48 | +* Update fips-check.sh script to pickup XTS streaming support on aarch64 and |
| 49 | + disable XTS-384 as an allowed use in FIPS mode (PR 8509, 8546) |
| 50 | + |
| 51 | + |
| 52 | +## Enhancements and Optimizations |
| 53 | + |
| 54 | +### Security & Cryptography |
| 55 | +* Add constant-time implementation improvements for encoding functions. We thank |
| 56 | + Zhiyuan and Gilles for sharing a new constant-time analysis tool (CT-LLVM) and |
| 57 | + reporting several non-constant-time implementations. (PR 8396, 8617) |
| 58 | +* Additional support for PKCS7 verify and decode with indefinite lengths |
| 59 | + (PR 8520, 834, 8645) |
| 60 | +* Add more PQC hybrid key exchange algorithms such as support for combinations |
| 61 | + with X25519 and X448 enabling compatibility with the PQC key exchange support |
| 62 | + in Chromium browsers and Mozilla Firefox (PR 7821) |
| 63 | +* Add short-circuit comparisons to DH key validation for RFC 7919 parameters |
| 64 | + (PR 8335) |
| 65 | +* Improve FIPS compatibility with various build configurations for more resource |
| 66 | + constrained builds (PR 8370) |
| 67 | +* Added option to disable ECC public key order checking (PR 8581) |
| 68 | +* Allow critical alt and basic constraints extensions (PR 8542) |
| 69 | +* New codepoint for MLDSA to help with interoperability (PR 8393) |
| 70 | +* Add support for parsing trusted PEM certs having the header |
| 71 | + “BEGIN_TRUSTED_CERT” (PR 8400) |
| 72 | +* Add support for parsing only of DoD certificate policy and Comodo Ltd PKI OIDs |
| 73 | + (PR 8599, 8686) |
| 74 | +* Update ssl code in `src/*.c` to be consistent with wolfcrypt/src/asn.c |
| 75 | + handling of ML_DSA vs Dilithium and add dual alg. test (PR 8360, 8425) |
| 76 | + |
| 77 | +### Build System, Configuration, CI & Protocols |
| 78 | +* Internal refactor for include of config.h and when building with |
| 79 | + BUILDING_WOLFSSL macro. This refactor will give a warning of “deprecated |
| 80 | + function” when trying to improperly use an internal API of wolfSSL in an |
| 81 | + external application. (PR 8640, 8647, 8660, 8662, 8664) |
| 82 | +* Add WOLFSSL_CLU option to CMakeLists.txt (PR 8548) |
| 83 | +* Add CMake and Zephyr support for XMSS and LMS (PR 8494) |
| 84 | +* Added GitHub CI for CMake builds (PR 8439) |
| 85 | +* Added necessary macros when building wolfTPM Zephyr with wolfSSL (PR 8382) |
| 86 | +* Add MSYS2 build continuous integration test (PR 8504) |
| 87 | +* Update DevKitPro doc to list calico dependency with build commands (PR 8607) |
| 88 | +* Conversion compiler warning fixes and additional continuous integration test |
| 89 | + added (PR 8538) |
| 90 | +* Enable DTLS 1.3 by default in --enable-jni builds (PR 8481) |
| 91 | +* Enabled TLS 1.3 middlebox compatibility by default for --enable-jni builds |
| 92 | + (PR 8526) |
| 93 | + |
| 94 | +### Performance Improvements |
| 95 | +* Performance improvements AES-GCM and HMAC (in/out hash copy) (PR 8429) |
| 96 | +* LMS fixes and improvements adding API to get Key ID from raw private key, |
| 97 | + change to identifiers to match standard, and fix for when |
| 98 | + WOLFSSL_LMS_MAX_LEVELS is 1 (PR 8390, 8684, 8613, 8623) |
| 99 | +* ML-KEM/Kyber improvements and fixes; no malloc builds, small memory usage, |
| 100 | + performance improvement, fix for big-endian (PR 8397, 8412, 8436, 8467, 8619, |
| 101 | + 8622, 8588) |
| 102 | +* Performance improvements for AES-GCM and when doing multiple HMAC operations |
| 103 | + (PR 8445) |
| 104 | + |
| 105 | +### Assembly and Platform-Specific Enhancements |
| 106 | +* Poly1305 arm assembly changes adding ARM32 NEON implementation and fix for |
| 107 | + Aarch64 use (PR 8344, 8561, 8671) |
| 108 | +* Aarch64 assembly enhancement to use more CPU features, fix for FreeBSD/OpenBSD |
| 109 | + (PR 8325, 8348) |
| 110 | +* Only perform ARM assembly CPUID checks if support was enabled at build time |
| 111 | + (PR 8566) |
| 112 | +* Optimizations for ARM32 assembly instructions on platforms less than ARMv7 |
| 113 | + (PR 8395) |
| 114 | +* Improve MSVC feature detection for static assert macros (PR 8440) |
| 115 | +* Improve Espressif make and CMake for ESP8266 and ESP32 series (PR 8402) |
| 116 | +* Espressif updates for Kconfig, ESP32P4 and adding a sample user_settings.h |
| 117 | + (PR 8422, PR 8641) |
| 118 | + |
| 119 | +### OpenSSL Compatibility Layer |
| 120 | +* Modification to the push/pop to/from in OpenSSL compatibility layer. This is |
| 121 | + a pretty major API change in the OpenSSL compatibility stack functions. |
| 122 | + Previously the API would push/pop from the beginning of the list but now they |
| 123 | + operate on the tail of the list. This matters when using the sk_value with |
| 124 | + index values. (PR 8616) |
| 125 | +* OpenSSL Compat Layer: OCSP response improvements (PR 8408, 8498) |
| 126 | +* Expand the OpenSSL compatibility layer to include an implementation of |
| 127 | + BN_CTX_get (PR 8388) |
| 128 | + |
| 129 | +### API Additions and Modifications |
| 130 | +* Refactor Hpke to allow multiple uses of a context instead of just one shot |
| 131 | + mode (PR 6805) |
| 132 | +* Add support for PSK client callback with Ada and use with Alire (thanks |
| 133 | + @mgrojo, PR 8332, 8606) |
| 134 | +* Change wolfSSL_CTX_GenerateEchConfig to generate multiple configs and add |
| 135 | + functions wolfSSL_CTX_SetEchConfigs and wolfSSL_CTX_SetEchConfigsBase64 to |
| 136 | + rotate the server's echConfigs (PR 8556) |
| 137 | +* Added the public API wc_PkcsPad to do PKCS padding (PR 8502) |
| 138 | +* Add NULL_CIPHER_TYPE support to wolfSSL_EVP_CipherUpdate (PR 8518) |
| 139 | +* Update Kyber APIs to ML-KEM APIs (PR 8536) |
| 140 | +* Add option to disallow automatic use of "default" devId using the macro |
| 141 | + WC_NO_DEFAULT_DEVID (PR 8555) |
| 142 | +* Detect unknown key format on ProcessBufferTryDecode() and handle RSA-PSSk |
| 143 | + format (PR 8630) |
| 144 | + |
| 145 | +### Porting and Language Support |
| 146 | +* Update Python port to support version 3.12.6 (PR 8345) |
| 147 | +* New additions for MAXQ with wolfPKCS11 (PR 8343) |
| 148 | +* Port to ntp 4.2.8p17 additions (PR 8324) |
| 149 | +* Add version 0.9.14 to tested libvncserver builds (PR 8337) |
| 150 | + |
| 151 | +### General Improvements and Cleanups |
| 152 | +* Cleanups for STM32 AES GCM (PR 8584) |
| 153 | +* Improvements to isascii() and the CMake key log option (PR 8596) |
| 154 | +* Arduino documentation updates, comments and spelling corrections (PR 8381, |
| 155 | + 8384, 8514) |
| 156 | +* Expanding builds with WOLFSSL_NO_REALLOC for use with --enable-opensslall and |
| 157 | + --enable-all builds (PR 8369, 8371) |
| 158 | + |
| 159 | + |
| 160 | +## Fixes |
| 161 | +* Fix a use after free caused by an early free on error in the X509 store |
| 162 | + (PR 8449) |
| 163 | +* Fix to account for existing PKCS8 header with |
| 164 | + wolfSSL_PEM_write_PKCS8PrivateKey (PR 8612) |
| 165 | +* Fixed failing CMake build issue when standard threads support is not found in |
| 166 | + the system (PR 8485) |
| 167 | +* Fix segmentation fault in SHA-512 implementation for AVX512 targets built with |
| 168 | + gcc -march=native -O2 (PR 8329) |
| 169 | +* Fix Windows socket API compatibility warning with mingw32 build (PR 8424) |
| 170 | +* Fix potential null pointer increments in cipher list parsing (PR 8420) |
| 171 | +* Fix for possible stack buffer overflow read with wolfSSL_SMIME_write_PKCS7. |
| 172 | + Thanks to the team at Code Intelligence for the report. (PR 8466) |
| 173 | +* Fix AES ECB implementation for Aarch64 ARM assembly (PR 8379) |
| 174 | +* Fixed building with VS2008 and .NET 3.5 (PR 8621) |
| 175 | +* Fixed possible error case memory leaks in CRL and EVP_Sign_Final (PR 8447) |
| 176 | +* Fixed SSL_set_mtu compatibility function return code (PR 8330) |
| 177 | +* Fixed Renesas RX TSIP (PR 8595) |
| 178 | +* Fixed ECC non-blocking tests (PR 8533) |
| 179 | +* Fixed CMake on MINGW and MSYS (PR 8377) |
| 180 | +* Fixed Watcom compiler and added new CI test (PR 8391) |
| 181 | +* Fixed STM32 PKA ECC 521-bit support (PR 8450) |
| 182 | +* Fixed STM32 PKA with P521 and shared secret (PR 8601) |
| 183 | +* Fixed crypto callback macro guards with `DEBUG_CRYPTOCB` (PR 8602) |
| 184 | +* Fix outlen return for RSA private decrypt with WOLF_CRYPTO_CB_RSA_PAD |
| 185 | + (PR 8575) |
| 186 | +* Additional sanity check on r and s lengths in DecodeECC_DSA_Sig_Bin (PR 8350) |
| 187 | +* Fix compat. layer ASN1_TIME_diff to accept NULL output params (PR 8407) |
| 188 | +* Fix CMake lean_tls build (PR 8460) |
| 189 | +* Fix for QUIC callback failure (PR 8475) |
| 190 | +* Fix missing alert types in AlertTypeToString for print out with debugging |
| 191 | + enabled (PR 8572) |
| 192 | +* Fixes for MSVS build issues with PQC configure (PR 8568) |
| 193 | +* Fix for SE050 port and minor improvements (PR 8431, 8437) |
| 194 | +* Fix for missing rewind function in zephyr and add missing files for compiling |
| 195 | + with assembly optimizations (PR 8531, 8541) |
| 196 | +* Fix for quic_record_append to return the correct code (PR 8340, 8358) |
| 197 | +* Fixes for Bind 9.18.28 port (PR 8331) |
| 198 | +* Fix to adhere more closely with RFC8446 Appendix D and set haveEMS when |
| 199 | + negotiating TLS 1.3 (PR 8487) |
| 200 | +* Fix to properly check for signature_algorithms from the client in a TLS 1.3 |
| 201 | + server (PR 8356) |
| 202 | +* Fix for when BIO data is less than seq buffer size. Thanks to the team at Code |
| 203 | + Intelligence for the report (PR 8426) |
| 204 | +* ARM32/Thumb2 fixes for WOLFSSL_NO_VAR_ASSIGN_REG and td4 variable declarations |
| 205 | + (PR 8590, 8635) |
| 206 | +* Fix for Intel AVX1/SSE2 assembly to not use vzeroupper instructions unless ymm |
| 207 | + or zmm registers are used (PR 8479) |
| 208 | +* Entropy MemUse fix for when block size less than update bits (PR 8675) |
| 209 | + |
| 210 | + |
1 | 211 | # wolfSSL Release 5.7.6 (Dec 31, 2024)
|
2 | 212 |
|
3 | 213 | Release 5.7.6 has been developed according to wolfSSL's development and QA
|
|
0 commit comments