Software APIs
mock_hmac.h
1 // Copyright lowRISC contributors (OpenTitan project).
2 // Licensed under the Apache License, Version 2.0, see LICENSE for details.
3 // SPDX-License-Identifier: Apache-2.0
4 
5 #ifndef OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_DRIVERS_MOCK_HMAC_H_
6 #define OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_DRIVERS_MOCK_HMAC_H_
7 
8 #include "sw/device/lib/base/global_mock.h"
9 #include "sw/device/silicon_creator/lib/drivers/hmac.h"
10 #include "sw/device/silicon_creator/testing/rom_test.h"
11 
12 namespace rom_test {
13 namespace internal {
14 
15 /**
16  * Mock class for hmac.c.
17  */
18 class MockHmac : public global_mock::GlobalMock<MockHmac> {
19  public:
20  MOCK_METHOD(void, sha256_configure, (bool));
21  MOCK_METHOD(void, sha256_start, ());
22  MOCK_METHOD(void, sha256_init, ());
23  MOCK_METHOD(void, sha256_update, (const void *, size_t));
24  MOCK_METHOD(void, sha256_update_words, (const uint32_t *, size_t));
25  MOCK_METHOD(void, sha256_process, ());
26  MOCK_METHOD(void, sha256_final_truncated, (uint32_t *, size_t));
27  MOCK_METHOD(void, sha256_final, (hmac_digest_t *));
28  MOCK_METHOD(void, sha256, (const void *, size_t, hmac_digest_t *));
29  MOCK_METHOD(void, sha256_save, (hmac_context_t *));
30  MOCK_METHOD(void, sha256_restore, (const hmac_context_t *));
31 };
32 
33 } // namespace internal
34 
35 using MockHmac = testing::StrictMock<internal::MockHmac>;
36 
37 } // namespace rom_test
38 
39 #endif // OPENTITAN_SW_DEVICE_SILICON_CREATOR_LIB_DRIVERS_MOCK_HMAC_H_