public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH] uefi-sct/SctPkg:Add conformance test cases for deprecated EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS attribute.
@ 2018-10-13 15:19 Eric Jin
  2018-10-15  2:46 ` Supreeth Venkatesh
  2018-10-16  2:28 ` Leif Lindholm
  0 siblings, 2 replies; 6+ messages in thread
From: Eric Jin @ 2018-10-13 15:19 UTC (permalink / raw)
  To: edk2-devel; +Cc: Supreeth Venkatesh, Jiaxin Wu

Cc: Supreeth Venkatesh <supreeth.venkatesh@arm.com>
Cc: Jiaxin Wu <jiaxin.wu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Eric Jin <eric.jin@intel.com>
---
 .../AuthVariableServicesBBTestConformance.c   | 143 ++++++++++++++----
 .../VariableServices/BlackBoxTest/Guid.c      |   6 +-
 .../VariableServices/BlackBoxTest/Guid.h      |  11 +-
 3 files changed, 132 insertions(+), 28 deletions(-)

diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/AuthVariableServicesBBTestConformance.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/AuthVariableServicesBBTestConformance.c
index 05281054..a1d1c4c3 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/AuthVariableServicesBBTestConformance.c
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/AuthVariableServicesBBTestConformance.c
@@ -1,7 +1,7 @@
 /** @file
 
   Copyright 2006 - 2012 Unified EFI, Inc.<BR>
-  Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -151,6 +151,44 @@ AuthVariableDERConfTest (
   EFI_TEST_LOGGING_LIBRARY_PROTOCOL   *LoggingLib;
   UINT32                              Attr;
   EFI_TEST_ASSERTION                  Result;
+  UINTN                               Index;
+  UINTN                               MaximumVariableStorageSize;
+  UINTN                               RemainingVariableStorageSize;
+  UINTN                               MaximumVariableSize;
+  UINT32                              AttrArray[] = {
+    //
+    //  For 1 attribute.
+    //
+    EFI_VARIABLE_NON_VOLATILE,
+    EFI_VARIABLE_RUNTIME_ACCESS,
+    EFI_VARIABLE_BOOTSERVICE_ACCESS,
+    EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS,
+
+    //
+    //  For 2 attributes.
+    //
+    EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_RUNTIME_ACCESS,
+    EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,
+    EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS,
+
+    EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS,
+    EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS,
+
+    EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS,
+
+    //
+    //  For 3 attributes.
+    //
+    EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS,
+    EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS,
+    EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS,
+    EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS,
+
+    //
+    //  For 4 attributes.
+    //
+    EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_RUNTIME_ACCESS | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS,
+  };
 
   Status = GetTestSupportLibrary (
              SupportHandle,
@@ -192,33 +230,86 @@ AuthVariableDERConfTest (
                  Status
                  );
 
-  Attr = EFI_VARIABLE_NON_VOLATILE | 
-         EFI_VARIABLE_RUNTIME_ACCESS | 
-         EFI_VARIABLE_BOOTSERVICE_ACCESS |
-         EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS;
+  for (Index = 0; Index < sizeof (AttrArray) / sizeof (AttrArray[0]); Index = Index + 1) {
+    Attr = AttrArray[Index];
+    Attr |= EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS;
+
+    Status = RT->SetVariable (
+                   L"AuthVarDER",
+                   &mVarVendorGuid,
+                   Attr,
+                   sizeof (mValidAuthVarDERCreate),
+                   (VOID *) mValidAuthVarDERCreate
+                   );
+    if (Status == EFI_UNSUPPORTED) {
+      Result = EFI_TEST_ASSERTION_PASSED;
+    } else {
+      Result = EFI_TEST_ASSERTION_FAILED;
+    }
+
+    StandardLib->RecordAssertion (
+                   StandardLib,
+                   Result,
+                   gVariableServicesBbTestConformanceAssertionGuid020,
+                   L"RT.SetVariable - Set Auth Variable with valid cert.",
+                   L"Attributes = Array[%d]. %a:%d:Status - %r",
+                   Index,
+                   __FILE__,
+                   (UINTN)__LINE__,
+                   Status
+                   );
+
+    Status = RT->SetVariable (
+                   L"AuthVarDER",
+                   &mVarVendorGuid,
+                   Attr,
+                   sizeof (mInvalidAuthVarDERCreate),
+                   (VOID *) mInvalidAuthVarDERCreate
+                   );
+    if (Status == EFI_UNSUPPORTED) {
+      Result = EFI_TEST_ASSERTION_PASSED;
+    } else {
+      Result = EFI_TEST_ASSERTION_FAILED;
+    }
+
+    StandardLib->RecordAssertion (
+                   StandardLib,
+                   Result,
+                   gVariableServicesBbTestConformanceAssertionGuid023,
+                   L"RT.SetVariable - Set Auth Variable with invalid cert.",
+                   L"Attributes = Array[%d]. %a:%d:Status - %r",
+                   Index,
+                   __FILE__,
+                   (UINTN)__LINE__,
+                   Status
+                   );
+
+    Status = RT->QueryVariableInfo (
+                   Attr,
+                   &MaximumVariableStorageSize,
+                   &RemainingVariableStorageSize,
+                   &MaximumVariableSize
+                   );
+
+    if (Status == EFI_UNSUPPORTED) {
+      Result = EFI_TEST_ASSERTION_PASSED;
+    } else {
+      Result = EFI_TEST_ASSERTION_FAILED;
+    }
+
+    StandardLib->RecordAssertion (
+                   StandardLib,
+                   Result,
+                   gVariableServicesBbTestConformanceAssertionGuid024,
+                   L"RT.QueryVariableInfo - Query Auth Variable.",
+                   L"Attributes = Array[%d]. %a:%d:Status - %r",
+                   Index,
+                   __FILE__,
+                   (UINTN)__LINE__,
+                   Status
+                   );
 
-  Status = RT->SetVariable(
-                 L"AuthVarDER", 
-                 &mVarVendorGuid, 
-                 Attr, 
-                 sizeof(mValidAuthVarDERCreate), 
-                 (VOID*) mValidAuthVarDERCreate
-                 );
-  if (Status == EFI_SECURITY_VIOLATION) {
-    Result = EFI_TEST_ASSERTION_PASSED;
-  } else {
-    Result = EFI_TEST_ASSERTION_FAILED;
   }
-  StandardLib->RecordAssertion (
-                 StandardLib,
-                 Result,
-                 gVariableServicesBbTestConformanceAssertionGuid020,
-                 L"RT.SetVariable - Set Auth Variable with invalid Attr",
-                 L"%a:%d:Status - %r",
-                 __FILE__,
-                 (UINTN)__LINE__,
-                 Status
-                 );
 
   return EFI_SUCCESS;
 }
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/Guid.c b/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/Guid.c
index 6e14012a..4bbbb6e8 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/Guid.c
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/Guid.c
@@ -1,7 +1,7 @@
 /** @file
 
   Copyright 2006 - 2016 Unified EFI, Inc.<BR>
-  Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -84,6 +84,10 @@ EFI_GUID gVariableServicesBbTestConformanceAssertionGuid021 = EFI_TEST_VARIABLES
 
 EFI_GUID gVariableServicesBbTestConformanceAssertionGuid022 = EFI_TEST_VARIABLESERVICESBBTESTCONFORMANCE_ASSERTION_022_GUID;
 
+EFI_GUID gVariableServicesBbTestConformanceAssertionGuid023 = EFI_TEST_VARIABLESERVICESBBTESTCONFORMANCE_ASSERTION_023_GUID;
+
+EFI_GUID gVariableServicesBbTestConformanceAssertionGuid024 = EFI_TEST_VARIABLESERVICESBBTESTCONFORMANCE_ASSERTION_024_GUID;
+
 EFI_GUID gVariableServicesBbTestFunctionAssertionGuid001 = EFI_TEST_VARIABLESERVICESBBTESTFUNCTION_ASSERTION_001_GUID;
 
 EFI_GUID gVariableServicesBbTestFunctionAssertionGuid002 = EFI_TEST_VARIABLESERVICESBBTESTFUNCTION_ASSERTION_002_GUID;
diff --git a/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/Guid.h b/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/Guid.h
index 1d213905..4e43fbc9 100644
--- a/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/Guid.h
+++ b/uefi-sct/SctPkg/TestCase/UEFI/EFI/RuntimeServices/VariableServices/BlackBoxTest/Guid.h
@@ -1,7 +1,7 @@
 /** @file
 
   Copyright 2006 - 2016 Unified EFI, Inc.<BR>
-  Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
 
   This program and the accompanying materials
   are licensed and made available under the terms and conditions of the BSD License
@@ -167,6 +167,15 @@ extern EFI_GUID gVariableServicesBbTestConformanceAssertionGuid021;
 
 extern EFI_GUID gVariableServicesBbTestConformanceAssertionGuid022;
 
+#define EFI_TEST_VARIABLESERVICESBBTESTCONFORMANCE_ASSERTION_023_GUID \
+{ 0x55af8fad, 0x1b12, 0x45ad, { 0xb0, 0x42, 0xa6, 0x43, 0x96, 0x2f, 0x4, 0x70 }}
+
+extern EFI_GUID gVariableServicesBbTestConformanceAssertionGuid023;
+
+#define EFI_TEST_VARIABLESERVICESBBTESTCONFORMANCE_ASSERTION_024_GUID \
+{ 0x6d0740fb, 0x388a, 0x491f, { 0xb8, 0x18, 0x9b, 0x5c, 0xb5, 0x17, 0xf, 0x95 }}
+
+extern EFI_GUID gVariableServicesBbTestConformanceAssertionGuid024;
 
 
 #define EFI_TEST_VARIABLESERVICESBBTESTFUNCTION_ASSERTION_001_GUID \
-- 
2.18.0.windows.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-10-26 11:50 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-13 15:19 [PATCH] uefi-sct/SctPkg:Add conformance test cases for deprecated EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS attribute Eric Jin
2018-10-15  2:46 ` Supreeth Venkatesh
2018-10-15 13:09   ` Supreeth Venkatesh
2018-10-16  2:28 ` Leif Lindholm
2018-10-17 12:04   ` Laszlo Ersek
2018-10-26 11:50     ` Leif Lindholm

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox