blob: 46511e39a2028c98cbb1e93a6aa64dae24a14e8c [file] [log] [blame]
Vishal Bhoj82c80712015-12-15 21:13:33 +05301/** @file
2 Implement the getpass function.
3
4 Copyright (c) 2011 - 2014, Intel Corporation <BR>
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12**/
13
14#include <Library/ShellLib.h>
15#include <Library/MemoryAllocationLib.h>
16#include <Library/UefiLib.h>
17#include <Library/PcdLib.h>
18
19static CHAR8 *ReturnStringAscii = NULL;
20
21char *getpass(const char *Prompt)
22{
23 BOOLEAN Ascii;
24 CHAR16 *ReturnString;
25
26 Ascii = FALSE;
27
28 Print(L"%a", Prompt);
29
30 ReturnString = ShellFileHandleReturnLine (gEfiShellParametersProtocol->StdIn, &Ascii);
31 if (ReturnString == NULL) {
32 return (NULL);
33 }
34
35 ReturnStringAscii = AllocateZeroPool((StrLen(ReturnString)+1)*sizeof(CHAR8));
36 if (ReturnStringAscii == NULL) {
37 return (NULL);
38 }
39
40 UnicodeStrToAsciiStr(ReturnString, ReturnStringAscii);
41
42 FreePool(ReturnString);
43
44 return (ReturnStringAscii);
45}
46
47EFI_STATUS
48EFIAPI
49DestructMePlease (
50 IN EFI_HANDLE ImageHandle,
51 IN EFI_SYSTEM_TABLE *SystemTable
52 )
53{
54 SHELL_FREE_NON_NULL(ReturnStringAscii);
55
56 return EFI_SUCCESS;
57}