Cc: Supreeth Venkatesh <supreeth.venkat...@arm.com>
Cc: Jiaxin Wu <jiaxin...@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Eric Jin <eric....@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 \