See inline comments...
On 9/21/23 11:37 AM, Abhimanyu Singh via groups.io wrote:
SCT spec: https://bugzilla.tianocore.org/show_bug.cgi?id=4374 BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4419 -Implement MemoryOverwriteRequestControlLock Locked with Key State test cases -Add remaining Assertions 33 - 49 from SCT spec -Add Test Case to MemoryOverwriteRequestFunctionTest Cc: G Edhaya Chandran <edhaya.chand...@arm.com> Cc: Barton Gao <gao...@byosoft.com.cn> Cc: Carolyn Gjertsen <carolyn.gjert...@amd.com> Signed-off-by: Abhi Singh <abhi.si...@arm.com> Change-Id: Ifade96b0c6ec9e7f9bfb0eba8ceeb92380271e8b ---
[cut]
+ StandardLib->RecordAssertion ( + StandardLib, + Result, + gTCGMemoryOverwriteRequestTestFunctionAssertionGuid044, + L"MemoryOverwriteRequestControl - SetVariable() returns EFI_ACCESS_DENIED when Lock is Set with no key", + L"%a:%d:Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + + DataSize = sizeof(MemoryOverwriteRequestControlData); + Attributes = TCG_MOR_VARIABLE_ATTRIBUTES; + + Status = gtRT->GetVariable ( + L"MemoryOverwriteRequestControl", // VariableName + &gEfiMemoryOverwriteControlDataGuid, // VendorGuid + &Attributes, // Attributes + &DataSize, // DataSize + &MemoryOverwriteRequestControlData // Data + ); + + // verifying that the variable has not been modified with SetVar + if (MemoryOverwriteRequestControlDataCached == MemoryOverwriteRequestControlData) { + Result = EFI_TEST_ASSERTION_PASSED; + } else { + Result = EFI_TEST_ASSERTION_FAILED; + } + + StandardLib->RecordAssertion ( + StandardLib, + Result, + gTCGMemoryOverwriteRequestTestFunctionAssertionGuid045, + L"MemoryOverwriteRequestControl - SetVariable() value remains unchanged when Lock is Set with no key", + L"%a:%d:Status - %r", + __FILE__, + (UINTN)__LINE__, + Status + ); + + // + // When Locked with an 8 byte Key, SetVariable() with 8 byte key != key used to set + // the lock, in this case 0x11111111, must return EFI_ACCESS_DENIED and lock must + // be updated Locked without key (Data value = 0x01) to prevent dictonary attack + // The invalid key to be used to attempt unlock is = 0x22222222 + // + DataSize = MOR_LOCK_WITH_KEY_SIZE; + Attributes = TCG_MOR_VARIABLE_ATTRIBUTES; + MemoryOverwriteControlLockKeyValue = MOR_LOCK_INVALID_TEST_KEY; //INVALID KEY != 0x11111111
Nit- space after comment char. Thanks, Stuart -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#108967): https://edk2.groups.io/g/devel/message/108967 Mute This Topic: https://groups.io/mt/101504341/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-