7 个版本
0.1.0 | 2024 年 7 月 7 日 |
---|---|
0.0.6 | 2024 年 7 月 3 日 |
0.0.5 | 2024 年 6 月 26 日 |
#2 in #kangarootwelve
每月下载量 35
360KB
7.5K SLoC
有袋类
是 xkcp/k12 的 Rust 封装,基于 oconnor663/kangarootwelve_xkcp.rs
用法
为了使用此包,您需要
- C 编译器
- Rust
- gnuplot(如果您想在基准测试时生成图形)
然后,只需在 Cargo.toml
中添加对 marsupial
包的依赖项,然后您就可以像这样使用它
use marsupial::{KT128, Hasher};
// hash an input all at once
let hash1 = marsupial::hash::<KT128>(b"foobarbaz");
// hash an input incrementally
let mut hasher = Hasher::<KT128>::new();
hasher.update(b"foo");
hasher.update(b"bar");
hasher.update(b"baz");
let hash2 = hasher.finalize();
assert_eq!(hash1, hash2);
// extended output. `OutputReader` also implements `Read`
let mut hasher = Hasher::<KT128>::new();
hasher.update(b"foobarbaz");
let mut output_reader = hasher.finalize_xof();
let mut output = [0; 1000];
output_reader.squeeze(&mut output);
assert_eq!(&output[..32], hash1.as_bytes());
// emit the hash as hexadecimal (does not work for now)
//println!("{}", hash1.to_hex());
它快吗?
基准测试是在 intel i5-1135G7 上使用 rust 1.79.0 在 debian linux trixie/sid 上进行的
许可证
与 kangarootwelve_xkcp.rs
一样,所有的 Rust 封装代码都是通过 cc0 贡献给公共领域的。vender 的 xkcp 代码受多种许可证的保护
依赖
~0–2.1MB
~41K SLoC