Chromium Code Reviews| Index: components/gcm_driver/crypto/gcm_encryption_provider.cc |
| diff --git a/components/gcm_driver/crypto/gcm_encryption_provider.cc b/components/gcm_driver/crypto/gcm_encryption_provider.cc |
| index 0e3873eb094f3b6e05a1f02ba9ce416ec3f06f2d..d7d1141df106334bc61800ffc147916028c55efc 100644 |
| --- a/components/gcm_driver/crypto/gcm_encryption_provider.cc |
| +++ b/components/gcm_driver/crypto/gcm_encryption_provider.cc |
| @@ -85,32 +85,30 @@ void GCMEncryptionProvider::DecryptMessage( |
| DCHECK(encryption_header != message.data.end()); |
| DCHECK(crypto_key_header != message.data.end()); |
| - std::vector<EncryptionHeaderValues> encryption_header_values; |
| - if (!ParseEncryptionHeader(encryption_header->second, |
| - &encryption_header_values)) { |
| + EncryptionHeaderIterator encryption_header_iterator( |
| + encryption_header->second.begin(), encryption_header->second.end()); |
| + if (!encryption_header_iterator.GetNext()) { |
| DLOG(ERROR) << "Unable to parse the value of the Encryption header"; |
| failure_callback.Run(DECRYPTION_FAILURE_INVALID_ENCRYPTION_HEADER); |
| return; |
| } |
| - if (encryption_header_values.size() != 1u || |
| - encryption_header_values[0].salt.size() != |
| + if (encryption_header_iterator.salt().size() != |
| GCMMessageCryptographer::kSaltSize) { |
| DLOG(ERROR) << "Invalid values supplied in the Encryption header"; |
| failure_callback.Run(DECRYPTION_FAILURE_INVALID_ENCRYPTION_HEADER); |
| return; |
| } |
| - std::vector<CryptoKeyHeaderValues> crypto_key_header_values; |
| - if (!ParseCryptoKeyHeader(crypto_key_header->second, |
| - &crypto_key_header_values)) { |
| + CryptoKeyHeaderIterator crypto_key_header_iterator( |
| + crypto_key_header->second.begin(), crypto_key_header->second.end()); |
| + if (!crypto_key_header_iterator.GetNext()) { |
| DLOG(ERROR) << "Unable to parse the value of the Crypto-Key header"; |
| failure_callback.Run(DECRYPTION_FAILURE_INVALID_CRYPTO_KEY_HEADER); |
| return; |
| } |
| - if (crypto_key_header_values.size() != 1u || |
| - !crypto_key_header_values[0].dh.size()) { |
| + if (!crypto_key_header_iterator.dh().size()) { |
|
Ryan Sleevi
2015/12/08 00:22:00
Use .empty(), not .size(), to test for empty STL c
Peter Beverloo
2015/12/16 21:09:57
Done.
|
| DLOG(ERROR) << "Invalid values supplied in the Crypto-Key header"; |
| failure_callback.Run(DECRYPTION_FAILURE_INVALID_CRYPTO_KEY_HEADER); |
| return; |
| @@ -120,9 +118,9 @@ void GCMEncryptionProvider::DecryptMessage( |
| app_id, base::Bind(&GCMEncryptionProvider::DecryptMessageWithKey, |
| weak_ptr_factory_.GetWeakPtr(), message, |
| success_callback, failure_callback, |
| - encryption_header_values[0].salt, |
| - crypto_key_header_values[0].dh, |
| - encryption_header_values[0].rs)); |
| + encryption_header_iterator.salt(), |
| + crypto_key_header_iterator.dh(), |
| + encryption_header_iterator.rs())); |
| } |
| void GCMEncryptionProvider::DidGetPublicKey(const std::string& app_id, |