| Crates.io | one-step-kdf |
| lib.rs | one-step-kdf |
| version | 0.1.0-rc.0 |
| created_at | 2025-11-05 18:48:05.763428+00 |
| updated_at | 2025-11-05 18:48:05.763428+00 |
| description | One-Step Key Derivation Function as defined in NIST SP 800-56C R2 |
| homepage | |
| repository | https://github.com/RustCrypto/KDFs |
| max_upload_size | |
| id | 1918432 |
| size | 29,909 |
Pure Rust implementation of the One-Step Key Derivation Function (formerly known as Concat KDF) implemented generically over the underlying hash function.
This KDF is described in the section 4 of NIST SP 800-56C: Recommendation for Key-Derivation Methods in Key-Establishment Schemes.
The most common way to use One-Step KDF is as follows: you generate a shared secret with other party (e.g. via Diffie-Hellman algorithm) and use key derivation function to derive a shared key.
use hex_literal::hex;
use sha2::Sha256;
let mut key = [0u8; 16];
one_step_kdf::derive_key_into::<Sha256>(b"secret", b"shared-info", &mut key).unwrap();
assert_eq!(key, hex!("960db2c549ab16d71a7b008e005c2bdc"));
Licensed under either of:
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.