mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-22 23:48:12 +00:00
firmware: introduce protectAbortedByCancel
This commit is contained in:
parent
49d9fe4d13
commit
df0bad4f09
@ -114,6 +114,9 @@ void fsm_sendFailureDebug(FailureType code, const char *text, const char *source
|
||||
void fsm_sendFailure(FailureType code, const char *text)
|
||||
#endif
|
||||
{
|
||||
if (protectAbortedByCancel) {
|
||||
protectAbortedByCancel = false;
|
||||
}
|
||||
if (protectAbortedByInitialize) {
|
||||
fsm_msgInitialize((Initialize *)0);
|
||||
protectAbortedByInitialize = false;
|
||||
@ -230,7 +233,7 @@ static bool fsm_layoutAddress(const char *address, const char *desc, bool ignore
|
||||
if (protectButton(ButtonRequestType_ButtonRequest_Address, false)) {
|
||||
return true;
|
||||
}
|
||||
if (protectAbortedByInitialize) {
|
||||
if (protectAbortedByCancel || protectAbortedByInitialize) {
|
||||
fsm_sendFailure(FailureType_Failure_ActionCancelled, NULL);
|
||||
layoutHome();
|
||||
return false;
|
||||
|
@ -34,6 +34,7 @@
|
||||
|
||||
#define MAX_WRONG_PINS 15
|
||||
|
||||
bool protectAbortedByCancel = false;
|
||||
bool protectAbortedByInitialize = false;
|
||||
|
||||
bool protectButton(ButtonRequestType type, bool confirm_only)
|
||||
@ -77,9 +78,8 @@ bool protectButton(ButtonRequestType type, bool confirm_only)
|
||||
|
||||
// check for Cancel / Initialize
|
||||
if (msg_tiny_id == MessageType_MessageType_Cancel || msg_tiny_id == MessageType_MessageType_Initialize) {
|
||||
if (msg_tiny_id == MessageType_MessageType_Initialize) {
|
||||
protectAbortedByInitialize = true;
|
||||
}
|
||||
protectAbortedByCancel = (msg_tiny_id == MessageType_MessageType_Cancel);
|
||||
protectAbortedByInitialize = (msg_tiny_id == MessageType_MessageType_Initialize);
|
||||
msg_tiny_id = 0xFFFF;
|
||||
result = false;
|
||||
break;
|
||||
@ -130,9 +130,8 @@ const char *requestPin(PinMatrixRequestType type, const char *text)
|
||||
}
|
||||
if (msg_tiny_id == MessageType_MessageType_Cancel || msg_tiny_id == MessageType_MessageType_Initialize) {
|
||||
pinmatrix_done(0);
|
||||
if (msg_tiny_id == MessageType_MessageType_Initialize) {
|
||||
protectAbortedByInitialize = true;
|
||||
}
|
||||
protectAbortedByCancel = (msg_tiny_id == MessageType_MessageType_Cancel);
|
||||
protectAbortedByInitialize = (msg_tiny_id == MessageType_MessageType_Initialize);
|
||||
msg_tiny_id = 0xFFFF;
|
||||
usbTiny(0);
|
||||
return 0;
|
||||
@ -182,6 +181,7 @@ bool protectPin(bool use_cached)
|
||||
// wait one second
|
||||
usbSleep(1000);
|
||||
if (msg_tiny_id == MessageType_MessageType_Initialize) {
|
||||
protectAbortedByCancel = false;
|
||||
protectAbortedByInitialize = true;
|
||||
msg_tiny_id = 0xFFFF;
|
||||
usbTiny(0);
|
||||
@ -263,9 +263,8 @@ bool protectPassphrase(void)
|
||||
break;
|
||||
}
|
||||
if (msg_tiny_id == MessageType_MessageType_Cancel || msg_tiny_id == MessageType_MessageType_Initialize) {
|
||||
if (msg_tiny_id == MessageType_MessageType_Initialize) {
|
||||
protectAbortedByInitialize = true;
|
||||
}
|
||||
protectAbortedByCancel = (msg_tiny_id == MessageType_MessageType_Cancel);
|
||||
protectAbortedByInitialize = (msg_tiny_id == MessageType_MessageType_Initialize);
|
||||
msg_tiny_id = 0xFFFF;
|
||||
result = false;
|
||||
break;
|
||||
|
@ -28,6 +28,7 @@ bool protectPin(bool use_cached);
|
||||
bool protectChangePin(void);
|
||||
bool protectPassphrase(void);
|
||||
|
||||
extern bool protectAbortedByCancel;
|
||||
extern bool protectAbortedByInitialize;
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user