mirror of https://github.com/acidanthera/audk.git
NetworkPkg/TlsAuthConfigDxe: Use StrToGuid in BaseLib
Cc: Ye Ting <ting.ye@intel.com> Cc: Fu Siyuan <siyuan.fu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Wu Jiaxin <jiaxin.wu@intel.com> Reviewed-by: Ye Ting <ting.ye@intel.com>
This commit is contained in:
parent
a11928f331
commit
f1bbd4e3cc
|
@ -1,7 +1,7 @@
|
||||||
/** @file
|
/** @file
|
||||||
The Miscellaneous Routines for TlsAuthConfigDxe driver.
|
The Miscellaneous Routines for TlsAuthConfigDxe driver.
|
||||||
|
|
||||||
Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||||
|
|
||||||
This program and the accompanying materials
|
This program and the accompanying materials
|
||||||
are licensed and made available under the terms and conditions of the BSD License
|
are licensed and made available under the terms and conditions of the BSD License
|
||||||
|
@ -106,144 +106,6 @@ GuidToString (
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
List all cert in specified database by GUID in the page
|
List all cert in specified database by GUID in the page
|
||||||
for user to select and delete as needed.
|
for user to select and delete as needed.
|
||||||
|
@ -1218,7 +1080,7 @@ UpdatePage(
|
||||||
@retval FALSE Not exit caller function.
|
@retval FALSE Not exit caller function.
|
||||||
**/
|
**/
|
||||||
BOOLEAN
|
BOOLEAN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
UpdateCAFromFile (
|
UpdateCAFromFile (
|
||||||
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
|
IN EFI_DEVICE_PATH_PROTOCOL *FilePath
|
||||||
)
|
)
|
||||||
|
@ -1669,6 +1531,7 @@ TlsAuthConfigAccessCallback (
|
||||||
{
|
{
|
||||||
EFI_INPUT_KEY Key;
|
EFI_INPUT_KEY Key;
|
||||||
EFI_STATUS Status;
|
EFI_STATUS Status;
|
||||||
|
RETURN_STATUS RStatus;
|
||||||
TLS_AUTH_CONFIG_PRIVATE_DATA *Private;
|
TLS_AUTH_CONFIG_PRIVATE_DATA *Private;
|
||||||
UINTN BufferSize;
|
UINTN BufferSize;
|
||||||
TLS_AUTH_CONFIG_IFR_NVDATA *IfrNvData;
|
TLS_AUTH_CONFIG_IFR_NVDATA *IfrNvData;
|
||||||
|
@ -1729,7 +1592,7 @@ TlsAuthConfigAccessCallback (
|
||||||
CleanUpPage (LabelId, Private);
|
CleanUpPage (LabelId, Private);
|
||||||
break;
|
break;
|
||||||
case KEY_TLS_AUTH_CONFIG_ENROLL_CERT_FROM_FILE:
|
case KEY_TLS_AUTH_CONFIG_ENROLL_CERT_FROM_FILE:
|
||||||
ChooseFile( NULL, NULL, UpdateCAFromFile, &File);
|
ChooseFile( NULL, NULL, UpdateCAFromFile, &File);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case KEY_TLS_AUTH_CONFIG_VALUE_SAVE_AND_EXIT:
|
case KEY_TLS_AUTH_CONFIG_VALUE_SAVE_AND_EXIT:
|
||||||
|
@ -1790,12 +1653,12 @@ TlsAuthConfigAccessCallback (
|
||||||
switch (QuestionId) {
|
switch (QuestionId) {
|
||||||
case KEY_TLS_AUTH_CONFIG_CERT_GUID:
|
case KEY_TLS_AUTH_CONFIG_CERT_GUID:
|
||||||
ASSERT (Private->CertGuid != NULL);
|
ASSERT (Private->CertGuid != NULL);
|
||||||
Status = StringToGuid (
|
RStatus = StrToGuid (
|
||||||
IfrNvData->CertGuid,
|
IfrNvData->CertGuid,
|
||||||
StrLen (IfrNvData->CertGuid),
|
Private->CertGuid
|
||||||
Private->CertGuid
|
);
|
||||||
);
|
if (RETURN_ERROR (RStatus) || (IfrNvData->CertGuid[GUID_STRING_LENGTH] != L'\0')) {
|
||||||
if (EFI_ERROR (Status)) {
|
Status = EFI_INVALID_PARAMETER;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue