xref: /linux/include/crypto/hkdf.h (revision 9b960d8cd6f712cb2c03e2bdd4d5ca058238037f)
1*3241cd0cSHannes Reinecke /* SPDX-License-Identifier: GPL-2.0 */
2*3241cd0cSHannes Reinecke /*
3*3241cd0cSHannes Reinecke  * HKDF: HMAC-based Key Derivation Function (HKDF), RFC 5869
4*3241cd0cSHannes Reinecke  *
5*3241cd0cSHannes Reinecke  * Extracted from fs/crypto/hkdf.c, which has
6*3241cd0cSHannes Reinecke  * Copyright 2019 Google LLC
7*3241cd0cSHannes Reinecke  */
8*3241cd0cSHannes Reinecke 
9*3241cd0cSHannes Reinecke #ifndef _CRYPTO_HKDF_H
10*3241cd0cSHannes Reinecke #define _CRYPTO_HKDF_H
11*3241cd0cSHannes Reinecke 
12*3241cd0cSHannes Reinecke #include <crypto/hash.h>
13*3241cd0cSHannes Reinecke 
14*3241cd0cSHannes Reinecke int hkdf_extract(struct crypto_shash *hmac_tfm, const u8 *ikm,
15*3241cd0cSHannes Reinecke 		 unsigned int ikmlen, const u8 *salt, unsigned int saltlen,
16*3241cd0cSHannes Reinecke 		 u8 *prk);
17*3241cd0cSHannes Reinecke int hkdf_expand(struct crypto_shash *hmac_tfm,
18*3241cd0cSHannes Reinecke 		const u8 *info, unsigned int infolen,
19*3241cd0cSHannes Reinecke 		u8 *okm, unsigned int okmlen);
20*3241cd0cSHannes Reinecke #endif
21