37 struct termios OldTtyAttrs, NewTtyAttrs;
39 tcgetattr (STDIN_FILENO, &OldTtyAttrs);
40 NewTtyAttrs = OldTtyAttrs;
41 NewTtyAttrs.c_lflag = NewTtyAttrs.c_lflag & ~(ICANON|ECHO);
42 tcsetattr (STDIN_FILENO, TCSANOW, &NewTtyAttrs);
44 tcsetattr (STDIN_FILENO, TCSANOW, &OldTtyAttrs);
63 printf (
"Please enter your password: ");
74 if ((Char == EOF) || (Char == CHAR_LINEFEED) || (Char == CHAR_CARRIAGE_RETURN)) {
75 Password[PasswordLen] =
'\0';
79 if ((Char == CHAR_BACKSPACE) || (Char ==
CHAR_DELETE)) {
80 if (PasswordLen > 0) {
87 Password[PasswordLen] = (UINT8)Char;
90 for (Index = 0; Index <
ARRAY_SIZE (Salt); ++Index) {
102 printf (
"\nPasswordHash: <");
103 for (Index = 0; Index <
sizeof (PasswordHash); ++Index) {
104 printf (
"%02x", PasswordHash[Index]);
107 printf (
">\nPasswordSalt: <");
108 for (Index = 0; Index <
sizeof (Salt); ++Index) {
109 printf (
"%02x", ((UINT8 *)Salt)[Index]);