-
Version 1.0.21
This point release includes all the changes from 1.0.20-stable, which include a security fix for thecrypto_core_ed25519_is_valid_point()function, as well as two new sets of functions:- The new
crypto_ipcrypt_*functions implement mechanisms for securely encrypting and anonymizing IP addresses. - The
sodium_bin2ipandsodium_ip2binhelper functions have been added to complement thecrypto_ipcrypt_*functions and easily convert addresses between bytes and strings. - XOF: the
crypto_xof_shake*andcrypto_xof_turboshake*functions are standard extendable output functions. From input of any length, they can derive output of any length with the same properties as hash functions. These primitives are required by many post-quantum mechanisms, but can also be used for a wide range of applications, including key derivation, session encryption and more.
- The new
-
Version 1.0.20-stable
- XCFramework: cross-compilation is now forced on Apple Silicon to avoid Rosetta-related build issues
- The Fil-C compiler is supported out of the box
- The CompCert compiler is supported out of the box
- MSVC 2026 (Visual Studio 2026) is now supported
- Zig builds now support FreeBSD targets
- Performance of AES256-GCM and AEGIS on ARM has been improved with some compilers
- Android binaries have been added to the NuGet package
- Windows ARM binaries have been added to the NuGet package
- The Android build script has been improved. The base SDK is now 27c, and the default platform is 21, supporting 16 KB page sizes.
- The library can now be compiled with Zig 0.15 and Zig 0.16
- Zig builds now generate position-independent static libraries by default on targets that support PIC
- arm64e builds have been added to the XCFramework packages
- XCFramework packages are now full builds instead of minimal builds
- MSVC builds have been enabled for ARM64
- iOS 32-bit (armv7/armv7s) support has been removed from the XCFramework build script
- Security: optblockers have been introduced in critical code paths to prevent compilers from introducing unwanted side channels via conditional jumps. This was observed on RISC-V targets with specific compilers and options.
- Security:
crypto_core_ed25519_is_valid_point()now properly rejects small-order points that are not in the main subgroup ((nonnull))attributes have been relaxed on somecrypto_stream*functions to allow NULL output buffers when the output length is zero- A cross-compilation issue with old clang versions has been fixed
- JavaScript: support for Cloudflare Workers has been added
- JavaScript: WASM_BIGINT is forcibly disabled to retain compatibility with older runtimes
- A compilation issue with old toolchains on Solaris has been fixed
crypto_aead_aes256gcm_is_availableis exported to JavaScript- libsodium is now compatible with Emscripten 4.x
- Security: memory fences have been added after MAC verification in AEAD to prevent speculative access to plaintext before authentication is complete
- Assembly files now include .gnu.property notes for proper IBT and Shadow Stack support when building with CET instrumentation.