3个版本
0.1.2 | 2024年7月16日 |
---|---|
0.1.1 | 2024年7月15日 |
0.1.0 | 2024年7月15日 |
#844 in 密码学
每月324次下载
11KB
165 行
NIST PQC:用于已知答案测试的RNG
该软件包提供了一个可播种的RNG,其输出与NIST PQC项目提交中使用的rng.c
兼容,用于从初始种子中获得已知答案测试。
安全注意事项
该软件包未经过安全审计。使用风险自负。
最低支持的Rust版本
该软件包至少需要Rust 1.70。最低支持版本可能在未来更改,但此更改将伴随次要版本的升级。
许可证
该软件包根据Apache-2.0或MIT许可证授权。
lib.rs
:
用法
可以使用48字节的种子通过各种选项实例化RNG:首先使用在可播种API接口中定义的SeedableRng::from_seed。为了避免用户处理用于表示种子的[GenericArray]的转换,提供了[From]的便利实现,用于48个元素的[u8]
数组以及[[u8]
]切片的[TryFrom
]。
以下三个示例功能上等效。让我们从使用[Seed]初始化开始
use nist_pqc_seeded_rng::{NistPqcAes256CtrRng, Seed, SeedableRng};
let seed: Seed = (*b"012345678901234567890123456789012345678901234567").into();
let rng = NistPqcAes256CtrRng::from_seed(seed);
使用u8
数组
use nist_pqc_seeded_rng::{NistPqcAes256CtrRng, Seed, SeedableRng};
let seed: [u8; 48] = *b"012345678901234567890123456789012345678901234567";
let rng = NistPqcAes256CtrRng::from(seed);
使用切片
use nist_pqc_seeded_rng::{NistPqcAes256CtrRng, Seed, SeedableRng};
let seed = *b"012345678901234567890123456789012345678901234567";
let rng = NistPqcAes256CtrRng::try_from(seed).expect("seed of invalid length");
依赖项
~1–1.7MB
~38K SLoC