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