rework EncryptMessage/DecryptMessage

pull/41/head
Pavol Rusnak 10 years ago
parent 71a02eb83d
commit e675d5fd76

@ -38,6 +38,7 @@ enum MessageType {
MessageType_TxRequest = 21 [(wire_out) = true]; MessageType_TxRequest = 21 [(wire_out) = true];
MessageType_TxAck = 22 [(wire_in) = true]; MessageType_TxAck = 22 [(wire_in) = true];
MessageType_CipherKeyValue = 23 [(wire_in) = true]; MessageType_CipherKeyValue = 23 [(wire_in) = true];
MessageType_CipheredKeyValue = 48 [(wire_out) = true];
MessageType_ClearSession = 24 [(wire_in) = true]; MessageType_ClearSession = 24 [(wire_in) = true];
MessageType_ApplySettings = 25 [(wire_in) = true]; MessageType_ApplySettings = 25 [(wire_in) = true];
MessageType_ButtonRequest = 26 [(wire_out) = true]; MessageType_ButtonRequest = 26 [(wire_out) = true];
@ -49,8 +50,10 @@ enum MessageType {
MessageType_SignMessage = 38 [(wire_in) = true]; MessageType_SignMessage = 38 [(wire_in) = true];
MessageType_VerifyMessage = 39 [(wire_in) = true]; MessageType_VerifyMessage = 39 [(wire_in) = true];
MessageType_MessageSignature = 40 [(wire_out) = true]; MessageType_MessageSignature = 40 [(wire_out) = true];
MessageType_EncryptMessage = 48 [(wire_in) = true]; MessageType_EncryptMessage = 49 [(wire_in) = true];
MessageType_DecryptMessage = 49 [(wire_in) = true]; MessageType_EncryptedMessage = 50 [(wire_out) = true];
MessageType_DecryptMessage = 51 [(wire_in) = true];
MessageType_DecryptedMessage = 52 [(wire_out) = true];
MessageType_PassphraseRequest = 41 [(wire_out) = true]; MessageType_PassphraseRequest = 41 [(wire_out) = true];
MessageType_PassphraseAck = 42 [(wire_in) = true]; MessageType_PassphraseAck = 42 [(wire_in) = true];
MessageType_EstimateTxSize = 43 [(wire_in) = true]; MessageType_EstimateTxSize = 43 [(wire_in) = true];
@ -142,7 +145,6 @@ message Ping {
*/ */
message Success { message Success {
optional string message = 1; // human readable description of action or request-specific payload optional string message = 1; // human readable description of action or request-specific payload
optional bytes payload = 2; // request-specific binary payload
} }
/** /**
@ -398,7 +400,7 @@ message MessageSignature {
/** /**
* Request: Ask device to encrypt message * Request: Ask device to encrypt message
* @next Success * @next EncryptedMessage
* @next Failure * @next Failure
*/ */
message EncryptMessage { message EncryptMessage {
@ -409,6 +411,16 @@ message EncryptMessage {
optional string coin_name = 5 [default='Bitcoin']; // coin to use for signing optional string coin_name = 5 [default='Bitcoin']; // coin to use for signing
} }
/**
* Response: Encrypted message
* @prev EncryptMessage
*/
message EncryptedMessage {
optional bytes nonce = 1; // nonce used during encryption
optional bytes message = 2; // encrypted message
optional bytes hmac = 3; // message hmac
}
/** /**
* Request: Ask device to decrypt message * Request: Ask device to decrypt message
* @next Success * @next Success
@ -416,12 +428,23 @@ message EncryptMessage {
*/ */
message DecryptMessage { message DecryptMessage {
repeated uint32 address_n = 1; // BIP-32 path to derive the decryption key from master node repeated uint32 address_n = 1; // BIP-32 path to derive the decryption key from master node
optional bytes message = 2; // message to decrypt optional bytes nonce = 2; // nonce used during encryption
optional bytes message = 3; // message to decrypt
optional bytes hmac = 4; // message hmac
}
/**
* Response: Decrypted message
* @prev DecryptedMessage
*/
message DecryptedMessage {
optional bytes message = 1; // decrypted message
optional string address = 2; // address used to sign the message (if used)
} }
/** /**
* Request: Ask device to encrypt or decrypt value of given key * Request: Ask device to encrypt or decrypt value of given key
* @next Success * @next CipheredKeyValue
* @next Failure * @next Failure
*/ */
message CipherKeyValue { message CipherKeyValue {
@ -433,6 +456,14 @@ message CipherKeyValue {
optional bool ask_on_decrypt = 6; // should we ask on decrypt operation? optional bool ask_on_decrypt = 6; // should we ask on decrypt operation?
} }
/**
* Response: Return ciphered/deciphered value
* @prev CipherKeyValue
*/
message CipheredKeyValue {
optional bytes value = 1; // ciphered/deciphered value
}
////////////////////////////////// //////////////////////////////////
// Transaction signing messages // // Transaction signing messages //
////////////////////////////////// //////////////////////////////////

Loading…
Cancel
Save