mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-27 00:28:10 +00:00
d2597d54c1
updates #270
151 lines
3.8 KiB
Protocol Buffer
151 lines
3.8 KiB
Protocol Buffer
syntax = "proto2";
|
|
package hw.trezor.messages.common;
|
|
|
|
// Sugar for easier handling in Java
|
|
option java_package = "com.satoshilabs.trezor.lib.protobuf";
|
|
option java_outer_classname = "TrezorMessageCommon";
|
|
|
|
/**
|
|
* Response: Success of the previous request
|
|
* @end
|
|
*/
|
|
message Success {
|
|
optional string message = 1; // human readable description of action or request-specific payload
|
|
}
|
|
|
|
/**
|
|
* Response: Failure of the previous request
|
|
* @end
|
|
*/
|
|
message Failure {
|
|
optional FailureType code = 1; // computer-readable definition of the error state
|
|
optional string message = 2; // human-readable message of the error state
|
|
enum FailureType {
|
|
Failure_UnexpectedMessage = 1;
|
|
Failure_ButtonExpected = 2;
|
|
Failure_DataError = 3;
|
|
Failure_ActionCancelled = 4;
|
|
Failure_PinExpected = 5;
|
|
Failure_PinCancelled = 6;
|
|
Failure_PinInvalid = 7;
|
|
Failure_InvalidSignature = 8;
|
|
Failure_ProcessError = 9;
|
|
Failure_NotEnoughFunds = 10;
|
|
Failure_NotInitialized = 11;
|
|
Failure_PinMismatch = 12;
|
|
Failure_FirmwareError = 99;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Response: Device is waiting for HW button press.
|
|
* @auxstart
|
|
* @next ButtonAck
|
|
*/
|
|
message ButtonRequest {
|
|
optional ButtonRequestType code = 1;
|
|
optional string data = 2;
|
|
/**
|
|
* Type of button request
|
|
*/
|
|
enum ButtonRequestType {
|
|
ButtonRequest_Other = 1;
|
|
ButtonRequest_FeeOverThreshold = 2;
|
|
ButtonRequest_ConfirmOutput = 3;
|
|
ButtonRequest_ResetDevice = 4;
|
|
ButtonRequest_ConfirmWord = 5;
|
|
ButtonRequest_WipeDevice = 6;
|
|
ButtonRequest_ProtectCall = 7;
|
|
ButtonRequest_SignTx = 8;
|
|
ButtonRequest_FirmwareCheck = 9;
|
|
ButtonRequest_Address = 10;
|
|
ButtonRequest_PublicKey = 11;
|
|
ButtonRequest_MnemonicWordCount = 12;
|
|
ButtonRequest_MnemonicInput = 13;
|
|
ButtonRequest_PassphraseType = 14;
|
|
ButtonRequest_UnknownDerivationPath = 15;
|
|
ButtonRequest_RecoveryHomepage = 16;
|
|
ButtonRequest_Success = 17;
|
|
ButtonRequest_Warning = 18;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Request: Computer agrees to wait for HW button press
|
|
* @auxend
|
|
*/
|
|
message ButtonAck {
|
|
}
|
|
|
|
/**
|
|
* Response: Device is asking computer to show PIN matrix and awaits PIN encoded using this matrix scheme
|
|
* @auxstart
|
|
* @next PinMatrixAck
|
|
*/
|
|
message PinMatrixRequest {
|
|
optional PinMatrixRequestType type = 1;
|
|
/**
|
|
* Type of PIN request
|
|
*/
|
|
enum PinMatrixRequestType {
|
|
PinMatrixRequestType_Current = 1;
|
|
PinMatrixRequestType_NewFirst = 2;
|
|
PinMatrixRequestType_NewSecond = 3;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Request: Computer responds with encoded PIN
|
|
* @auxend
|
|
*/
|
|
message PinMatrixAck {
|
|
required string pin = 1; // matrix encoded PIN entered by user
|
|
}
|
|
|
|
/**
|
|
* Response: Device awaits encryption passphrase
|
|
* @auxstart
|
|
* @next PassphraseAck
|
|
*/
|
|
message PassphraseRequest {
|
|
optional bool on_device = 1; // passphrase is being entered on the device
|
|
}
|
|
|
|
/**
|
|
* Request: Send passphrase back
|
|
* @next PassphraseStateRequest
|
|
*/
|
|
message PassphraseAck {
|
|
optional string passphrase = 1;
|
|
optional bytes state = 2; // expected device state
|
|
}
|
|
|
|
/**
|
|
* Response: Device awaits passphrase state
|
|
* @next PassphraseStateAck
|
|
*/
|
|
message PassphraseStateRequest {
|
|
optional bytes state = 1; // actual device state
|
|
}
|
|
|
|
/**
|
|
* Request: Send passphrase state back
|
|
* @auxend
|
|
*/
|
|
message PassphraseStateAck {
|
|
}
|
|
|
|
/**
|
|
* Structure representing BIP32 (hierarchical deterministic) node
|
|
* Used for imports of private key into the device and exporting public key out of device
|
|
* @embed
|
|
*/
|
|
message HDNodeType {
|
|
required uint32 depth = 1;
|
|
required uint32 fingerprint = 2;
|
|
required uint32 child_num = 3;
|
|
required bytes chain_code = 4;
|
|
optional bytes private_key = 5;
|
|
optional bytes public_key = 6;
|
|
}
|