Code coverage report for DMTF/libspdm
Current view: top level - library/spdm_crypt_lib - libspdm_crypt_hmac.c (source / functions) Coverage Total Hit
Test: 36148b912f76d231c18d216d6dee5c0858575bb1 Lines: 70.0 % 20 14
Test Date: 2026-10-25 08:40:22 Functions: 100.0 % 1 1
Branches: 75.0 % 8 6

             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                 :             : }
        

Generated by: LCOV version 2.0-1