From: Eric Jin <eric.jin@intel.com>
To: edk2-devel@lists.01.org
Cc: Supreeth Venkatesh <supreeth.venkatesh@arm.com>,
Jiaxin Wu <jiaxin.wu@intel.com>
Subject: [PATCH] uefi-sct/SctPkg:Add conformance test cases for deprecated EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS attribute.
Date: Sat, 13 Oct 2018 23:19:36 +0800 [thread overview]
Message-ID: <20181013151936.15784-1-eric.jin@intel.com> (raw)
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
next reply other threads:[~2018-10-13 15:19 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-13 15:19 Eric Jin [this message]
2018-10-15 2:46 ` [PATCH] uefi-sct/SctPkg:Add conformance test cases for deprecated EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS attribute 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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181013151936.15784-1-eric.jin@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox