1 个不稳定版本
0.1.0 | 2021 年 9 月 18 日 |
---|
#35 in #chia
68 每月下载次数
在 7 个 crate 中使用(通过 block-pseudorand)
9KB
125 行
chiapos-chacha8
这是 chiapos 的 ChaCha8 在 Rust 中的逐字节兼容实现。它已在 Rust 中自定义的 chiapos 实现中手动验证,以产生相同的结果。
除了产生相同的结果之外,此实现还使用 Rayon 进行多线程,从而产生非常快速的数据。
用法
此 crate 对原始用例有一些严格的要求
- 输出数据必须是 512 位块
- 输入密钥长度必须为 256 位(ChaCha8 在原始实现中可以接受 128 位或 256 位的输入)
- IV 将被置零
// Randomize this key however you would like
let mut key = [0u8; 32];
let chacha8 = ChaCha8::new_from_256bit_key(&key);
// Output data goes in this vec, note that 64 * 8 = 512bits
let num_blocks = 128;
let mut chacha_blocks = vec![0u8; 64 * num_blocks];
// pos is the offset in the output keystream
let pos = 0;
chacha8.get_keystream(pos, &mut chacha_blocks);
优点
此 crate 以极快的速度以 512 位块生成伪随机数据。对于相同的输入,输出也是确定的。
注意事项
此 crate 对以下内容不提供任何保证:
- 与原始 ChaCha8 实现或规范的相关正确性
- 密码学安全性
依赖项
~1.5MB
~25K SLoC