From e95a97f281a3a6624124cc2476ffc8b647fda0a8 Mon Sep 17 00:00:00 2001 From: Tomas Susanka Date: Wed, 24 Jul 2019 12:35:37 +0200 Subject: [PATCH] common/protobuf: set mnemonic as repeated in LoadDevice for SLIP-39 support --- common/protob/messages-management.proto | 2 +- core/src/trezor/messages/LoadDevice.py | 6 +++--- python/trezorlib/messages/LoadDevice.py | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/common/protob/messages-management.proto b/common/protob/messages-management.proto index d6008a5da..47905dec4 100644 --- a/common/protob/messages-management.proto +++ b/common/protob/messages-management.proto @@ -165,7 +165,7 @@ message WipeDevice { * @next Failure */ message LoadDevice { - optional string mnemonic = 1; // seed encoded as BIP-39 mnemonic (12, 18 or 24 words) + repeated string mnemonics = 1; // seed encoded as mnemonic (12, 18 or 24 words for BIP39, 20 or 33 for SLIP39) optional hw.trezor.messages.common.HDNodeType node = 2; // BIP-32 node optional string pin = 3; // set PIN protection optional bool passphrase_protection = 4; // enable master node encryption using passphrase diff --git a/core/src/trezor/messages/LoadDevice.py b/core/src/trezor/messages/LoadDevice.py index 285951745..936ae0b99 100644 --- a/core/src/trezor/messages/LoadDevice.py +++ b/core/src/trezor/messages/LoadDevice.py @@ -16,7 +16,7 @@ class LoadDevice(p.MessageType): def __init__( self, - mnemonic: str = None, + mnemonics: List[str] = None, node: HDNodeType = None, pin: str = None, passphrase_protection: bool = None, @@ -25,7 +25,7 @@ class LoadDevice(p.MessageType): skip_checksum: bool = None, u2f_counter: int = None, ) -> None: - self.mnemonic = mnemonic + self.mnemonics = mnemonics if mnemonics is not None else [] self.node = node self.pin = pin self.passphrase_protection = passphrase_protection @@ -37,7 +37,7 @@ class LoadDevice(p.MessageType): @classmethod def get_fields(cls) -> Dict: return { - 1: ('mnemonic', p.UnicodeType, 0), + 1: ('mnemonics', p.UnicodeType, p.FLAG_REPEATED), 2: ('node', HDNodeType, 0), 3: ('pin', p.UnicodeType, 0), 4: ('passphrase_protection', p.BoolType, 0), diff --git a/python/trezorlib/messages/LoadDevice.py b/python/trezorlib/messages/LoadDevice.py index 70b894ed3..db283519b 100644 --- a/python/trezorlib/messages/LoadDevice.py +++ b/python/trezorlib/messages/LoadDevice.py @@ -16,7 +16,7 @@ class LoadDevice(p.MessageType): def __init__( self, - mnemonic: str = None, + mnemonics: List[str] = None, node: HDNodeType = None, pin: str = None, passphrase_protection: bool = None, @@ -25,7 +25,7 @@ class LoadDevice(p.MessageType): skip_checksum: bool = None, u2f_counter: int = None, ) -> None: - self.mnemonic = mnemonic + self.mnemonics = mnemonics if mnemonics is not None else [] self.node = node self.pin = pin self.passphrase_protection = passphrase_protection @@ -37,7 +37,7 @@ class LoadDevice(p.MessageType): @classmethod def get_fields(cls) -> Dict: return { - 1: ('mnemonic', p.UnicodeType, 0), + 1: ('mnemonics', p.UnicodeType, p.FLAG_REPEATED), 2: ('node', HDNodeType, 0), 3: ('pin', p.UnicodeType, 0), 4: ('passphrase_protection', p.BoolType, 0),