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