OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "components/gcm_driver/crypto/gcm_encryption_provider.h" | 5 #include "components/gcm_driver/crypto/gcm_encryption_provider.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/base64url.h" | 10 #include "base/base64url.h" |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 std::string shared_secret; | 269 std::string shared_secret; |
270 ASSERT_TRUE(ComputeSharedP256Secret( | 270 ASSERT_TRUE(ComputeSharedP256Secret( |
271 pair.private_key(), pair.public_key_x509(), server_pair.public_key(), | 271 pair.private_key(), pair.public_key_x509(), server_pair.public_key(), |
272 &shared_secret)); | 272 &shared_secret)); |
273 | 273 |
274 IncomingMessage message; | 274 IncomingMessage message; |
275 size_t record_size; | 275 size_t record_size; |
276 | 276 |
277 // Encrypts the |kExampleMessage| using the generated shared key and the | 277 // Encrypts the |kExampleMessage| using the generated shared key and the |
278 // random |salt|, storing the result in |record_size| and the message. | 278 // random |salt|, storing the result in |record_size| and the message. |
279 GCMMessageCryptographer cryptographer; | 279 GCMMessageCryptographer cryptographer(pair.public_key(), server_pair.public_ke
y()); |
280 ASSERT_TRUE(cryptographer.Encrypt(kExampleMessage, shared_secret, salt, | 280 ASSERT_TRUE(cryptographer.Encrypt(kExampleMessage, shared_secret, salt, |
281 &record_size, &message.raw_data)); | 281 &record_size, &message.raw_data)); |
282 | 282 |
283 std::string encoded_salt, encoded_key; | 283 std::string encoded_salt, encoded_key; |
284 | 284 |
285 // Compile the incoming GCM message, including the required headers. | 285 // Compile the incoming GCM message, including the required headers. |
286 base::Base64UrlEncode( | 286 base::Base64UrlEncode( |
287 salt, base::Base64UrlEncodePolicy::INCLUDE_PADDING, &encoded_salt); | 287 salt, base::Base64UrlEncodePolicy::INCLUDE_PADDING, &encoded_salt); |
288 base::Base64UrlEncode( | 288 base::Base64UrlEncode( |
289 server_pair.public_key(), base::Base64UrlEncodePolicy::INCLUDE_PADDING, | 289 server_pair.public_key(), base::Base64UrlEncodePolicy::INCLUDE_PADDING, |
(...skipping 10 matching lines...) Expand all Loading... |
300 | 300 |
301 // Decrypt the message, and expect everything to go wonderfully well. | 301 // Decrypt the message, and expect everything to go wonderfully well. |
302 ASSERT_NO_FATAL_FAILURE(Decrypt(message)); | 302 ASSERT_NO_FATAL_FAILURE(Decrypt(message)); |
303 ASSERT_EQ(DECRYPTION_SUCCEEDED, decryption_result()); | 303 ASSERT_EQ(DECRYPTION_SUCCEEDED, decryption_result()); |
304 | 304 |
305 EXPECT_TRUE(decrypted_message().decrypted); | 305 EXPECT_TRUE(decrypted_message().decrypted); |
306 EXPECT_EQ(kExampleMessage, decrypted_message().raw_data); | 306 EXPECT_EQ(kExampleMessage, decrypted_message().raw_data); |
307 } | 307 } |
308 | 308 |
309 } // namespace gcm | 309 } // namespace gcm |
OLD | NEW |