Skip to content

Add Counter and Feedback KDFs from NIST SP 800-108#202

Open
SalusaSecondus wants to merge 6 commits intoRustCrypto:masterfrom
SalusaSecondus:sp800-108
Open

Add Counter and Feedback KDFs from NIST SP 800-108#202
SalusaSecondus wants to merge 6 commits intoRustCrypto:masterfrom
SalusaSecondus:sp800-108

Conversation

@SalusaSecondus
Copy link
Copy Markdown

This is my attempt to implement some of the NIST SP 800-108 KDFs as requested in #75 . That standard defines a large family of KDFs and so rather than defining a single construction, I needed a way for developers to configure the specific KDF they need. I'm doing this with an enum called ContextComponent which allows them to build up a specific context. To avoid memory allocation, I place a hard cap at 16 elements, though expect 5 to be sufficient in practice.

While I have added test vectors from CAVP for these cases, they do not cover all of the configurations described in the standard. Specifically, they do not cover encoding the length of the output nor use of K0. Please double-check my logic and implementation around these.

I have not added implementations of either Double Pipeline or KMAC KDFs at this time.

As always, all naming (struct, crate, etc.) is up for change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant