libsodium 1.0.19 现已发布。此版本包含 1.0.18-stable 的所有更改,以及两项新增内容:
- New AEADs:
crypto_aead_aegis128l_*()
和crypto_aead_aegis256_*()
命名空间中新增了 AEGIS-128L 和 AEGIS-256。AEGIS 是面向高性能应用的认证密码系列,利用 x86_64 和 aarch64 上的硬件 AES 加速。除性能外,AEGIS 密码还具有独特的特性,使其比 AES-GCM 更易于使用,也更安全。它们还可用作高性能 MAC。 crypto_kdf_hkdf_*()
命名空间现在提供了许多标准协议所需的 HKDF 密钥生成机制。它是针对 SHA-256 和 SHA-512 哈希函数实现的。osx.sh
构建脚本已重命名为macos.sh
- 删除了对 android-mips 的支持。
From 1.0.18-stable:
- Visual Studio:添加了对 Windows/ARM64 builds 的支持。
- Visual Studio:在支持的 CPU 上启用了 AVX512 实现。
- Visual Studio:添加了 MSVC 2022 解决方案。
- Apple XCFramework:添加了对 VisionOS 的支持。
- Apple XCFranework:添加了对 Catalyst 的支持。
- Apple XCFramework:构建模拟器现在是可选的。
- iOS:不再生成 bitcode,因为它已被 Apple 弃用。
- watchOS:添加了对 arm64 的支持。
- Zig 工具链现在可以用作现代构建系统来替换 autoconf/automake/libtool/make/ccache 和编译器。这可以实现更快的编译时间、更轻松的交叉编译以及针对任何 CPU 进行优化的静态库。
- Zig 工具链现在是将
libsodium
编译为 WebAssembly/WASI(X) 的推荐方法。 - libsodium 现在可以作为 Zig 项目的依赖项添加。
- AES-GCM 实现被完全重写。现在它速度更快,并且也可在 aarch64 上使用,包括 Windows/ARM64。
- 新增了与 CET instrumentation / IBT / Shadow Stack 的兼容性。
- Emscripten:已从 Sumo builds 中删除
crypto_pwhash_*()
函数,因为它们即使在未使用时也会占用大量 JavaScript 内存。 - 基准测试现在尽可能使用
CLOCK_MONOTONIC
。 - WebAssembly:现在可以使用 Bun、WasmEdge、Wazero、wasm3 和 wasmer-js 运行测试。对 WAVM 和 Lucet 的支持已被删除,因为这些项目已达到 EOL。
- .NET:支持的最低 macOS 版本现在为 1.0.15。
- .NET:所有包现在都是在所有平台上使用 Zig 构建的。
- .NET:ARM64 的软件包现在可用。
- C23
memset_explicit()
现在可用。 - 编译时默认使用
-Ofast
或-O3
而非-O2
。 - 可移植性改进有助于将 libsodium 编译到现代游戏机。
- JavaScript:不再设置默认的
unhandledRejection
处理程序。 - 略微加快 25519 操作速度。
- OpenBSD:leverage
MAP_CONCEAL
。
详情可查看更新说明。