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]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to