xref: /aosp_15_r20/external/vboot_reference/firmware/2lib/include/2hmac.h (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
1*8617a60dSAndroid Build Coastguard Worker /* Copyright 2016 The ChromiumOS Authors
2*8617a60dSAndroid Build Coastguard Worker  * Use of this source code is governed by a BSD-style license that can be
3*8617a60dSAndroid Build Coastguard Worker  * found in the LICENSE file.
4*8617a60dSAndroid Build Coastguard Worker  */
5*8617a60dSAndroid Build Coastguard Worker 
6*8617a60dSAndroid Build Coastguard Worker #ifndef VBOOT_REFERENCE_2HMAC_H_
7*8617a60dSAndroid Build Coastguard Worker #define VBOOT_REFERENCE_2HMAC_H_
8*8617a60dSAndroid Build Coastguard Worker 
9*8617a60dSAndroid Build Coastguard Worker #include <stdint.h>
10*8617a60dSAndroid Build Coastguard Worker #include "2crypto.h"
11*8617a60dSAndroid Build Coastguard Worker #include "2sha.h"
12*8617a60dSAndroid Build Coastguard Worker 
13*8617a60dSAndroid Build Coastguard Worker /**
14*8617a60dSAndroid Build Coastguard Worker  * Compute HMAC
15*8617a60dSAndroid Build Coastguard Worker  *
16*8617a60dSAndroid Build Coastguard Worker  * @param allow_hwcrypto	false to forbid HW crypto by policy; true to allow.
17*8617a60dSAndroid Build Coastguard Worker  * @param alg			Hash algorithm ID
18*8617a60dSAndroid Build Coastguard Worker  * @param key			HMAC key
19*8617a60dSAndroid Build Coastguard Worker  * @param key_size		HMAC key size
20*8617a60dSAndroid Build Coastguard Worker  * @param msg			Message to compute HMAC for
21*8617a60dSAndroid Build Coastguard Worker  * @param msg_size		Message size
22*8617a60dSAndroid Build Coastguard Worker  * @param mac			vb2_hash structure to fill with the mac of |msg|
23*8617a60dSAndroid Build Coastguard Worker  * @return
24*8617a60dSAndroid Build Coastguard Worker  */
25*8617a60dSAndroid Build Coastguard Worker int vb2_hmac_calculate(bool allow_hwcrypto, enum vb2_hash_algorithm alg, const void *key,
26*8617a60dSAndroid Build Coastguard Worker 		       uint32_t key_size, const void *msg, uint32_t msg_size,
27*8617a60dSAndroid Build Coastguard Worker 		       struct vb2_hash *mac);
28*8617a60dSAndroid Build Coastguard Worker 
29*8617a60dSAndroid Build Coastguard Worker #endif  /* VBOOT_REFERENCE_2HMAC_H_ */
30