diff options
| author | Hannes Reinecke <hare@kernel.org> | 2025-02-24 13:38:09 +0100 |
|---|---|---|
| committer | Keith Busch <kbusch@kernel.org> | 2025-03-20 16:53:53 -0700 |
| commit | 3241cd0c6c17919b5b984c6b770ced3d797ddc4c (patch) | |
| tree | 0992d820f9fb32610490665f4be7b670ae2b1cde /include/crypto | |
| parent | fc22b34e95ce0a294c797c397a9db671e6ff4448 (diff) | |
crypto,fs: Separate out hkdf_extract() and hkdf_expand()
Separate out the HKDF functions into a separate module to
to make them available to other callers.
And add a testsuite to the module with test vectors
from RFC 5869 (and additional vectors for SHA384 and SHA512)
to ensure the integrity of the algorithm.
Signed-off-by: Hannes Reinecke <hare@kernel.org>
Acked-by: Eric Biggers <ebiggers@kernel.org>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Keith Busch <kbusch@kernel.org>
Diffstat (limited to 'include/crypto')
| -rw-r--r-- | include/crypto/hkdf.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/include/crypto/hkdf.h b/include/crypto/hkdf.h new file mode 100644 index 000000000000..6a9678f508f5 --- /dev/null +++ b/include/crypto/hkdf.h @@ -0,0 +1,20 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * HKDF: HMAC-based Key Derivation Function (HKDF), RFC 5869 + * + * Extracted from fs/crypto/hkdf.c, which has + * Copyright 2019 Google LLC + */ + +#ifndef _CRYPTO_HKDF_H +#define _CRYPTO_HKDF_H + +#include <crypto/hash.h> + +int hkdf_extract(struct crypto_shash *hmac_tfm, const u8 *ikm, + unsigned int ikmlen, const u8 *salt, unsigned int saltlen, + u8 *prk); +int hkdf_expand(struct crypto_shash *hmac_tfm, + const u8 *info, unsigned int infolen, + u8 *okm, unsigned int okmlen); +#endif |
