From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.20; helo=mga02.intel.com; envelope-from=eric.jin@intel.com; receiver=edk2-devel@lists.01.org Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 5DD3E21173C74 for ; Sat, 13 Oct 2018 08:19:55 -0700 (PDT) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Oct 2018 08:19:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,377,1534834800"; d="scan'208";a="99969397" Received: from jjin9-mobl.ccr.corp.intel.com ([10.249.168.56]) by orsmga002.jf.intel.com with ESMTP; 13 Oct 2018 08:19:53 -0700 From: Eric Jin To: edk2-devel@lists.01.org Cc: Supreeth Venkatesh , Jiaxin Wu Date: Sat, 13 Oct 2018 23:19:36 +0800 Message-Id: <20181013151936.15784-1-eric.jin@intel.com> X-Mailer: git-send-email 2.18.0.windows.1 Subject: [PATCH] uefi-sct/SctPkg:Add conformance test cases for deprecated EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS attribute. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 13 Oct 2018 15:19:55 -0000 Cc: Supreeth Venkatesh Cc: Jiaxin Wu Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Eric Jin --- .../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.
- Copyright (c) 2010 - 2012, Intel Corporation. All rights reserved.
+ Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.
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.
- Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.
+ Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.
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.
- Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.
+ Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.
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