Vishal Bhoj | 82c8071 | 2015-12-15 21:13:33 +0530 | [diff] [blame^] | 1 | /** @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 |
|
| 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 | }
|