libsodium 1.0.22 现已发布。此版本更新包含了 1.0.21-stable 版本的所有更改,此外还包括:
- 后量子密钥封装现已可用。ML-KEM768(the NIST-standardized lattice-based KEM)可通过
crypto_kem_mlkem768_*()相关函数调用。
- X-Wing 是一种混合型 KEM,它结合了 ML-KEM768 和 X25519,可同时抵御经典和量子攻击,可通过
crypto_kem_*()函数调用。X-Wing 是大多数应用场景的推荐 KEM。
- SHA-3 哈希函数现在以
crypto_hash_sha3256_*()和crypto_hash_sha3512_*()的形式提供,同时提供 one-shot 和 streaming API。
Version 1.0.21-stable
- 性能:针对 ARM 平台上的 Argon2 进行了 NEON 优化。
- 性能:SHA3 (Keccak1600) 现在在 ARM 平台上可用时会利用 ARM SHA3 指令。
- 性能:已添加 Argon2 的 WebAssembly SIMD 实现。
- Emscripten:LTO 现已禁用。在 Emscripten 4 中,LTO 生成的 WebAssembly 模块中的函数运行速度明显低于未启用 LTO 的情况。
- Emscripten:新增选项,允许使用 SIMD 支持进行编译。
- Emscripten:现已支持原生 ESM 模块生成。
- JavaScript sumo 构建现在允许使用高达 80 MiB 的内存,因此带有交互式设置的
crypto_pwhash不仅可以在 WebAssembly 中使用,还可以在纯 JavaScript 中使用。
- XOF 状态对齐要求已放宽。
crypto_core_keccak1600_state已添加。
- 导出缺失的
crypto_ipcrypt_nd_keygen()辅助函数。
crypto_auth_hmacsha256_init和crypto_auth_hmacsha512_init现支持接受 NULL key 指针(即密钥长度为零),以与其他_init函数保持一致。
- apple-xcframework:头文件现在位于 Clibsodium 子目录中,以防止 module.modulemap 与其他 xcframework 发生冲突。
- 修复了在 aarch64 和 gcc 4.x 上使用 GCC 进行编译的问题。
- 在 aarch64 架构上,即使不使用 clang,包括 MSVC,现在也启用了 aes256-gcm。
- 当工具集未定义 PlatformToolsetVersion 时,增加了与 Visual Studio 2026 的兼容性。
- Libsodium 可以直接作为 Zig 项目的依赖项使用。
- MSVC 构建的性能得到了提升。
更新说明:https://github.com/jedisct1/libsodium/releases/tag/1.0.22-RELEASE