4个版本

0.0.3 2023年10月22日
0.0.2 2023年10月14日
0.0.1 2023年10月14日
0.0.0 2023年10月13日

#3 in #sha3

CC0 协议

2.5MB
69K SLoC

GNU Style Assembly 48K SLoC // 0.0% comments C 19K SLoC // 0.1% comments Bitbake 1K SLoC // 0.3% comments XSL 758 SLoC // 0.1% comments Rust 495 SLoC // 0.0% comments

xkcp-rs

eXtended Keccak Code Package (XKCP)库的绑定和封装。

文档

[!重要] xkcp-rs API 将 绝不 被视为稳定,随时可能更改,恕不另行通知。

要求

在Linux或macOS上构建,需要以下工具

目前不支持Windows。

使用 cc-rs 选择CC标志。有关如何配置外部 cc-rs 的文档,请参阅 他们的文档

XKCP目标

XKCP目标 通过 CARGO_* 环境变量自动选择。此行为可以通过使用功能标志(见下文)或通过直接使用环境变量 XKCP_RS_TARGET 指定XKCP目标来覆盖。

有关更多详细信息,请参阅 XKCP文档

使用方法

Cargo.toml:

[dependencies]
xkcp-rs = "0.0.2"

src/main.rs:

fn main() {
    let mut output = [0u8; 32];
    xkcp_rs::sha3_256(b"Hello, World!", &mut output);
    println!("{output:x?}");
}

功能标志

xkcp-rs

xkcp-rsxkcp-sys

  • avr8:强制为 AVR8(8位AVR)XKCP目标构建。
  • force-compact:强制为 compact XKCP目标构建。**警告**:这通常比其他任何东西都要慢得多。
  • force-generic:强制为 generic32generic64 XKCP 目标进行构建。如果不是为 32 或 64 位架构构建,则回退到 compact
  • generic-lc:使用 generic{32,64}lc XKCP 目标,而不是 generic{32,64}

支持的 Rust 版本

xkcp-rs 将保持至少 6 个月的滚动 MSRV(最低支持的 Rust 版本)策略。当提高 MSRV 时,新的 Rust 版本必须至少在六个月前发布。当前的 MSRV 是 1.65.0。

请注意,MSRV 不会自动提高,并且仅作为次要版本的一部分。

许可证

xkcp-rs 重新分发 XKCP 库,libXKCP,它主要是发布到 公共领域,并关联到 CC0 行动,但也有例外。有关更多信息,请参阅 LICENSE 文件。

依赖关系

~0–2MB
~39K SLoC