From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (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 1CAE28225B for ; Tue, 21 Feb 2017 20:50:59 -0800 (PST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Feb 2017 20:50:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,192,1484035200"; d="scan'208";a="1100867169" Received: from ray-dev.ccr.corp.intel.com ([10.239.9.25]) by orsmga001.jf.intel.com with ESMTP; 21 Feb 2017 20:50:58 -0800 From: Ruiyu Ni To: edk2-devel@lists.01.org Cc: Jiewen Yao Date: Wed, 22 Feb 2017 12:50:44 +0800 Message-Id: <20170222045047.558308-9-ruiyu.ni@intel.com> X-Mailer: git-send-email 2.9.0.windows.1 In-Reply-To: <20170222045047.558308-1-ruiyu.ni@intel.com> References: <20170222045047.558308-1-ruiyu.ni@intel.com> Subject: [PATCH 08/11] SecurityPkg/SecureBootConfigDxe: Use StrToGuid in BaseLib X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 22 Feb 2017 04:50:59 -0000 Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ruiyu Ni Cc: Jiewen Yao --- .../SecureBootConfigDxe/SecureBootConfigImpl.c | 11 +- .../SecureBootConfigDxe/SecureBootConfigImpl.h | 22 +--- .../SecureBootConfigDxe/SecureBootConfigMisc.c | 141 +-------------------- 3 files changed, 6 insertions(+), 168 deletions(-) diff --git a/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.c b/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.c index 0d96185..9b7d0c1 100644 --- a/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.c +++ b/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.c @@ -1,7 +1,7 @@ /** @file HII Config Access protocol implementation of SecureBoot configuration module. -Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.
+Copyright (c) 2011 - 2017, 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 which accompanies this distribution. The full text of the license may be found at @@ -3636,12 +3636,9 @@ SecureBootCallback ( case KEY_SECURE_BOOT_SIGNATURE_GUID_DBX: case KEY_SECURE_BOOT_SIGNATURE_GUID_DBT: ASSERT (Private->SignatureGUID != NULL); - Status = StringToGuid ( - IfrNvData->SignatureGuid, - StrLen (IfrNvData->SignatureGuid), - Private->SignatureGUID - ); - if (EFI_ERROR (Status)) { + if (RETURN_ERROR (StrToGuid (IfrNvData->SignatureGuid, Private->SignatureGUID)) || + (IfrNvData->SignatureGuid[GUID_STRING_LENGTH] != L'\0')) { + Status = EFI_INVALID_PARAMETER; break; } diff --git a/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.h b/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.h index 5055a9e..aa58c44 100644 --- a/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.h +++ b/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigImpl.h @@ -2,7 +2,7 @@ The header file of HII Config Access protocol implementation of SecureBoot configuration module. -Copyright (c) 2011 - 2016, Intel Corporation. All rights reserved.
+Copyright (c) 2011 - 2017, 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 which accompanies this distribution. The full text of the license may be found at @@ -479,26 +479,6 @@ Int2OctStr ( IN UINTN OSSizeInBytes ); - -/** - Convert a String to Guid Value. - - @param[in] Str Specifies the String to be converted. - @param[in] StrLen Number of Unicode Characters of String (exclusive \0) - @param[out] Guid Return the result Guid value. - - @retval EFI_SUCCESS The operation is finished successfully. - @retval EFI_NOT_FOUND Invalid string. - -**/ -EFI_STATUS -StringToGuid ( - IN CHAR16 *Str, - IN UINTN StrLen, - OUT EFI_GUID *Guid - ); - - /** Worker function that prints an EFI_GUID into specified Buffer. diff --git a/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigMisc.c b/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigMisc.c index a83504e..038707c 100644 --- a/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigMisc.c +++ b/SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigMisc.c @@ -1,7 +1,7 @@ /** @file Helper functions for SecureBoot configuration module. -Copyright (c) 2015, Intel Corporation. All rights reserved.
+Copyright (c) 2015 - 2017, 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 which accompanies this distribution. The full text of the license may be found at @@ -152,145 +152,6 @@ Int2OctStr ( return EFI_SUCCESS; } - - -/** - Convert a String to Guid Value. - - @param[in] Str Specifies the String to be converted. - @param[in] StrLen Number of Unicode Characters of String (exclusive \0) - @param[out] Guid Return the result Guid value. - - @retval EFI_SUCCESS The operation is finished successfully. - @retval EFI_NOT_FOUND Invalid string. - -**/ -EFI_STATUS -StringToGuid ( - IN CHAR16 *Str, - IN UINTN StrLen, - OUT EFI_GUID *Guid - ) -{ - CHAR16 *PtrBuffer; - CHAR16 *PtrPosition; - UINT16 *Buffer; - UINTN Data; - UINTN Index; - UINT16 Digits[3]; - - Buffer = (CHAR16 *) AllocateZeroPool (sizeof (CHAR16) * (StrLen + 1)); - if (Buffer == NULL) { - return EFI_OUT_OF_RESOURCES; - } - - StrCpyS (Buffer, (StrLen + 1), Str); - - // - // Data1 - // - PtrBuffer = Buffer; - PtrPosition = PtrBuffer; - while (*PtrBuffer != L'\0') { - if (*PtrBuffer == L'-') { - break; - } - PtrBuffer++; - } - if (*PtrBuffer == L'\0') { - FreePool (Buffer); - return EFI_NOT_FOUND; - } - - *PtrBuffer = L'\0'; - Data = StrHexToUintn (PtrPosition); - Guid->Data1 = (UINT32)Data; - - // - // Data2 - // - PtrBuffer++; - PtrPosition = PtrBuffer; - while (*PtrBuffer != L'\0') { - if (*PtrBuffer == L'-') { - break; - } - PtrBuffer++; - } - if (*PtrBuffer == L'\0') { - FreePool (Buffer); - return EFI_NOT_FOUND; - } - *PtrBuffer = L'\0'; - Data = StrHexToUintn (PtrPosition); - Guid->Data2 = (UINT16)Data; - - // - // Data3 - // - PtrBuffer++; - PtrPosition = PtrBuffer; - while (*PtrBuffer != L'\0') { - if (*PtrBuffer == L'-') { - break; - } - PtrBuffer++; - } - if (*PtrBuffer == L'\0') { - FreePool (Buffer); - return EFI_NOT_FOUND; - } - *PtrBuffer = L'\0'; - Data = StrHexToUintn (PtrPosition); - Guid->Data3 = (UINT16)Data; - - // - // Data4[0..1] - // - for ( Index = 0 ; Index < 2 ; Index++) { - PtrBuffer++; - if ((*PtrBuffer == L'\0') || ( *(PtrBuffer + 1) == L'\0')) { - FreePool (Buffer); - return EFI_NOT_FOUND; - } - Digits[0] = *PtrBuffer; - PtrBuffer++; - Digits[1] = *PtrBuffer; - Digits[2] = L'\0'; - Data = StrHexToUintn (Digits); - Guid->Data4[Index] = (UINT8)Data; - } - - // - // skip the '-' - // - PtrBuffer++; - if ((*PtrBuffer != L'-' ) || ( *PtrBuffer == L'\0')) { - return EFI_NOT_FOUND; - } - - // - // Data4[2..7] - // - for ( ; Index < 8; Index++) { - PtrBuffer++; - if ((*PtrBuffer == L'\0') || ( *(PtrBuffer + 1) == L'\0')) { - FreePool (Buffer); - return EFI_NOT_FOUND; - } - Digits[0] = *PtrBuffer; - PtrBuffer++; - Digits[1] = *PtrBuffer; - Digits[2] = L'\0'; - Data = StrHexToUintn (Digits); - Guid->Data4[Index] = (UINT8)Data; - } - - FreePool (Buffer); - - return EFI_SUCCESS; -} - /** Worker function that prints an EFI_GUID into specified Buffer. -- 2.9.0.windows.1