diff --git a/protob/messages.proto b/protob/messages.proto index 5b89e836aa..94255cfb6f 100644 --- a/protob/messages.proto +++ b/protob/messages.proto @@ -77,24 +77,24 @@ message Initialize { // Response object for Initialize. message Features { - optional bytes vendor = 1; // Name of the manufacturer, e.g. "bitcointrezor.com" + optional string vendor = 1; // Name of the manufacturer, e.g. "bitcointrezor.com" optional uint32 major_version = 2; // Major version of the device, e.g. 1 optional uint32 minor_version = 3; // Minor version of the device, e.g. 0 optional uint32 bugfix_version = 4; optional bool bootloader_mode = 5; - optional bytes device_id = 6 [(binary) = true]; // Device's unique identifier + optional string device_id = 6; // Device's unique identifier optional bool pin_protection = 7; // True if Trezor is covered by PIN optional bool passphrase_protection = 8; // True if node/mnemonic is covered by passphrase - optional bytes language = 9; - optional bytes label = 10 [(binary) = true]; + optional string language = 9; + optional string label = 10; repeated CoinType coins = 11; optional bool initialized = 12; // True if device cointains seed } // Overwrites only filled fields of the structure message ApplySettings { - optional bytes language = 1; - optional bytes label = 2 [(binary) = true]; + optional string language = 1; + optional string label = 2; } // Starts workflow for setting/changing the PIN @@ -107,7 +107,7 @@ message ChangePin { // // Response: None or Success message Ping { - optional bytes message = 1; // Message will be sent back in Success message + optional string message = 1; // Message will be sent back in Success message optional bool button_protection = 2; // Ask for button press optional bool pin_protection = 3; // Ask for PIN if set optional bool passphrase_protection = 4; // Ask for passphrase if set @@ -115,13 +115,13 @@ message Ping { // Response object defining success of the previous request message Success { - optional bytes message = 1; // May contain human readable description of the action or request-specific payload + optional string message = 1; // May contain human readable description of the action or request-specific payload } // Response object defining failure of the previous request message Failure { optional FailureType code = 1; // May contain computer-readable definition of the error state - optional bytes message = 2; // May contain human-readable message of the error state + optional string message = 2; // May contain human-readable message of the error state } // Message can be sent by the *device* as a resopnse to any request. @@ -130,7 +130,7 @@ message Failure { // the original request. message ButtonRequest { optional ButtonRequestType code = 1; - optional bytes data = 2 [(binary) = true]; + optional string data = 2; } // Computer agrees to wait for HW button press. @@ -142,12 +142,12 @@ message ButtonAck { // // Response: PinMatrixAck, Cancel message PinMatrixRequest { - optional bytes message = 1; // Human readable message + optional string message = 1; // Human readable message } // Message is sent by the computer as a response to PinMatrixRequest previously sent by the device. message PinMatrixAck { - required bytes pin = 1; // User must write down the password for accessing the device. + required string pin = 1; // User must write down the password for accessing the device. } // Message is sent as a cancel response to ButtonRequest, PinMatrixRequest and PassphraseRequest @@ -160,7 +160,7 @@ message PassphraseRequest { // Computer sends passphrase to device. message PassphraseAck { - required bytes passphrase = 1 [(binary) = true]; + required string passphrase = 1; } // Request a sample of random data generated by hardware RNG. May be used @@ -173,7 +173,7 @@ message GetEntropy { // Response to GetEntropy request contains random data generated by internal HRNG. message Entropy { - required bytes entropy = 1 [(binary) = true]; // Stream of generated bytes + required bytes entropy = 1; // Stream of generated bytes } // Ask device for public key corresponding of address_n path. This may be used for generating @@ -191,11 +191,11 @@ message PublicKey { message GetAddress { repeated uint32 address_n = 1; // Parameter for address generation algorithm to derive the address from the master node - optional bytes coin_name = 2 [default='Bitcoin']; + optional string coin_name = 2 [default='Bitcoin']; } message Address { - required bytes address = 1; // Bitcoin address in base58 encoding corresponding to GetAddress(n) call + required string address = 1; // Bitcoin address in base58 encoding corresponding to GetAddress(n) call } // Request device to wipe all sensitive data and settings. @@ -209,12 +209,12 @@ message WipeDevice { // // Response: Success, ButtonRequest, PinMatrixRequest, Failure message LoadDevice { - optional bytes mnemonic = 1; // Seed encoded as a mnemonic (12 english words) + optional string mnemonic = 1; // Seed encoded as a mnemonic (12 english words) optional HDNodeType node = 2; - optional bytes pin = 3; // Set PIN protection for important actions + optional string pin = 3; // Set PIN protection for important actions optional bool passphrase_protection = 4; - optional bytes language = 5 [default='english']; - optional bytes label = 6 [(binary) = true]; + optional string language = 5 [default='english']; + optional string label = 6; optional bool skip_checksum = 7; // Do not test mnemonic for valid BIP39 checksum } @@ -233,8 +233,8 @@ message ResetDevice { optional uint32 strength = 2 [default=128]; // Strength of seed in bits optional bool passphrase_protection = 3; optional bool pin_protection = 4; - optional bytes language = 5 [default='english']; - optional bytes label = 6 [(binary) = true]; + optional string language = 5 [default='english']; + optional string label = 6; } // Asks for additional Entropy from host computer @@ -243,7 +243,7 @@ message EntropyRequest { // Provide additional entropy for seed generation function. message EntropyAck { - optional bytes entropy = 1 [(binary) = true]; // Recommended to provide 256 bits (32 bytes) of random data. + optional bytes entropy = 1; // Recommended to provide 256 bits (32 bytes) of random data. } // Starts workflow of asking user for specific words of his mnemonic. @@ -253,9 +253,9 @@ message RecoveryDevice { optional uint32 word_count = 1; // How many words is in mnemonic sentence? optional bool passphrase_protection = 2; optional bool pin_protection = 3; - optional bytes language = 4 [default='english']; - optional bytes label = 5 [(binary) = true]; - optional bool enforce_wordlist = 6; // Trezor enforces BIP39 wordlist + optional string language = 4 [default='english']; + optional string label = 5; + optional bool enforce_wordlist = 6; // Trezor enforces BIP39 wordlist } // This message indicates that device is asking user for some word of his mnemonic. @@ -264,7 +264,7 @@ message WordRequest { } message WordAck { - required bytes word = 1 [(binary)=true]; // One word of mnemonic on asked position + required string word = 1; // One word of mnemonic on asked position } // **************************************************************************** @@ -274,19 +274,19 @@ message WordAck { message SignMessage { repeated uint32 address_n = 1; - required bytes message = 2 [(binary) = true]; - optional bytes coin_name = 3 [default='Bitcoin']; + required bytes message = 2; + optional string coin_name = 3 [default='Bitcoin']; } message VerifyMessage { - optional bytes address = 1; - optional bytes signature = 2 [(binary) = true]; - optional bytes message = 3 [(binary) = true]; + optional string address = 1; + optional bytes signature = 2; + optional bytes message = 3; } message MessageSignature { - optional bytes address = 1; - optional bytes signature = 2 [(binary) = true]; + optional string address = 1; + optional bytes signature = 2; } // Estimate size of the transaction @@ -300,7 +300,7 @@ message MessageSignature { message EstimateTxSize { required uint32 outputs_count = 1; // Count of outputs of the transaction required uint32 inputs_count = 2; // Count of inputs of the transaction - optional bytes coin_name = 3 [default='Bitcoin']; + optional string coin_name = 3 [default='Bitcoin']; } // Result of EstimateTxSize @@ -314,7 +314,7 @@ message TxSize { message SignTx { required uint32 outputs_count = 1; // Count of outputs of the transaction required uint32 inputs_count = 2; // Count of inputs of the transaction - optional bytes coin_name = 3 [default='Bitcoin']; + optional string coin_name = 3 [default='Bitcoin']; } // Request a simplified workflow of signing. @@ -333,7 +333,7 @@ message SimpleSignTx { repeated TxInputType inputs = 1; repeated TxOutputType outputs = 2; repeated TransactionType transactions = 3; - optional bytes coin_name = 4 [default='Bitcoin']; + optional string coin_name = 4 [default='Bitcoin']; } // Sent by the device as a response for SignTx. Device asks for information for signing transaction. @@ -344,8 +344,8 @@ message TxRequest { optional int32 request_index = 1; // If >=0, device expects TxInput/TxOutput message from the computer optional RequestType request_type = 2; // Ask for TxInput or TxOutput? optional int32 signed_index = 3; // If >=0, 'signature' contains signed input of this input - optional bytes signature = 4 [(binary) = true]; // If signed_index>=0, represent signature of the signed_index input - optional bytes serialized_tx = 5 [(binary) = true]; // Part of serialized and signed transaction + optional bytes signature = 4; // If signed_index>=0, represent signature of the signed_index input + optional bytes serialized_tx = 5; // Part of serialized and signed transaction } // Transaction onput for SignTx workflow. It is response to TxRequest message sent by device. @@ -370,7 +370,7 @@ message FirmwareErase { } message FirmwareUpload { - required bytes payload = 1 [(binary) = true]; // Firmware to flash into device + required bytes payload = 1; // Firmware to flash into device } // **************************************************************************** @@ -394,13 +394,13 @@ message DebugLinkGetState { // Response object reflecting device's current state. It can be received only over debug link connection. message DebugLinkState { - optional bytes layout = 1 [(binary) = true]; // Raw buffer of display - optional bytes pin = 2; // Current PIN, blank if PIN is not set/enabled - optional bytes matrix = 3; // Current PIN matrix - optional bytes mnemonic = 4; // current mnemonic format + optional bytes layout = 1; // Raw buffer of display + optional string pin = 2; // Current PIN, blank if PIN is not set/enabled + optional string matrix = 3; // Current PIN matrix + optional string mnemonic = 4; // current mnemonic format optional HDNodeType node = 5; // current node (BIP32 format) optional bool passphrase_protection = 6; - optional bytes word = 7; // What word is on display in RecoveryDevice/ResetDevice workflow + optional string word = 7; // What word is on display in RecoveryDevice/ResetDevice workflow optional int32 word_pos = 8; // Which word of mnemonic do the device expect optional bytes entropy = 9; // Return current entropy of ResetDevice workflow } @@ -411,6 +411,6 @@ message DebugLinkStop { message DebugLinkLog { optional uint32 level = 1; - optional bytes bucket = 2; - optional bytes text = 3; + optional string bucket = 2; + optional string text = 3; } diff --git a/protob/storage.proto b/protob/storage.proto index 9ec7359d1c..7de4a34268 100644 --- a/protob/storage.proto +++ b/protob/storage.proto @@ -15,10 +15,10 @@ import "types.proto"; message Storage { required uint32 version = 1; optional HDNodeType node = 2; - optional bytes mnemonic = 3 [(binary) = true]; + optional string mnemonic = 3; optional bool passphrase_protection = 4; // whether node_serialized or mnemonic are encrypted (protected by passphrase) optional uint32 pin_failed_attempts = 5; - optional bytes pin = 6; - optional bytes language = 7; - optional bytes label = 8 [(binary) = true]; -} \ No newline at end of file + optional string pin = 6; + optional string language = 7; + optional string label = 8; +} diff --git a/protob/types.proto b/protob/types.proto index 95150b0ce4..51ca608824 100644 --- a/protob/types.proto +++ b/protob/types.proto @@ -12,10 +12,6 @@ option java_outer_classname = "TrezorType"; import "google/protobuf/descriptor.proto"; -extend google.protobuf.FieldOptions { - optional bool binary = 50001; // message field has binary payload -} - extend google.protobuf.EnumValueOptions { optional bool wire_in = 50002; // message can be transmitted via wire from PC to TREZOR optional bool wire_out = 50003; // message can be transmitted via wire from TREZOR to PC @@ -66,32 +62,32 @@ message HDNodeType { required uint32 depth = 1; required uint32 fingerprint = 2; required uint32 child_num = 3; - required bytes chain_code = 4 [(binary) = true]; - optional bytes private_key = 5 [(binary) = true]; - optional bytes public_key = 6 [(binary) = true]; + required bytes chain_code = 4; + optional bytes private_key = 5; + optional bytes public_key = 6; } message CoinType { - optional bytes coin_name = 1; - optional bytes coin_shortcut = 2; + optional string coin_name = 1; + optional string coin_shortcut = 2; optional uint32 address_type = 3; optional uint64 maxfee_kb = 4; } message TxInputType { repeated uint32 address_n = 1; // Parameter for address generation algorithm to derive the address from the master node - required bytes prev_hash = 2 [(binary) = true]; // Hash of previous transaction output to spend by this input + required bytes prev_hash = 2; // Hash of previous transaction output to spend by this input required uint32 prev_index = 3; // Index of previous output to spend - optional bytes script_sig = 4 [(binary) = true]; // Script signature + optional bytes script_sig = 4; // Script signature optional uint32 sequence = 5 [default=0xffffffff]; } message TxOutputType { - optional bytes address = 1; // Target bitcoin address in base58 encoding + optional string address = 1; // Target bitcoin address in base58 encoding repeated uint32 address_n = 2; // Has higher priority than "address". required uint64 amount = 3; // Amount to send in satoshis required ScriptType script_type = 4; // Select output script type - repeated bytes script_args = 5 [(binary) = true]; // Provide additional parameters for the script (its script-depended) + repeated bytes script_args = 5; // Provide additional parameters for the script (its script-depended) } // Transaction output with script pubkey in binary form. @@ -99,7 +95,7 @@ message TxOutputType { // and for compiling TxOutput for signing. message TxOutputBinType { required uint64 amount = 1; - required bytes script_pubkey = 2 [(binary) = true]; + required bytes script_pubkey = 2; } message TransactionType {