Branch data Line data Source code
1 : : /**
2 : : * Copyright Notice:
3 : : * Copyright 2021-2026 DMTF. All rights reserved.
4 : : * License: BSD 3-Clause License. For full text see link: https://github.com/DMTF/libspdm/blob/main/LICENSE.md
5 : : **/
6 : :
7 : : #include "internal/libspdm_crypt_lib.h"
8 : :
9 : 822 : bool libspdm_hmac_all(uint32_t base_hash_algo, const void *data,
10 : : size_t data_size, const uint8_t *key,
11 : : size_t key_size, uint8_t *hmac_value)
12 : : {
13 [ + + + + : 822 : switch (base_hash_algo) {
+ + - - ]
14 : 812 : case SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA_256:
15 : : #if LIBSPDM_SHA256_SUPPORT
16 : 812 : return libspdm_hmac_sha256_all(data, data_size, key, key_size, hmac_value);
17 : : #else
18 : : LIBSPDM_ASSERT(false);
19 : : return false;
20 : : #endif
21 : 2 : case SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA_384:
22 : : #if LIBSPDM_SHA384_SUPPORT
23 : 2 : return libspdm_hmac_sha384_all(data, data_size, key, key_size, hmac_value);
24 : : #else
25 : : LIBSPDM_ASSERT(false);
26 : : return false;
27 : : #endif
28 : 2 : case SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA_512:
29 : : #if LIBSPDM_SHA512_SUPPORT
30 : 2 : return libspdm_hmac_sha512_all(data, data_size, key, key_size, hmac_value);
31 : : #else
32 : : LIBSPDM_ASSERT(false);
33 : : return false;
34 : : #endif
35 : 2 : case SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA3_256:
36 : : #if LIBSPDM_SHA3_256_SUPPORT
37 : 2 : return libspdm_hmac_sha3_256_all(data, data_size, key, key_size, hmac_value);
38 : : #else
39 : : LIBSPDM_ASSERT(false);
40 : : return false;
41 : : #endif
42 : 2 : case SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA3_384:
43 : : #if LIBSPDM_SHA3_384_SUPPORT
44 : 2 : return libspdm_hmac_sha3_384_all(data, data_size, key, key_size, hmac_value);
45 : : #else
46 : : LIBSPDM_ASSERT(false);
47 : : return false;
48 : : #endif
49 : 2 : case SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SHA3_512:
50 : : #if LIBSPDM_SHA3_512_SUPPORT
51 : 2 : return libspdm_hmac_sha3_512_all(data, data_size, key, key_size, hmac_value);
52 : : #else
53 : : LIBSPDM_ASSERT(false);
54 : : return false;
55 : : #endif
56 : 0 : case SPDM_ALGORITHMS_BASE_HASH_ALGO_TPM_ALG_SM3_256:
57 : : #if LIBSPDM_SM3_256_SUPPORT
58 : : return libspdm_hmac_sm3_256_all(data, data_size, key, key_size, hmac_value);
59 : : #else
60 : 0 : LIBSPDM_ASSERT(false);
61 : 0 : return false;
62 : : #endif
63 : 0 : default:
64 : 0 : LIBSPDM_ASSERT(false);
65 : 0 : return false;
66 : : }
67 : : }
|