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密码学

Download history 80/week @ 2024-04-08 33/week @ 2024-04-15 14/week @ 2024-04-22 53/week @ 2024-04-29 44/week @ 2024-05-06 96/week @ 2024-05-13 189/week @ 2024-05-20 148/week @ 2024-05-27 97/week @ 2024-06-03 17/week @ 2024-06-10 50/week @ 2024-06-17 7/week @ 2024-06-24 24/week @ 2024-07-01 2/week @ 2024-07-08 39/week @ 2024-07-15 11/week @ 2024-07-22

每月77次下载
3 个crate中使用 (2 个直接使用)

MIT 许可

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