rust-kbkdf

Crates.iorust-kbkdf
lib.rsrust-kbkdf
version1.1.0
sourcesrc
created_at2022-07-12 02:34:04.517639
updated_at2022-07-15 00:39:20.937254
descriptionSP800-108 Key Based Key Derivation Using Pseudorandom Functions
homepage
repositoryhttps://gitlab.com/michael.j.boquard/rust-kbkdf
max_upload_size
id624062
size105,914
Mike Boquard (mjb3279)

documentation

README

Rust Implementation of NIST SP800-108 Key Based Key Derivation Function (KBKDF)

This crate provides a Rust implementation of the NIST SP800-108 standard for performing key-derivation based on a source key.

This crate implements the KBKDF in the following modes:

  • Counter
  • Feedback
  • Double-Pipeline Iteration

This crate was designed such that the user may provide their own Pseudo Random Function (as defined in Section 4 of SP800-108) via the implementation of two traits:

  • [PseudoRandomFunctionKey]
  • [PseudoRandomFunction]

Psuedo Random Function Trait

The purpose of the PRF trait is to allow a user to provide their own implementation of a PRF (as defined in Section 4 of SP800-108).

Please note, that in order for an implementation of KBKDF to be NIST approved, an approved PRF must be used!

The author of this crate does not guarantee that this implementation is NIST approved!

Pseudo Random Function Key

This trait is used to ensure that the implementation of the PseudoRandomFunction trait can access the necessary source key in a way that passes Rust's borrow checker.

Example

An example of how to use the two traits are found in the tests module utilizing the OpenSSL Crate.

Commit count: 16

cargo fmt