mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-25 07:48:10 +00:00
common: add {needs,no}_backup flags to LoadDevice, make it debug only
This commit is contained in:
parent
0a0cd797e3
commit
16af7f1353
@ -223,6 +223,8 @@ message LoadDevice {
|
||||
optional string label = 6; // device label
|
||||
optional bool skip_checksum = 7; // do not test mnemonic for valid BIP-39 checksum
|
||||
optional uint32 u2f_counter = 8; // U2F counter
|
||||
optional bool needs_backup = 9; // set "needs backup" flag
|
||||
optional bool no_backup = 10; // indicate that no backup is going to be made
|
||||
}
|
||||
|
||||
/**
|
||||
@ -232,17 +234,16 @@ message LoadDevice {
|
||||
* @next Failure
|
||||
*/
|
||||
message ResetDevice {
|
||||
optional bool display_random = 1; // display entropy generated by the device before asking for additional entropy
|
||||
optional uint32 strength = 2 [default=256]; // strength of seed in bits
|
||||
optional bool passphrase_protection = 3; // enable master node encryption using passphrase
|
||||
optional bool pin_protection = 4; // enable PIN protection
|
||||
optional string language = 5 [default='english']; // device language
|
||||
optional string label = 6; // device label
|
||||
optional uint32 u2f_counter = 7; // U2F counter
|
||||
optional bool skip_backup = 8; // postpone seed backup to BackupDevice workflow
|
||||
optional bool no_backup = 9; // indicate that no backup is going to be made
|
||||
// type of the mnemonic backup
|
||||
optional BackupType backup_type = 10 [default=Bip39];
|
||||
optional bool display_random = 1; // display entropy generated by the device before asking for additional entropy
|
||||
optional uint32 strength = 2 [default=256]; // strength of seed in bits
|
||||
optional bool passphrase_protection = 3; // enable master node encryption using passphrase
|
||||
optional bool pin_protection = 4; // enable PIN protection
|
||||
optional string language = 5 [default='english']; // device language
|
||||
optional string label = 6; // device label
|
||||
optional uint32 u2f_counter = 7; // U2F counter
|
||||
optional bool skip_backup = 8; // postpone seed backup to BackupDevice workflow
|
||||
optional bool no_backup = 9; // indicate that no backup is going to be made
|
||||
optional BackupType backup_type = 10 [default=Bip39]; // type of the mnemonic backup
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -37,7 +37,10 @@ async def load_device(ctx, msg):
|
||||
storage.device.set_slip39_iteration_exponent(iteration_exponent)
|
||||
|
||||
storage.device.store_mnemonic_secret(
|
||||
secret, backup_type, needs_backup=True, no_backup=False
|
||||
secret,
|
||||
backup_type,
|
||||
needs_backup=msg.needs_backup is True,
|
||||
no_backup=msg.no_backup is True,
|
||||
)
|
||||
storage.device.load_settings(
|
||||
use_passphrase=msg.passphrase_protection, label=msg.label
|
||||
|
@ -25,6 +25,8 @@ class LoadDevice(p.MessageType):
|
||||
label: str = None,
|
||||
skip_checksum: bool = None,
|
||||
u2f_counter: int = None,
|
||||
needs_backup: bool = None,
|
||||
no_backup: bool = None,
|
||||
) -> None:
|
||||
self.mnemonics = mnemonics if mnemonics is not None else []
|
||||
self.node = node
|
||||
@ -34,6 +36,8 @@ class LoadDevice(p.MessageType):
|
||||
self.label = label
|
||||
self.skip_checksum = skip_checksum
|
||||
self.u2f_counter = u2f_counter
|
||||
self.needs_backup = needs_backup
|
||||
self.no_backup = no_backup
|
||||
|
||||
@classmethod
|
||||
def get_fields(cls) -> Dict:
|
||||
@ -46,4 +50,6 @@ class LoadDevice(p.MessageType):
|
||||
6: ('label', p.UnicodeType, 0),
|
||||
7: ('skip_checksum', p.BoolType, 0),
|
||||
8: ('u2f_counter', p.UVarintType, 0),
|
||||
9: ('needs_backup', p.BoolType, 0),
|
||||
10: ('no_backup', p.BoolType, 0),
|
||||
}
|
||||
|
@ -460,6 +460,7 @@ static void config_setNode(const HDNodeType *node) {
|
||||
}
|
||||
|
||||
#if DEBUG_LINK
|
||||
|
||||
bool config_dumpNode(HDNodeType *node) {
|
||||
memzero(node, sizeof(HDNodeType));
|
||||
|
||||
@ -488,7 +489,6 @@ bool config_dumpNode(HDNodeType *node) {
|
||||
memzero(&storageNode, sizeof(storageNode));
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
void config_loadDevice(const LoadDevice *msg) {
|
||||
session_clear(false);
|
||||
@ -517,8 +517,18 @@ void config_loadDevice(const LoadDevice *msg) {
|
||||
if (msg->has_u2f_counter) {
|
||||
config_setU2FCounter(msg->u2f_counter);
|
||||
}
|
||||
|
||||
if (msg->has_needs_backup) {
|
||||
config_setNeedsBackup(msg->needs_backup);
|
||||
}
|
||||
|
||||
if (msg->has_no_backup && msg->no_backup) {
|
||||
config_setNoBackup();
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void config_setLabel(const char *label) {
|
||||
if (label == NULL || label[0] == '\0') {
|
||||
storage_delete(KEY_LABEL);
|
||||
|
@ -54,7 +54,9 @@ void fsm_msgPing(const Ping *msg);
|
||||
void fsm_msgChangePin(const ChangePin *msg);
|
||||
void fsm_msgWipeDevice(const WipeDevice *msg);
|
||||
void fsm_msgGetEntropy(const GetEntropy *msg);
|
||||
#if DEBUG_LINK
|
||||
void fsm_msgLoadDevice(const LoadDevice *msg);
|
||||
#endif
|
||||
void fsm_msgResetDevice(const ResetDevice *msg);
|
||||
void fsm_msgEntropyAck(const EntropyAck *msg);
|
||||
void fsm_msgBackupDevice(const BackupDevice *msg);
|
||||
|
@ -216,6 +216,8 @@ void fsm_msgGetEntropy(const GetEntropy *msg) {
|
||||
layoutHome();
|
||||
}
|
||||
|
||||
#if DEBUG_LINK
|
||||
|
||||
void fsm_msgLoadDevice(const LoadDevice *msg) {
|
||||
CHECK_PIN
|
||||
|
||||
@ -245,6 +247,8 @@ void fsm_msgLoadDevice(const LoadDevice *msg) {
|
||||
layoutHome();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void fsm_msgResetDevice(const ResetDevice *msg) {
|
||||
CHECK_PIN
|
||||
|
||||
|
@ -25,6 +25,8 @@ class LoadDevice(p.MessageType):
|
||||
label: str = None,
|
||||
skip_checksum: bool = None,
|
||||
u2f_counter: int = None,
|
||||
needs_backup: bool = None,
|
||||
no_backup: bool = None,
|
||||
) -> None:
|
||||
self.mnemonics = mnemonics if mnemonics is not None else []
|
||||
self.node = node
|
||||
@ -34,6 +36,8 @@ class LoadDevice(p.MessageType):
|
||||
self.label = label
|
||||
self.skip_checksum = skip_checksum
|
||||
self.u2f_counter = u2f_counter
|
||||
self.needs_backup = needs_backup
|
||||
self.no_backup = no_backup
|
||||
|
||||
@classmethod
|
||||
def get_fields(cls) -> Dict:
|
||||
@ -46,4 +50,6 @@ class LoadDevice(p.MessageType):
|
||||
6: ('label', p.UnicodeType, 0),
|
||||
7: ('skip_checksum', p.BoolType, 0),
|
||||
8: ('u2f_counter', p.UVarintType, 0),
|
||||
9: ('needs_backup', p.BoolType, 0),
|
||||
10: ('no_backup', p.BoolType, 0),
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user