Data Structures | |
class | DifKeymgrTest |
class | BadArgsTwo |
Class for parameterizing bad argument tests for functions with two arguments. More... | |
class | DifKeymgrInitialized |
Base class for the rest of the tests in this file, provides a dif_keymgr_t instance and some methods for common expectations. More... | |
class | ConfigureTest |
class | AdvanceStateTest |
class | AdvanceToOperational |
class | AdvanceToNonOperational |
class | DisableTest |
struct | GetStatusCodesTestCase |
class | GetStatusCodesNoError |
class | GetStatusCodesWithError |
class | GetStateTest |
struct | GetStateTestCase |
class | GetState |
class | GenerateIdentityTest |
class | GenerateVersionedKeyTest |
struct | GenerateVersionedKeyTestCase |
class | GenerateVersionedKey |
class | SideloadClearTest |
class | ReadOutputTest |
class | ReadBindingTest |
class | ReadMaxKeyVersionTest |
Functions | |
uint32_t | AllOnesExcept (uint32_t index) |
Returns a uint32_t with a single zero bit. | |
template<typename T > | |
std::vector< T > | CreateEnumVector (T last) |
Returns a vector of values for a given enum type. More... | |
template<typename T > | |
T * | GetGoodBadPtrArg (bool is_good) |
Returns a seemingly valid, i.e. More... | |
template<typename T > | |
T | GetGoodBadEnumArg (bool is_good, T last) |
Returns a valid or invalid value for the given enum type. More... | |
INSTANTIATE_TEST_SUITE_P (BadArgsTwo, BadArgsTwo, testing::Combine(testing::Bool(), testing::Bool()), [&](testing::TestParamInfo< std::tuple< bool, bool >> info) { auto stringify=[](bool foo) { return foo ? "Good" :"Bad";};std::stringstream ss;ss<< stringify(std::get< 0 >(info.param))<< stringify(std::get< 1 >(info.param));return ss.str();}) | |
TEST_F (ConfigureTest, BadArgs) | |
TEST_F (ConfigureTest, Configure) | |
TEST_F (AdvanceStateTest, BadArgsNoKeymgr) | |
TEST_P (AdvanceToOperational, BadArgsToOperationalWithoutParams) | |
INSTANTIATE_TEST_SUITE_P (AdvanceToOperational, AdvanceToOperational, testing::ValuesIn(kStatesWithOperationalNextStates)) | |
TEST_P (AdvanceToNonOperational, BadArgsToNonOperationalWithParams) | |
INSTANTIATE_TEST_SUITE_P (AdvanceToNonOperational, AdvanceToNonOperational, testing::ValuesIn(kStatesWithNonOperationalNextStates)) | |
TEST_F (AdvanceStateTest, LockedBusy) | |
TEST_F (AdvanceStateTest, LockedConfig) | |
TEST_P (AdvanceToOperational, LockedBinding) | |
TEST_P (AdvanceToOperational, LockedMaxKeyVersion) | |
TEST_P (AdvanceToOperational, Success) | |
TEST_P (AdvanceToNonOperational, Success) | |
TEST_F (DisableTest, BadArgs) | |
TEST_F (DisableTest, LockedBusy) | |
TEST_F (DisableTest, LockedConfig) | |
TEST_F (DisableTest, Disable) | |
TEST_P (BadArgsTwo, GetStatusCodes) | |
TEST_P (GetStatusCodesNoError, Success) | |
INSTANTIATE_TEST_SUITE_P (GetStatusCodesNoError, GetStatusCodesNoError, testing::Values(GetStatusCodesTestCase{ .reg_val={{ .offset=KEYMGR_OP_STATUS_STATUS_OFFSET,.value=KEYMGR_OP_STATUS_STATUS_VALUE_IDLE, }},.exp_val=kDifKeymgrStatusCodeIdle, }, GetStatusCodesTestCase{ .reg_val={{ .offset=KEYMGR_OP_STATUS_STATUS_OFFSET,.value=KEYMGR_OP_STATUS_STATUS_VALUE_DONE_SUCCESS, }},.exp_val=kDifKeymgrStatusCodeIdle, }, GetStatusCodesTestCase{ .reg_val={{ .offset=KEYMGR_OP_STATUS_STATUS_OFFSET,.value=KEYMGR_OP_STATUS_STATUS_VALUE_DONE_ERROR, }},.exp_val=kDifKeymgrStatusCodeIdle|kDifKeymgrStatusCodeInvalidKmacOutput|kDifKeymgrStatusCodeInvalidOperation, }, GetStatusCodesTestCase{ .reg_val={{ .offset=KEYMGR_OP_STATUS_STATUS_OFFSET,.value=KEYMGR_OP_STATUS_STATUS_VALUE_WIP, }},.exp_val=0, })) | |
TEST_P (GetStatusCodesWithError, Success) | |
INSTANTIATE_TEST_SUITE_P (GetStatusCodesWithError, GetStatusCodesWithError, testing::Values(GetStatusCodesTestCase{ .reg_val={{ .offset=KEYMGR_ERR_CODE_INVALID_OP_BIT,.value=1, }},.exp_val=kDifKeymgrStatusCodeIdle|kDifKeymgrStatusCodeInvalidOperation, }, GetStatusCodesTestCase{ .reg_val={{ .offset=KEYMGR_ERR_CODE_INVALID_KMAC_INPUT_BIT,.value=1, }},.exp_val=kDifKeymgrStatusCodeIdle|kDifKeymgrStatusCodeInvalidKmacInput, }, GetStatusCodesTestCase{ .reg_val={{ .offset=KEYMGR_ERR_CODE_INVALID_OP_BIT,.value=1, }, { .offset=KEYMGR_ERR_CODE_INVALID_KMAC_INPUT_BIT,.value=1, }},.exp_val=kDifKeymgrStatusCodeIdle|kDifKeymgrStatusCodeInvalidOperation|kDifKeymgrStatusCodeInvalidKmacInput, })) | |
TEST_P (BadArgsTwo, GetState) | |
TEST_P (GetState, Success) | |
INSTANTIATE_TEST_SUITE_P (AllValidStates, GetState, testing::Values(GetStateTestCase{ .reg_val={{ .offset=KEYMGR_WORKING_STATE_STATE_OFFSET,.value=KEYMGR_WORKING_STATE_STATE_VALUE_RESET, }},.exp_output=kDifKeymgrStateReset, }, GetStateTestCase{ .reg_val={{ .offset=KEYMGR_WORKING_STATE_STATE_OFFSET,.value=KEYMGR_WORKING_STATE_STATE_VALUE_INIT, }},.exp_output=kDifKeymgrStateInitialized, }, GetStateTestCase{ .reg_val={{ .offset=KEYMGR_WORKING_STATE_STATE_OFFSET,.value=KEYMGR_WORKING_STATE_STATE_VALUE_CREATOR_ROOT_KEY, }},.exp_output=kDifKeymgrStateCreatorRootKey, }, GetStateTestCase{ .reg_val={{ .offset=KEYMGR_WORKING_STATE_STATE_OFFSET,.value=KEYMGR_WORKING_STATE_STATE_VALUE_OWNER_INTERMEDIATE_KEY, }},.exp_output=kDifKeymgrStateOwnerIntermediateKey, }, GetStateTestCase{ .reg_val={{ .offset=KEYMGR_WORKING_STATE_STATE_OFFSET,.value=KEYMGR_WORKING_STATE_STATE_VALUE_OWNER_KEY, }},.exp_output=kDifKeymgrStateOwnerRootKey, }, GetStateTestCase{ .reg_val={{ .offset=KEYMGR_WORKING_STATE_STATE_OFFSET,.value=KEYMGR_WORKING_STATE_STATE_VALUE_DISABLED, }},.exp_output=kDifKeymgrStateDisabled, }, GetStateTestCase{ .reg_val={{ .offset=KEYMGR_WORKING_STATE_STATE_OFFSET,.value=KEYMGR_WORKING_STATE_STATE_VALUE_INVALID, }},.exp_output=kDifKeymgrStateInvalid, })) | |
TEST_F (GetStateTest, UnexpectedState) | |
TEST_F (GenerateIdentityTest, BadArgs) | |
TEST_F (GenerateIdentityTest, LockedBusy) | |
TEST_F (GenerateIdentityTest, LockedConfig) | |
TEST_F (GenerateIdentityTest, GenerateSealing) | |
TEST_F (GenerateIdentityTest, GenerateAttestation) | |
TEST_P (BadArgsTwo, GenerateVersionedKey) | |
TEST_F (GenerateVersionedKeyTest, LockedBusy) | |
TEST_F (GenerateVersionedKeyTest, LockedConfig) | |
TEST_P (GenerateVersionedKey, Success) | |
INSTANTIATE_TEST_SUITE_P (GenerateVersionedKeyAllDests, GenerateVersionedKey, testing::Values(GenerateVersionedKeyTestCase{ .dest=kDifKeymgrVersionedKeyDestSw,.exp_dest_sel=KEYMGR_CONTROL_SHADOWED_DEST_SEL_VALUE_NONE,.exp_operation=KEYMGR_CONTROL_SHADOWED_OPERATION_VALUE_GENERATE_SW_OUTPUT,.cdi_type=kDifKeymgrSealingCdi, }, GenerateVersionedKeyTestCase{ .dest=kDifKeymgrVersionedKeyDestAes,.exp_dest_sel=KEYMGR_CONTROL_SHADOWED_DEST_SEL_VALUE_AES,.exp_operation=KEYMGR_CONTROL_SHADOWED_OPERATION_VALUE_GENERATE_HW_OUTPUT,.cdi_type=kDifKeymgrSealingCdi, }, GenerateVersionedKeyTestCase{ .dest=kDifKeymgrVersionedKeyDestKmac,.exp_dest_sel=KEYMGR_CONTROL_SHADOWED_DEST_SEL_VALUE_KMAC,.exp_operation=KEYMGR_CONTROL_SHADOWED_OPERATION_VALUE_GENERATE_HW_OUTPUT,.cdi_type=kDifKeymgrSealingCdi, }, GenerateVersionedKeyTestCase{ .dest=kDifKeymgrVersionedKeyDestSw,.exp_dest_sel=KEYMGR_CONTROL_SHADOWED_DEST_SEL_VALUE_NONE,.exp_operation=KEYMGR_CONTROL_SHADOWED_OPERATION_VALUE_GENERATE_SW_OUTPUT,.cdi_type=kDifKeymgrAttestationCdi, }, GenerateVersionedKeyTestCase{ .dest=kDifKeymgrVersionedKeyDestAes,.exp_dest_sel=KEYMGR_CONTROL_SHADOWED_DEST_SEL_VALUE_AES,.exp_operation=KEYMGR_CONTROL_SHADOWED_OPERATION_VALUE_GENERATE_HW_OUTPUT,.cdi_type=kDifKeymgrAttestationCdi, }, GenerateVersionedKeyTestCase{ .dest=kDifKeymgrVersionedKeyDestKmac,.exp_dest_sel=KEYMGR_CONTROL_SHADOWED_DEST_SEL_VALUE_KMAC,.exp_operation=KEYMGR_CONTROL_SHADOWED_OPERATION_VALUE_GENERATE_HW_OUTPUT,.cdi_type=kDifKeymgrAttestationCdi, })) | |
TEST_P (BadArgsTwo, GetBadArg) | |
TEST_P (BadArgsTwo, SetBadArg) | |
TEST_F (SideloadClearTest, Set) | |
TEST_F (SideloadClearTest, Get) | |
TEST_P (BadArgsTwo, ReadOutput) | |
TEST_F (ReadOutputTest, Read) | |
TEST_P (BadArgsTwo, ReadBinding) | |
TEST_F (ReadBindingTest, Read) | |
TEST_P (BadArgsTwo, ReadMaxKeyVersion) | |
TEST_F (ReadMaxKeyVersionTest, Read) | |
struct dif_keymgr_unittest::anonymous_namespace{dif_keymgr_unittest.cc}::GetStatusCodesTestCase |
Definition at line 402 of file dif_keymgr_unittest.cc.
Data Fields | ||
---|---|---|
dif_keymgr_status_codes_t | exp_val |
Expected output of dif_keymgr_get_status_codes() . |
vector< BitField > | reg_val | Values of OP_STATUS or ERR_CODE registers. |
struct dif_keymgr_unittest::anonymous_namespace{dif_keymgr_unittest.cc}::GetStateTestCase |
Definition at line 528 of file dif_keymgr_unittest.cc.
Data Fields | ||
---|---|---|
dif_keymgr_state_t | exp_output |
Expected output of dif_keymgr_get_state() . |
vector< BitField > | reg_val | Value of the WORKING_STATE register. |
struct dif_keymgr_unittest::anonymous_namespace{dif_keymgr_unittest.cc}::GenerateVersionedKeyTestCase |
Definition at line 676 of file dif_keymgr_unittest.cc.
Data Fields | ||
---|---|---|
dif_keymgr_cdi_type_t | cdi_type | Expected CDI_SEL value to be written to the CONTROL register. |
dif_keymgr_versioned_key_dest_t | dest | Destination of the generated key. |
uint32_t | exp_dest_sel | Expected DEST_SEL value to be written to the CONTROL register. |
uint32_t | exp_operation | Expected OPERATION values to be written to the CONTROL register. |
std::vector<T> dif_keymgr_unittest::anonymous_namespace{dif_keymgr_unittest.cc}::CreateEnumVector | ( | T | last | ) |
Returns a vector of values for a given enum type.
Assumes that the values are sequential and the first value is 0. last
must be the last valid value for the given enum and is included in the returned vector.
Definition at line 33 of file dif_keymgr_unittest.cc.
T dif_keymgr_unittest::anonymous_namespace{dif_keymgr_unittest.cc}::GetGoodBadEnumArg | ( | bool | is_good, |
T | last | ||
) |
Returns a valid or invalid value for the given enum type.
last
must be the last valid value of the given enum type and last+1
must be an invalid value.
Definition at line 62 of file dif_keymgr_unittest.cc.
T* dif_keymgr_unittest::anonymous_namespace{dif_keymgr_unittest.cc}::GetGoodBadPtrArg | ( | bool | is_good | ) |
Returns a seemingly valid, i.e.
nonzero, pointer for the given type or a nullptr
.
Definition at line 47 of file dif_keymgr_unittest.cc.