Index: chromeos/dbus/easy_unlock_client.h |
diff --git a/chromeos/dbus/easy_unlock_client.h b/chromeos/dbus/easy_unlock_client.h |
index 82057fc6c749c38b652a0a80932d25e77fb269a6..9aab4468257bb1df798180d5da3749f36158ae56 100644 |
--- a/chromeos/dbus/easy_unlock_client.h |
+++ b/chromeos/dbus/easy_unlock_client.h |
@@ -30,73 +30,14 @@ |
typedef base::Callback<void(const std::string& data)> DataCallback; |
- // Callback for |GenerateEcP256KeyPair|. Carries the generated keys. |
- typedef base::Callback<void(const std::string& private_key, |
- const std::string& public_key)> |
+ // Callback for |GenerateEcP256KeyAgreement|. Carries the generated keys. |
+ typedef base::Callback<void(const std::string& public_key, |
+ const std::string& private_key)> |
KeyPairCallback; |
// Generates ECDSA key pair using P256 curve. |
// The created keys should only be used with this client. |
virtual void GenerateEcP256KeyPair(const KeyPairCallback& callback) = 0; |
- |
- // Parameters used to create a secure message. |
- struct CreateSecureMessageOptions { |
- CreateSecureMessageOptions(); |
- ~CreateSecureMessageOptions(); |
- |
- // The key used to sign, and if needed, encrypt the message. If encryption |
- // is required, the key must be symetric. |
- std::string key; |
- |
- // Data associated with the message. The data will not actually be added to |
- // the message, but it will be used while signing the message (the receiver |
- // will use the same data to authenticate the signature). |
- std::string associated_data; |
- |
- // Metadata added to the message header. |
- std::string public_metadata; |
- |
- // The key id added to the message header. Has to be set if the message is |
- // signed with private asymetric key. This value is used by the receiver to |
- // identify the key that should be used to verify the signature. |
- std::string verification_key_id; |
- |
- // Key id added to the message header. Used by the message receiver to |
- // identify the key that should be used to decrypt the message. |
- std::string decryption_key_id; |
- |
- // The encryption algorithm to use for encrypting the message. |
- std::string encryption_type; |
- |
- // The algorithm to use to sign the message. |
- std::string signature_type; |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(CreateSecureMessageOptions); |
- }; |
- |
- // Parameters used to unwrap a securemessage. |
- struct UnwrapSecureMessageOptions { |
- UnwrapSecureMessageOptions(); |
- ~UnwrapSecureMessageOptions(); |
- |
- // The key used to authenticate message signature and, if needed, decrypt |
- // the message. If the message is encrypted, only symetric key can be used. |
- std::string key; |
- |
- // Data associated with the message. Message authentication will succeed |
- // only if the message was created with the same associated data. |
- std::string associated_data; |
- |
- // The encryption algorithm to use for decrypting the message. |
- std::string encryption_type; |
- |
- // The algorithm that should be used to verify the message signature. |
- std::string signature_type; |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(UnwrapSecureMessageOptions); |
- }; |
// Given a private and a public key, creates a symetric secret key using |
// EC Diffe-Hellman key exchange. The provided keys come from different |
@@ -110,22 +51,55 @@ |
// Creates signed and, if specified, encrypted message in format used by Easy |
// Unlock. |
// |payload|: The cleartext message body. |
- // |options|: The message parameters used for creating the secure message. |
+ // |key|: The key used to sign, and if needed, encrypt the message. If |
+ // encryption is required, the key must be symetric. |
+ // |associated_data|: Data associated with the message. The data will not |
+ // actually be added to the message, but it will be used while |
+ // signing the message (the receiver will use the same data to |
+ // authenticate the signature). |
+ // |public_metadata|: Metadata added to the message header. |
+ // |verification_key_id|: The key id added to the message header. Has to be |
+ // set if the message is signed with private asymetric key. This value |
+ // is used by the receiver to identify the public key that should be used |
+ // to verify the signature. |
+ // |decryption_key_id|: Key id added to the message header. Used by the |
+ // message receiver to identify the key that should be used to decrypt |
+ // the message. |
+ // |encryption_type|: The encryption algorithm to use for encrypting the |
+ // message. (May be set to none). |
+ // |signature_type|: The algorithm to use to sign the message. |
// |callback|: Called with the created message. On failure, the message will |
// be empty. |
virtual void CreateSecureMessage(const std::string& payload, |
- const CreateSecureMessageOptions& options, |
+ const std::string& secret_key, |
+ const std::string& associated_data, |
+ const std::string& public_metadata, |
+ const std::string& verification_key_id, |
+ const std::string& decryption_key_id, |
+ const std::string& encryption_type, |
+ const std::string& signature_type, |
const DataCallback& callback) = 0; |
// Authenticates and, if specified, decrypts a secure message. |
// |message|: The message to unwrap. It is in the same format as the message |
// returned by |CreateSecureMessage|. |
- // |options|: The parameters that should be used to unwrap the message. |
+ // |key|: The key used to authenticate message signature and, if needed, |
+ // decrypt the message. If the message is encrypted, only symetric key |
+ // can be used. |
+ // |associated_data|: Data associated with the message. Message |
+ // authentication will succeed only if the message was created with the |
+ // associated data. |
+ // |encryption_type|: The encryption algorithm to use for decrypting the |
+ // message. (May be set to none). |
+ // |signature_type|: The algorithm to use to verify the message signature. |
// |callback|: Called with the cleartext message header and body in a signle |
// protobuf. If the message could not be authenticated or decrypted, it |
// will be called with an empty string. |
virtual void UnwrapSecureMessage(const std::string& message, |
- const UnwrapSecureMessageOptions& options, |
+ const std::string& secret_key, |
+ const std::string& associated_data, |
+ const std::string& encryption_type, |
+ const std::string& signature_type, |
const DataCallback& callback) = 0; |
// Factory function, creates a new instance and returns ownership. |