加密库 libsodium 1.0.21 发布
libsodium 1.0.21 现已发布。此版本更新包含了 1.0.20-stable 版本的所有更改,其中包括对crypto_core_ed25519_is_valid_point()函数的安全修复,以及两组新函数:
- 新
crypto_ipcrypt_实现了对 IP 地址进行安全加密和匿名化的机制。 - 新增
sodium_bin2ip和sodium_ip2bin辅助函数与crypto_ipcrypt_*互补,可轻松实现地址在字节与字符串间的转换。 - XOF:
crypto_xof_shake*和crypto_xof_turboshake*函数是标准的可扩展输出函数。它们可以从任意长度的输入导出任意长度的输出,并具有与哈希函数相同的属性。许多后量子机制都需要这些,但它们也可用于各种应用,包括密钥派生、会话加密等等。
版本 1.0.20-stable
- XCFramework:现在在 Apple Silicon 上强制使用交叉编译,以避免与 Rosetta 相关的构建问题。
- Fil-C 编译器开箱即用,无需额外设置。
- CompCert 编译器开箱即用,完全受支持。
- 现在支持 MSVC 2026(Visual Studio 2026)。
- Zig 构建现在支持 FreeBSD 目标
- 一些编译器提高了 ARM 架构上 AES256-GCM 和 AEGIS 的性能。
- Android 二进制文件已添加到 NuGet 包中。
- Windows ARM 二进制文件已添加到 NuGet 包中。
- Android 构建脚本已得到改进。基础 SDK 版本现为 27c,默认平台版本为 21,支持 16 KB 的页面大小。
- 现在可以使用 Zig 0.15 和 Zig 0.16 编译该库。
- 现在,对于支持 PIC 的目标平台,Zig 构建默认会生成位置无关的静态库。
- XCFramework 软件包中已添加了 arm64e 构建版本。
- XCFramework 软件包现在是完整构建版本,而非精简构建。
- 已为 ARM64 启用 MSVC 构建
- XCFramework 构建脚本已移除对 iOS 32 位 (armv7/armv7s) 的支持。
- 安全性:关键代码路径中引入了 optblockers,以防止编译器通过条件跳转引入不必要的侧信道攻击。此问题已在配备特定编译器和选项的 RISC-V 目标平台上观察到。
- 安全性:
crypto_core_ed25519_is_valid_point()现在可以正确地拒绝不在 main subgroup 中的 small-order points。 - 部分
crypto_stream*函数的((nonnull))属性已放宽,允许在输出长度为零时使用 NULL 输出缓冲区。 - 已修复与旧版本 clang 的交叉编译问题。
- JavaScript:已添加对 Cloudflare Workers 的支持
- JavaScript:为了保持与旧版运行时的兼容性,WASM_BIGINT 已被强制禁用。
- 修复了 Solaris 系统上旧版工具链的编译问题。
crypto_aead_aes256gcm_is_available导出至 JavaScript- libsodium 现在与 Emscripten 4.x 兼容。
- 安全性:在 AEAD 的 MAC 验证后添加内存屏障,以防止在身份验证完成之前对 plaintext 进行 speculative access。
- 现在,使用 CET instrumentation 构建时,Assembly files 包含 .gnu.property 注释,以提供正确的 IBT 和 Shadow Stack 支持。
详情可查看:https://github.com/jedisct1/libsodium/releases/tag/1.0.21-RELEASE
同类文章推荐: