Skip PIN verification after a MCU reboot on A9LH

This commit is contained in:
Aurora 2016-08-29 15:57:32 +02:00
parent 8209433696
commit 18bd4bbcf6
3 changed files with 44 additions and 41 deletions

View File

@ -129,7 +129,7 @@ void main(void)
//Boot options aren't being forced //Boot options aren't being forced
if(needConfig != DONT_CONFIGURE) if(needConfig != DONT_CONFIGURE)
{ {
bool pinExists = CONFIG(8) && verifyPin(); bool pinExists = CONFIG(8) && verifyPin(isA9lh && CFG_BOOTENV);
//If no configuration file exists or SELECT is held, load configuration menu //If no configuration file exists or SELECT is held, load configuration menu
bool shouldLoadConfigMenu = needConfig == CREATE_CONFIGURATION || ((pressed & BUTTON_SELECT) && !(pressed & BUTTON_L1)); bool shouldLoadConfigMenu = needConfig == CREATE_CONFIGURATION || ((pressed & BUTTON_SELECT) && !(pressed & BUTTON_L1));

View File

@ -103,7 +103,7 @@ void newPin(bool allowSkipping)
} }
} }
bool verifyPin(void) bool verifyPin(bool skipVerification)
{ {
initScreens(); initScreens();
@ -123,6 +123,8 @@ bool verifyPin(void)
//Test vector verification (SD card has, or hasn't been used on another console) //Test vector verification (SD card has, or hasn't been used on another console)
if(memcmp(pin.testHash, tmp, 32) != 0) return false; if(memcmp(pin.testHash, tmp, 32) != 0) return false;
if(!skipVerification)
{
//Pad to AES block length with zeroes //Pad to AES block length with zeroes
u8 __attribute__((aligned(4))) enteredPassword[16 * ((PIN_LENGTH + 15) / 16)] = {0}; u8 __attribute__((aligned(4))) enteredPassword[16 * ((PIN_LENGTH + 15) / 16)] = {0};
@ -171,6 +173,7 @@ bool verifyPin(void)
} }
} }
} }
}
return true; return true;
} }

View File

@ -44,4 +44,4 @@ typedef struct __attribute__((packed))
} PINData; } PINData;
void newPin(bool allowSkipping); void newPin(bool allowSkipping);
bool verifyPin(void); bool verifyPin(bool skipVerification);