clear pin failures on wipe and when in debug mode

pull/25/head
Pavol Rusnak 8 years ago
parent d20671b517
commit 46119bd007
No known key found for this signature in database
GPG Key ID: 91F3B339B9A02A3D

@ -241,6 +241,7 @@ void fsm_msgWipeDevice(WipeDevice *msg)
storage_reset();
storage_reset_uuid();
storage_commit();
storage_clearPinArea();
// the following does not work on Mac anyway :-/ Linux/Windows are fine, so it is not needed
// usbReconnect(); // force re-enumeration because of the serial number change
fsm_sendSuccess("Device wiped");

@ -419,6 +419,15 @@ bool session_isPinCached(void)
return sessionPinCached;
}
void storage_clearPinArea()
{
flash_clear_status_flags();
flash_unlock();
flash_erase_sector(FLASH_META_SECTOR_LAST, FLASH_CR_PROGRAM_X32);
flash_lock();
storage_check_flash_errors();
}
void storage_resetPinFails(uint32_t *pinfailsptr)
{
flash_clear_status_flags();

@ -56,6 +56,7 @@ bool storage_hasPin(void);
void storage_setPin(const char *pin);
void session_cachePin(void);
bool session_isPinCached(void);
void storage_clearPinArea(void);
void storage_resetPinFails(uint32_t *pinfailptr);
bool storage_increasePinFails(uint32_t *pinfailptr);
uint32_t *storage_getPinFailsPtr(void);

@ -50,6 +50,7 @@ int main(void)
storage_reset(); // wipe storage if debug link
storage_reset_uuid();
storage_commit();
storage_clearPinArea(); // reset PIN failures if debug link
#endif
oledDrawBitmap(40, 0, &bmp_logo64);

Loading…
Cancel
Save