Chromium Code Reviews| Index: components/gcm_driver/crypto/gcm_encryption_provider_unittest.cc |
| diff --git a/components/gcm_driver/crypto/gcm_encryption_provider_unittest.cc b/components/gcm_driver/crypto/gcm_encryption_provider_unittest.cc |
| index 5cee4ba7ee22eb5b9f29787c300b47d77487022b..ce2c6bdf57a8baa028fbc9ac4f4131324e333570 100644 |
| --- a/components/gcm_driver/crypto/gcm_encryption_provider_unittest.cc |
| +++ b/components/gcm_driver/crypto/gcm_encryption_provider_unittest.cc |
| @@ -40,6 +40,9 @@ const char kInvalidEncryptionHeader[] = "keyid"; |
| const char kValidCryptoKeyHeader[] = |
| "keyid=foo;dh=BL_UGhfudEkXMUd4U4-D4nP5KHxKjQHsW6j88ybbehXM7fqi1OMFefDUEi0eJ" |
| "vsKfyVBWYkQjH-lSPJKxjAyslg"; |
| +const char kValidThreeValueCryptoKeyHeader[] = |
| + "keyid=foo,keyid=bar,keyid=baz;dh=BL_UGhfudEkXMUd4U4-D4nP5KHxKjQHsW6j88ybbe" |
| + "hXM7fqi1OMFefDUEi0eJvsKfyVBWYkQjH-lSPJKxjAyslg"; |
| const char kInvalidCryptoKeyHeader[] = "keyid"; |
| } // namespace |
| @@ -204,7 +207,7 @@ TEST_F(GCMEncryptionProviderTest, VerifiesEncryptionHeaderParsing) { |
| } |
| TEST_F(GCMEncryptionProviderTest, VerifiesCryptoKeyHeaderParsing) { |
| - // The Encryption-Key header must be parsable and contain valid values. |
| + // The Crypto-Key header must be parsable and contain valid values. |
| // Note that this is more extensively tested in EncryptionHeaderParsersTest. |
| IncomingMessage invalid_message; |
| @@ -226,6 +229,20 @@ TEST_F(GCMEncryptionProviderTest, VerifiesCryptoKeyHeaderParsing) { |
| decryption_result()); |
| } |
| +TEST_F(GCMEncryptionProviderTest, VerifiesCryptoKeyHeaderParsingThirdValue) { |
| + // The Crypto-Key header must be parsable and contain valid values, in which |
| + // values will be ignored unless they contain a "dh" property. |
| + |
| + IncomingMessage valid_message; |
| + valid_message.data["encryption"] = kInvalidEncryptionHeader; |
|
johnme
2016/06/30 16:55:58
Shouldn't this be kValidEncryptionHeader? Ditto in
Peter Beverloo
2016/06/30 18:00:43
Done.
|
| + valid_message.data["crypto-key"] = kValidThreeValueCryptoKeyHeader; |
| + valid_message.raw_data = "foo"; |
| + |
| + ASSERT_NO_FATAL_FAILURE(Decrypt(valid_message)); |
| + EXPECT_NE(GCMEncryptionProvider::DECRYPTION_RESULT_INVALID_CRYPTO_KEY_HEADER, |
| + decryption_result()); |
| +} |
| + |
| TEST_F(GCMEncryptionProviderTest, VerifiesExistingKeys) { |
| // When both headers are valid, the encryption keys still must be known to |
| // the GCM key store before the message can be decrypted. |