one-step-kdf 0.1.0-rc.1

One-Step Key Derivation Function as defined in NIST SP 800-56C R2
Documentation

RustCrypto: One-Step KDF

crate Docs Build Status Apache2/MIT licensed Rust Version Project Chat

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.

Usage

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"));

License

Licensed under either of:

at your option.

Contribution

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.