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