5 #include "sw/device/silicon_creator/rom_ext/sigverify_keys.h"
11 #include <unordered_set>
13 #include "gtest/gtest.h"
15 #include "sw/device/silicon_creator/lib/drivers/mock_rnd.h"
16 #include "sw/device/silicon_creator/lib/error.h"
17 #include "sw/device/silicon_creator/testing/rom_test.h"
32 .
key = {.
n = {{0xa0}}, .n0_inv = {0}},
33 .key_type = kSigverifyKeyTypeFirmwareTest,
36 .key = {.n = {{0xb0}}, .n0_inv = {0}},
37 .key_type = kSigverifyKeyTypeFirmwareProd,
40 .key = {.n = {{0xc0}}, .n0_inv = {0}},
41 .key_type = kSigverifyKeyTypeFirmwareDev,
44 .key = {.n = {{0xa1}}, .n0_inv = {0}},
45 .key_type = kSigverifyKeyTypeFirmwareTest,
48 .key = {.n = {{0xb1}}, .n0_inv = {0}},
49 .key_type = kSigverifyKeyTypeFirmwareProd,
52 .key = {.n = {{0xc1}}, .n0_inv = {0}},
53 .key_type = kSigverifyKeyTypeFirmwareDev,
56 .key = {.n = {{0xff}}, .n0_inv = {0}},
57 .key_type =
static_cast<sigverify_key_type_t
>(
58 std::numeric_limits<uint32_t>::max()),
62 constexpr
size_t kSigverifyRsaKeysCnt =
63 std::extent<decltype(kSigverifyRsaKeys)>::value;
65 constexpr
size_t kSigverifyRsaKeysStep = 1;
68 namespace sigverify_keys_unittest {
70 using ::testing::Return;
79 std::vector<size_t> indices;
80 for (
size_t i = 0; i < kSigverifyRsaKeysCnt; ++i) {
81 if (kSigverifyRsaKeys[i].key_type == key_type) {
94 EXPECT_CALL(rnd_, Uint32())
95 .WillOnce(Return(std::numeric_limits<uint32_t>::max()));
98 rom_test::MockRnd rnd_;
107 EXPECT_EQ(sigverify_rsa_key_get(0, &key), kErrorSigverifyBadKey);
118 sigverify_rsa_key_get(0xff, &key);
127 public testing::WithParamInterface<size_t> {};
130 size_t key_index = GetParam();
136 sigverify_rsa_key_get(
137 sigverify_rsa_key_id_get(&kSigverifyRsaKeys[key_index].key.n), &key),
139 EXPECT_EQ(key, &kSigverifyRsaKeys[key_index].key);
142 INSTANTIATE_TEST_SUITE_P(
143 FirmwareProdKeys, KeyValidityTest,
144 testing::ValuesIn(MockKeyIndicesOfType(kSigverifyKeyTypeFirmwareProd)));
146 INSTANTIATE_TEST_SUITE_P(
147 FirmwareTestKeys, KeyValidityTest,
148 testing::ValuesIn(MockKeyIndicesOfType(kSigverifyKeyTypeFirmwareTest)));
150 INSTANTIATE_TEST_SUITE_P(
151 FirmwareDevKeys, KeyValidityTest,
152 testing::ValuesIn(MockKeyIndicesOfType(kSigverifyKeyTypeFirmwareDev)));