148 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
		
		
			
		
	
	
			148 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Protocol Buffer
		
	
	
	
	
	
|   | // This file originates from the SatoshiLabs Trezor `common` repository at:
 | ||
|  | //   https://github.com/trezor/trezor-common/blob/master/protob/messages-common.proto
 | ||
|  | // dated 28.05.2019, commit 893fd219d4a01bcffa0cd9cfa631856371ec5aa9.
 | ||
|  | 
 | ||
|  | syntax = "proto2";
 | ||
|  | package hw.trezor.messages.common;
 | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * 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;
 | ||
|  |     }
 | ||
|  | }
 | ||
|  | 
 | ||
|  | /**
 | ||
|  |  * 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;
 | ||
|  | }
 |