Windows Bootloader: Protect password/PIM length by filling the fields to their maximum length with '*' after ENTER is hit

This commit is contained in:
Mounir IDRASSI 2015-10-14 23:07:33 +02:00
parent 225acf4a22
commit 19483d2097
2 changed files with 22 additions and 4 deletions

View File

@ -17,7 +17,7 @@
#include "BootDefs.h"
// The user will be advised to upgrade the rescue disk if upgrading from the following or any previous version
#define TC_RESCUE_DISK_UPGRADE_NOTICE_MAX_VERSION 0x0113
#define TC_RESCUE_DISK_UPGRADE_NOTICE_MAX_VERSION 0x0116
#define TC_BOOT_LOADER_AREA_SIZE (TC_BOOT_LOADER_AREA_SECTOR_COUNT * TC_SECTOR_SIZE_BIOS)

View File

@ -168,10 +168,19 @@ static byte AskPassword (Password &password, int& pim)
switch (scanCode)
{
case TC_BIOS_KEY_ENTER:
password.Length = pos;
if (hidePassword)
{
while (pos < MAX_PASSWORD)
{
PrintChar ('*');
pos++;
}
}
ClearBiosKeystrokeBuffer();
PrintEndl();
password.Length = pos;
break;
case TC_BIOS_KEY_BACKSPACE:
@ -228,9 +237,18 @@ static byte AskPassword (Password &password, int& pim)
switch (scanCode)
{
case TC_BIOS_KEY_ENTER:
if (hidePassword)
{
while (pos < MAX_PIM)
{
PrintChar ('*');
pos++;
}
}
ClearBiosKeystrokeBuffer();
PrintEndl();
return TC_BIOS_KEY_ENTER;
case TC_BIOS_KEY_BACKSPACE: