]> git.proxmox.com Git - mirror_edk2.git/blob - StdLib/LibC/Uefi/GetPass.c
Add Socket Libraries.
[mirror_edk2.git] / StdLib / LibC / Uefi / GetPass.c
1 /** @file Implement the getpass function.
2
3 Copyright (c) 2011, Intel Corporation <BR>
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 **/
13
14 #include <Library/ShellLib.h>
15 #include <Library/MemoryAllocationLib.h>
16 #include <Library/UefiLib.h>
17 #include <Library/PcdLib.h>
18
19 static CHAR8 *ReturnStringAscii = NULL;
20
21 char *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
47 EFI_STATUS
48 EFIAPI
49 DestructMePlease (
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 }