/** @file | |
Implement the getpass function. | |
Copyright (c) 2011 - 2014, Intel Corporation <BR> | |
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 | |
http://opensource.org/licenses/bsd-license.php | |
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
**/ | |
#include <Library/ShellLib.h> | |
#include <Library/MemoryAllocationLib.h> | |
#include <Library/UefiLib.h> | |
#include <Library/PcdLib.h> | |
static CHAR8 *ReturnStringAscii = NULL; | |
char *getpass(const char *Prompt) | |
{ | |
BOOLEAN Ascii; | |
CHAR16 *ReturnString; | |
Ascii = FALSE; | |
Print(L"%a", Prompt); | |
ReturnString = ShellFileHandleReturnLine (gEfiShellParametersProtocol->StdIn, &Ascii); | |
if (ReturnString == NULL) { | |
return (NULL); | |
} | |
ReturnStringAscii = AllocateZeroPool((StrLen(ReturnString)+1)*sizeof(CHAR8)); | |
if (ReturnStringAscii == NULL) { | |
return (NULL); | |
} | |
UnicodeStrToAsciiStr(ReturnString, ReturnStringAscii); | |
FreePool(ReturnString); | |
return (ReturnStringAscii); | |
} | |
EFI_STATUS | |
EFIAPI | |
DestructMePlease ( | |
IN EFI_HANDLE ImageHandle, | |
IN EFI_SYSTEM_TABLE *SystemTable | |
) | |
{ | |
SHELL_FREE_NON_NULL(ReturnStringAscii); | |
return EFI_SUCCESS; | |
} |