| Index: components/cryptauth/device_to_device_operations_unittest.cc
|
| diff --git a/components/cryptauth/device_to_device_operations_unittest.cc b/components/cryptauth/device_to_device_operations_unittest.cc
|
| index 05a2f63d0c534798a9259e72411b82a47529d184..a44dc464cb3c4f0b0042497177aafadc63996405 100644
|
| --- a/components/cryptauth/device_to_device_operations_unittest.cc
|
| +++ b/components/cryptauth/device_to_device_operations_unittest.cc
|
| @@ -5,9 +5,11 @@
|
| #include "base/base64url.h"
|
| #include "base/bind.h"
|
| #include "base/macros.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "components/cryptauth/device_to_device_initiator_operations.h"
|
| #include "components/cryptauth/device_to_device_responder_operations.h"
|
| #include "components/cryptauth/fake_secure_message_delegate.h"
|
| +#include "components/cryptauth/session_keys.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
|
|
| namespace cryptauth {
|
| @@ -52,6 +54,14 @@ void SaveValidationResultWithKey(bool* out_success,
|
| *out_key = key;
|
| }
|
|
|
| +void SaveValidationResultWithSessionKeys(bool* out_success,
|
| + std::unique_ptr<SessionKeys>* out_keys,
|
| + bool success,
|
| + std::unique_ptr<SessionKeys> keys) {
|
| + *out_success = success;
|
| + *out_keys = std::move(keys);
|
| +}
|
| +
|
| } // namespace
|
|
|
| class ProximityAuthDeviceToDeviceOperationsTest : public testing::Test {
|
| @@ -80,6 +90,7 @@ class ProximityAuthDeviceToDeviceOperationsTest : public testing::Test {
|
| secure_message_delegate_.DeriveKey(
|
| local_session_private_key_, remote_session_public_key_,
|
| base::Bind(&SaveMessageResult, &session_symmetric_key_));
|
| + session_keys_ = base::MakeUnique<SessionKeys>(session_symmetric_key_);
|
|
|
| persistent_symmetric_key_ = "persistent symmetric key";
|
| }
|
| @@ -116,7 +127,7 @@ class ProximityAuthDeviceToDeviceOperationsTest : public testing::Test {
|
| const std::string& remote_auth_message) {
|
| std::string local_auth_message;
|
| DeviceToDeviceInitiatorOperations::CreateInitiatorAuthMessage(
|
| - session_symmetric_key_, persistent_symmetric_key_, remote_auth_message,
|
| + session_keys_.get(), persistent_symmetric_key_, remote_auth_message,
|
| &secure_message_delegate_,
|
| base::Bind(&SaveMessageResult, &local_auth_message));
|
| EXPECT_FALSE(local_auth_message.empty());
|
| @@ -131,6 +142,7 @@ class ProximityAuthDeviceToDeviceOperationsTest : public testing::Test {
|
| std::string remote_session_public_key_;
|
| std::string remote_session_private_key_;
|
| std::string session_symmetric_key_;
|
| + std::unique_ptr<SessionKeys> session_keys_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ProximityAuthDeviceToDeviceOperationsTest);
|
| };
|
| @@ -169,16 +181,19 @@ TEST_F(ProximityAuthDeviceToDeviceOperationsTest,
|
| std::string remote_auth_message = CreateResponderAuthMessage(hello_message);
|
|
|
| bool validation_success = false;
|
| - std::string session_symmetric_key;
|
| + std::unique_ptr<SessionKeys> session_keys;
|
| DeviceToDeviceInitiatorOperations::ValidateResponderAuthMessage(
|
| remote_auth_message, kResponderPersistentPublicKey,
|
| persistent_symmetric_key_, local_session_private_key_, hello_message,
|
| &secure_message_delegate_,
|
| - base::Bind(&SaveValidationResultWithKey, &validation_success,
|
| - &session_symmetric_key));
|
| + base::Bind(&SaveValidationResultWithSessionKeys, &validation_success,
|
| + &session_keys));
|
|
|
| EXPECT_TRUE(validation_success);
|
| - EXPECT_EQ(session_symmetric_key_, session_symmetric_key);
|
| + EXPECT_EQ(session_keys_->initiator_encode_key(),
|
| + session_keys->initiator_encode_key());
|
| + EXPECT_EQ(session_keys_->responder_encode_key(),
|
| + session_keys->responder_encode_key());
|
| }
|
|
|
| TEST_F(ProximityAuthDeviceToDeviceOperationsTest,
|
| @@ -187,16 +202,16 @@ TEST_F(ProximityAuthDeviceToDeviceOperationsTest,
|
| std::string remote_auth_message = CreateResponderAuthMessage(hello_message);
|
|
|
| bool validation_success = true;
|
| - std::string session_symmetric_key = "non empty";
|
| + auto session_keys = base::MakeUnique<SessionKeys>("non empty");
|
| DeviceToDeviceInitiatorOperations::ValidateResponderAuthMessage(
|
| remote_auth_message, kResponderPersistentPublicKey,
|
| persistent_symmetric_key_, local_session_private_key_,
|
| "invalid hello message", &secure_message_delegate_,
|
| - base::Bind(&SaveValidationResultWithKey, &validation_success,
|
| - &session_symmetric_key));
|
| + base::Bind(&SaveValidationResultWithSessionKeys, &validation_success,
|
| + &session_keys));
|
|
|
| EXPECT_FALSE(validation_success);
|
| - EXPECT_TRUE(session_symmetric_key.empty());
|
| + EXPECT_TRUE(session_keys.get() == nullptr);
|
| }
|
|
|
| TEST_F(ProximityAuthDeviceToDeviceOperationsTest,
|
| @@ -205,16 +220,16 @@ TEST_F(ProximityAuthDeviceToDeviceOperationsTest,
|
| std::string remote_auth_message = CreateResponderAuthMessage(hello_message);
|
|
|
| bool validation_success = true;
|
| - std::string session_symmetric_key = "non empty";
|
| + auto session_keys = base::MakeUnique<SessionKeys>("non empty");
|
| DeviceToDeviceInitiatorOperations::ValidateResponderAuthMessage(
|
| remote_auth_message, kResponderPersistentPublicKey,
|
| "invalid persistent symmetric key", local_session_private_key_,
|
| hello_message, &secure_message_delegate_,
|
| - base::Bind(&SaveValidationResultWithKey, &validation_success,
|
| - &session_symmetric_key));
|
| + base::Bind(&SaveValidationResultWithSessionKeys, &validation_success,
|
| + &session_keys));
|
|
|
| EXPECT_FALSE(validation_success);
|
| - EXPECT_TRUE(session_symmetric_key.empty());
|
| + EXPECT_TRUE(session_keys.get() == nullptr);
|
| }
|
|
|
| TEST_F(ProximityAuthDeviceToDeviceOperationsTest,
|
| @@ -226,7 +241,7 @@ TEST_F(ProximityAuthDeviceToDeviceOperationsTest,
|
|
|
| bool validation_success = false;
|
| DeviceToDeviceResponderOperations::ValidateInitiatorAuthMessage(
|
| - local_auth_message, session_symmetric_key_, persistent_symmetric_key_,
|
| + local_auth_message, session_keys_.get(), persistent_symmetric_key_,
|
| remote_auth_message, &secure_message_delegate_,
|
| base::Bind(&SaveValidationResult, &validation_success));
|
|
|
| @@ -242,7 +257,7 @@ TEST_F(ProximityAuthDeviceToDeviceOperationsTest,
|
|
|
| bool validation_success = true;
|
| DeviceToDeviceResponderOperations::ValidateInitiatorAuthMessage(
|
| - local_auth_message, session_symmetric_key_, persistent_symmetric_key_,
|
| + local_auth_message, session_keys_.get(), persistent_symmetric_key_,
|
| "invalid remote auth", &secure_message_delegate_,
|
| base::Bind(&SaveValidationResult, &validation_success));
|
|
|
| @@ -258,7 +273,7 @@ TEST_F(ProximityAuthDeviceToDeviceOperationsTest,
|
|
|
| bool validation_success = true;
|
| DeviceToDeviceResponderOperations::ValidateInitiatorAuthMessage(
|
| - local_auth_message, session_symmetric_key_,
|
| + local_auth_message, session_keys_.get(),
|
| "invalid persistent symmetric key", remote_auth_message,
|
| &secure_message_delegate_,
|
| base::Bind(&SaveValidationResult, &validation_success));
|
|
|