From a8c9a4ddc4e61a59aab1e2ed4063f1cd1bdd1fbf Mon Sep 17 00:00:00 2001 From: Tomas Susanka Date: Fri, 26 Jul 2019 16:37:57 +0200 Subject: [PATCH] core/shamir: send boolean flag in Features that Recovery is in progress --- common/protob/messages-management.proto | 1 + core/src/apps/homescreen/__init__.py | 1 + core/src/trezor/messages/Features.py | 3 +++ python/trezorlib/messages/Features.py | 3 +++ 4 files changed, 8 insertions(+) diff --git a/common/protob/messages-management.proto b/common/protob/messages-management.proto index 47905dec4..dddd91b32 100644 --- a/common/protob/messages-management.proto +++ b/common/protob/messages-management.proto @@ -57,6 +57,7 @@ message Features { optional bytes fw_vendor_keys = 26; // reported firmware vendor keys (their hash) optional bool unfinished_backup = 27; // report unfinished backup (equals to Storage.unfinished_backup) optional bool no_backup = 28; // report no backup (equals to Storage.no_backup) + optional bool recovery_mode = 29; // is recovery mode in progress } /** diff --git a/core/src/apps/homescreen/__init__.py b/core/src/apps/homescreen/__init__.py index 37e9fad33..ae82826e7 100644 --- a/core/src/apps/homescreen/__init__.py +++ b/core/src/apps/homescreen/__init__.py @@ -35,6 +35,7 @@ def get_features() -> Features: f.unfinished_backup = storage.device.unfinished_backup() f.no_backup = storage.device.no_backup() f.flags = storage.device.get_flags() + f.recovery_mode = storage.recovery.is_in_progress() return f diff --git a/core/src/trezor/messages/Features.py b/core/src/trezor/messages/Features.py index 9cacc2e6b..e5808b428 100644 --- a/core/src/trezor/messages/Features.py +++ b/core/src/trezor/messages/Features.py @@ -41,6 +41,7 @@ class Features(p.MessageType): fw_vendor_keys: bytes = None, unfinished_backup: bool = None, no_backup: bool = None, + recovery_mode: bool = None, ) -> None: self.vendor = vendor self.major_version = major_version @@ -69,6 +70,7 @@ class Features(p.MessageType): self.fw_vendor_keys = fw_vendor_keys self.unfinished_backup = unfinished_backup self.no_backup = no_backup + self.recovery_mode = recovery_mode @classmethod def get_fields(cls) -> Dict: @@ -100,4 +102,5 @@ class Features(p.MessageType): 26: ('fw_vendor_keys', p.BytesType, 0), 27: ('unfinished_backup', p.BoolType, 0), 28: ('no_backup', p.BoolType, 0), + 29: ('recovery_mode', p.BoolType, 0), } diff --git a/python/trezorlib/messages/Features.py b/python/trezorlib/messages/Features.py index 3053efede..ea95a5cfd 100644 --- a/python/trezorlib/messages/Features.py +++ b/python/trezorlib/messages/Features.py @@ -41,6 +41,7 @@ class Features(p.MessageType): fw_vendor_keys: bytes = None, unfinished_backup: bool = None, no_backup: bool = None, + recovery_mode: bool = None, ) -> None: self.vendor = vendor self.major_version = major_version @@ -69,6 +70,7 @@ class Features(p.MessageType): self.fw_vendor_keys = fw_vendor_keys self.unfinished_backup = unfinished_backup self.no_backup = no_backup + self.recovery_mode = recovery_mode @classmethod def get_fields(cls) -> Dict: @@ -100,4 +102,5 @@ class Features(p.MessageType): 26: ('fw_vendor_keys', p.BytesType, 0), 27: ('unfinished_backup', p.BoolType, 0), 28: ('no_backup', p.BoolType, 0), + 29: ('recovery_mode', p.BoolType, 0), }