1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-01-22 05:10:56 +00:00

Matrix Recovery

This adds a new type in the message RecoveryDevice, which can
be used by the host to signal which recovery procedures it supports.
It is a bitfield containing a bit for every supported procedure.
This commit is contained in:
Jochen Hoenicke 2016-06-29 22:34:55 +02:00 committed by Pavol Rusnak
parent 8253f86237
commit 61af3d5e93
No known key found for this signature in database
GPG Key ID: 91F3B339B9A02A3D
2 changed files with 30 additions and 1 deletions

View File

@ -390,7 +390,9 @@ message RecoveryDevice {
optional string language = 4 [default='english']; // device language
optional string label = 5; // device label
optional bool enforce_wordlist = 6; // enforce BIP-39 wordlist during the process
optional uint32 u2f_counter = 7; // U2F counter
// 7 reserved for unused recovery method
optional uint32 type = 8; // supported recovery type (see RecoveryType)
optional uint32 u2f_counter = 9; // U2F counter
}
/**
@ -400,6 +402,7 @@ message RecoveryDevice {
* @prev WordAck
*/
message WordRequest {
optional WordRequestType type = 1;
}
/**

View File

@ -105,6 +105,32 @@ enum PinMatrixRequestType {
PinMatrixRequestType_NewSecond = 3;
}
/**
* Type of recovery procedure. These should be used as bitmask, e.g.,
* `RecoveryDeviceType_ScrambledWords | RecoveryDeviceType_Matrix`
* listing every method supported by the host computer.
*
* Note that ScrambledWords must be supported by every implementation
* for backward compatibility; there is no way to not support it.
*
* @used_in RecoveryDevice
*/
enum RecoveryDeviceType {
// use powers of two when extending this field
RecoveryDeviceType_ScrambledWords = 0; // words in scrambled order
RecoveryDeviceType_Matrix = 1; // matrix recovery type
}
/**
* Type of Recovery Word request
* @used_in WordRequest
*/
enum WordRequestType {
WordRequestType_Plain = 0;
WordRequestType_Matrix9 = 1;
WordRequestType_Matrix6 = 2;
}
/**
* Structure representing BIP32 (hierarchical deterministic) node
* Used for imports of private key into the device and exporting public key out of device