6个版本 (3个重大更新)
0.4.2 | 2023年10月26日 |
---|---|
0.4.1 | 2021年12月10日 |
0.3.0 | 2021年11月18日 |
0.2.0 | 2021年11月18日 |
0.1.0 | 2021年3月31日 |
#515 在 密码学 中
每月77次下载
在 3 个crate中使用 (2 个直接使用)
720KB
1.5K SLoC
rust-openssl-kdf
OpenSSL KDF功能的包装器。
这是一个围绕OpenSSL中不同KDF实现的包装器。目前,它支持作为Fedora/RHEL回滚的EVP_KDF功能。
它实现了Rust对OpenSSL中EVP_KDF功能的包装,其中包括KBKDF,如NIST SP800-108中指定。
示例用法(KBKDF在计数器模式下使用HMAC-SHA256作为PRF)
use openssl_kdf::{KdfArgument, KdfKbMode, KdfMacType, KdfType, perform_kdf};
use openssl::hash::MessageDigest;
let args = [
&KdfArgument::KbMode(KdfKbMode::Counter),
&KdfArgument::Mac(KdfMacType::Hmac(MessageDigest::sha256())),
// Set the salt (called "Label" in SP800-108)
&KdfArgument::Salt(&[0x12, 0x34]),
// Set the kb info (called "Context" in SP800-108)
&KdfArgument::KbInfo(&[0x9a, 0xbc]),
// Set the key (called "Ki" in SP800-108)
&KdfArgument::Key(&[0x56, 0x78]),
];
let key_out = perform_kdf(KdfType::KeyBased, &args, 20).unwrap();
依赖项
~1.8–2.6MB
~59K SLoC