From b5c9f573b29e8b403b7de3ed703bcd3d816788c5 Mon Sep 17 00:00:00 2001 From: Andrew Kozlik Date: Fri, 4 Feb 2022 18:35:21 +0100 Subject: [PATCH] feat(legacy): Show "signature is valid" dialog when VerifyMessage succeeds. --- legacy/firmware/.changelog.d/1880.added | 1 + legacy/firmware/fsm_msg_coin.h | 8 ++++++++ legacy/firmware/fsm_msg_ethereum.h | 8 ++++++++ tests/device_tests/test_protection_levels.py | 1 + 4 files changed, 18 insertions(+) create mode 100644 legacy/firmware/.changelog.d/1880.added diff --git a/legacy/firmware/.changelog.d/1880.added b/legacy/firmware/.changelog.d/1880.added new file mode 100644 index 000000000..69c3a8fca --- /dev/null +++ b/legacy/firmware/.changelog.d/1880.added @@ -0,0 +1 @@ +Show "signature is valid" dialog when VerifyMessage succeeds. diff --git a/legacy/firmware/fsm_msg_coin.h b/legacy/firmware/fsm_msg_coin.h index 9f246a3b6..b24cb379f 100644 --- a/legacy/firmware/fsm_msg_coin.h +++ b/legacy/firmware/fsm_msg_coin.h @@ -343,6 +343,14 @@ void fsm_msgVerifyMessage(const VerifyMessage *msg) { return; } + layoutDialogSwipe(&bmp_icon_ok, NULL, _("Continue"), NULL, NULL, + _("The signature is valid."), NULL, NULL, NULL, NULL); + if (!protectButton(ButtonRequestType_ButtonRequest_Other, true)) { + fsm_sendFailure(FailureType_Failure_ActionCancelled, NULL); + layoutHome(); + return; + } + fsm_sendSuccess(_("Message verified")); } else { fsm_sendFailure(FailureType_Failure_DataError, _("Invalid signature")); diff --git a/legacy/firmware/fsm_msg_ethereum.h b/legacy/firmware/fsm_msg_ethereum.h index 226dbb26e..43337f92d 100644 --- a/legacy/firmware/fsm_msg_ethereum.h +++ b/legacy/firmware/fsm_msg_ethereum.h @@ -204,6 +204,14 @@ void fsm_msgEthereumVerifyMessage(const EthereumVerifyMessage *msg) { return; } + layoutDialogSwipe(&bmp_icon_ok, NULL, _("Continue"), NULL, NULL, + _("The signature is valid."), NULL, NULL, NULL, NULL); + if (!protectButton(ButtonRequestType_ButtonRequest_Other, true)) { + fsm_sendFailure(FailureType_Failure_ActionCancelled, NULL); + layoutHome(); + return; + } + fsm_sendSuccess(_("Message verified")); layoutHome(); diff --git a/tests/device_tests/test_protection_levels.py b/tests/device_tests/test_protection_levels.py index 95e8b7707..378478583 100644 --- a/tests/device_tests/test_protection_levels.py +++ b/tests/device_tests/test_protection_levels.py @@ -300,6 +300,7 @@ def test_verify_message_t1(client: Client): with client: client.set_expected_responses( [ + messages.ButtonRequest, messages.ButtonRequest, messages.ButtonRequest, messages.Success,