6 #include "sw/device/lib/crypto/drivers/entropy.h"
9 #include "sw/device/lib/testing/keymgr_testutils.h"
10 #include "sw/device/lib/testing/test_framework/check.h"
14 #define MODULE_ID MAKE_MODULE_ID('t', 's', 't')
17 static const uint32_t kKeyVersion = 0x0;
20 static const uint32_t kKeySalt[7] = {
21 0x00112233, 0x44556677, 0x8899aabb, 0xccddeeff,
22 0x00010203, 0x04050607, 0x08090a0b,
27 .version = kOtcryptoLibVersion1,
28 .key_mode = kOtcryptoKeyModeAesKwp,
29 .key_length = 256 / 8,
31 .security_level = kOtcryptoKeySecurityLevelLow,
42 size_t wrapped_num_words;
46 uint32_t wrapped_key_data[wrapped_num_words];
48 .data = wrapped_key_data,
55 TRY_CHECK(key_to_wrap->keyblob_length %
sizeof(uint32_t) == 0);
56 size_t keyblob_words = key_to_wrap->keyblob_length /
sizeof(uint32_t);
57 uint32_t unwrapped_key_keyblob[keyblob_words];
59 .keyblob_length = keyblob_words *
sizeof(uint32_t),
60 .keyblob = unwrapped_key_keyblob,
64 .data = wrapped_key_data,
67 key_kek, &success, &unwrapped_key));
71 TRY_CHECK_ARRAYS_EQ(unwrapped_key.keyblob, key_to_wrap->keyblob,
73 TRY_CHECK(
memcmp(&unwrapped_key.config, &key_to_wrap->config,
75 TRY_CHECK(unwrapped_key.keyblob_length == key_to_wrap->keyblob_length);
76 TRY_CHECK(unwrapped_key.checksum == key_to_wrap->checksum);
84 static status_t wrap_unwrap_random_test(
void) {
86 .version = kOtcryptoLibVersion1,
87 .key_mode = kOtcryptoKeyModeKmac128,
88 .key_length = 128 / 8,
90 .security_level = kOtcryptoKeySecurityLevelLow,
94 uint32_t keyblob[(kKmacKeyConfig.key_length * 2) /
sizeof(uint32_t)];
96 .config = kKmacKeyConfig,
97 .keyblob_length =
sizeof(keyblob),
104 uint32_t keyblob_kek[8];
106 .config = kWrappingKeyConfig,
107 .keyblob_length =
sizeof(keyblob_kek),
108 .keyblob = keyblob_kek,
112 return run_wrap_unwrap(&kmac_key, &kek);
128 TRY(keymgr_testutils_try_startup(&keymgr, &kmac, &keymgr_state));
131 TRY(keymgr_testutils_advance_state(&keymgr, &kOwnerIntParams));
132 TRY(keymgr_testutils_advance_state(&keymgr, &kOwnerRootKeyParams));
134 TRY(keymgr_testutils_advance_state(&keymgr, &kOwnerRootKeyParams));
142 return entropy_complex_init();
145 OTTF_DEFINE_TEST_CONFIG();
153 return status_ok(result);