Skip to main content
This is unreleased documentation for the main (development) branch of crypto-glue.

Crate kbkdf

Crate kbkdf 

Source
Expand description

§RustCrypto: KBKDF

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

Pure Rust implementation of the Key Based Key Derivation Function (KBKDF). This function is described in section 4 of NIST SP 800-108r1, Recommendation for Key Derivation Using Pseudorandom Functions.

§Usage

The most common way to use KBKDF 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 hmac::Hmac;
use kbkdf::{Counter, Kbkdf, Params};
use sha2::Sha256;

type HmacSha256 = Hmac<Sha256>;
let counter = Counter::<HmacSha256, HmacSha256>::default();
let key = counter
    .derive(Params::builder(b"secret").with_label(b"label").build())
    .unwrap();
assert_eq!(
    key,
    hex!(
        "ff6a1e505e0f2546eae8f1e11ab95ff6"
        "47b78bb2182a835c7c1f8054ae7cfea5"
        "8182da6b978c411fa840326ebbe07bfc"
        "aaef01c090bb6f8e9c1da9dedf40bc3e"
    )
);

§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.

Modules§

sealed
The module provides the sealed trait R.

Structs§

Counter
KBKDF in Counter Mode.
DoublePipeline
KBKDF in Double-Pipeline Mode.
Feedback
KBKDF in Feedback Mode.
Params
Parameters used for KBKDF.
ParamsBuilder
Parameters builders for Params.

Enums§

Error
KBKDF error type.

Traits§

Kbkdf
Kbkdf is a trait representing a mode of KBKDF. It takes multiple arguments: