| Index: content/renderer/webcrypto/webcrypto_impl_unittest.cc
|
| diff --git a/content/renderer/webcrypto/webcrypto_impl_unittest.cc b/content/renderer/webcrypto/webcrypto_impl_unittest.cc
|
| index 6b197dbd146568fa4712b597707dc82e61156130..a659c7f24eaab61688de52601afb67a947008824 100644
|
| --- a/content/renderer/webcrypto/webcrypto_impl_unittest.cc
|
| +++ b/content/renderer/webcrypto/webcrypto_impl_unittest.cc
|
| @@ -138,15 +138,6 @@ class WebCryptoImplTest : public testing::Test {
|
| return crypto_.EncryptInternal(algorithm, key, data, data_size, buffer);
|
| }
|
|
|
| - bool DecryptInternal(
|
| - const WebKit::WebCryptoAlgorithm& algorithm,
|
| - const WebKit::WebCryptoKey& key,
|
| - const unsigned char* data,
|
| - unsigned data_size,
|
| - WebKit::WebArrayBuffer* buffer) {
|
| - return crypto_.DecryptInternal(algorithm, key, data, data_size, buffer);
|
| - }
|
| -
|
| private:
|
| WebCryptoImpl crypto_;
|
| };
|
| @@ -375,7 +366,7 @@ TEST_F(WebCryptoImplTest, HMACSampleSets) {
|
| }
|
| }
|
|
|
| -TEST_F(WebCryptoImplTest, AesCbcFailures) {
|
| +TEST_F(WebCryptoImplTest, AesCbcEncryptionFailures) {
|
| WebKit::WebCryptoKey key = ImportSecretKeyFromRawHexString(
|
| "2b7e151628aed2a6abf7158809cf4f3c",
|
| CreateAlgorithm(WebKit::WebCryptoAlgorithmIdAesCbc),
|
| @@ -385,22 +376,24 @@ TEST_F(WebCryptoImplTest, AesCbcFailures) {
|
|
|
| // Use an invalid |iv| (fewer than 16 bytes)
|
| {
|
| - std::vector<uint8> input(32);
|
| + std::vector<uint8> plain_text(33);
|
| std::vector<uint8> iv;
|
| - EXPECT_FALSE(EncryptInternal(
|
| - CreateAesCbcAlgorithm(iv), key, &input[0], input.size(), &output));
|
| - EXPECT_FALSE(DecryptInternal(
|
| - CreateAesCbcAlgorithm(iv), key, &input[0], input.size(), &output));
|
| + EXPECT_FALSE(EncryptInternal(CreateAesCbcAlgorithm(iv),
|
| + key,
|
| + &plain_text[0],
|
| + plain_text.size(),
|
| + &output));
|
| }
|
|
|
| // Use an invalid |iv| (more than 16 bytes)
|
| {
|
| - std::vector<uint8> input(32);
|
| + std::vector<uint8> plain_text(33);
|
| std::vector<uint8> iv(17);
|
| - EXPECT_FALSE(EncryptInternal(
|
| - CreateAesCbcAlgorithm(iv), key, &input[0], input.size(), &output));
|
| - EXPECT_FALSE(DecryptInternal(
|
| - CreateAesCbcAlgorithm(iv), key, &input[0], input.size(), &output));
|
| + EXPECT_FALSE(EncryptInternal(CreateAesCbcAlgorithm(iv),
|
| + key,
|
| + &plain_text[0],
|
| + plain_text.size(),
|
| + &output));
|
| }
|
|
|
| // Give an input that is too large (would cause integer overflow when
|
| @@ -411,13 +404,11 @@ TEST_F(WebCryptoImplTest, AesCbcFailures) {
|
| // Pretend the input is large. Don't pass data pointer as NULL in case that
|
| // is special cased; the implementation shouldn't actually dereference the
|
| // data.
|
| - const unsigned char* input = &iv[0];
|
| - unsigned input_len = INT_MAX - 3;
|
| + const unsigned char* plain_text = &iv[0];
|
| + unsigned plain_text_len = INT_MAX - 3;
|
|
|
| EXPECT_FALSE(EncryptInternal(
|
| - CreateAesCbcAlgorithm(iv), key, input, input_len, &output));
|
| - EXPECT_FALSE(DecryptInternal(
|
| - CreateAesCbcAlgorithm(iv), key, input, input_len, &output));
|
| + CreateAesCbcAlgorithm(iv), key, plain_text, plain_text_len, &output));
|
| }
|
|
|
| // Fail importing the key (too few bytes specified)
|
| @@ -530,44 +521,13 @@ TEST_F(WebCryptoImplTest, AesCbcSampleSets) {
|
|
|
| WebKit::WebArrayBuffer output;
|
|
|
| - // Test encryption.
|
| EXPECT_TRUE(EncryptInternal(CreateAesCbcAlgorithm(iv),
|
| key,
|
| &plain_text[0],
|
| plain_text.size(),
|
| &output));
|
| - ExpectArrayBufferMatchesHex(test.cipher_text, output);
|
|
|
| - // Test decryption.
|
| - std::vector<uint8> cipher_text = HexStringToBytes(test.cipher_text);
|
| - EXPECT_TRUE(DecryptInternal(CreateAesCbcAlgorithm(iv),
|
| - key,
|
| - &cipher_text[0],
|
| - cipher_text.size(),
|
| - &output));
|
| - ExpectArrayBufferMatchesHex(test.plain_text, output);
|
| -
|
| - const unsigned kAesCbcBlockSize = 16;
|
| -
|
| - // Decrypt with a padding error by stripping the last block. This also ends
|
| - // up testing decryption over empty cipher text.
|
| - if (cipher_text.size() >= kAesCbcBlockSize) {
|
| - EXPECT_FALSE(DecryptInternal(CreateAesCbcAlgorithm(iv),
|
| - key,
|
| - &cipher_text[0],
|
| - cipher_text.size() - kAesCbcBlockSize,
|
| - &output));
|
| - }
|
| -
|
| - // Decrypt cipher text which is not block-aligned, by stripping a few bytes
|
| - // off the cipher text.
|
| - if (cipher_text.size() > 3) {
|
| - EXPECT_FALSE(DecryptInternal(CreateAesCbcAlgorithm(iv),
|
| - key,
|
| - &cipher_text[0],
|
| - cipher_text.size() - 3,
|
| - &output));
|
| - }
|
| + ExpectArrayBufferMatchesHex(test.cipher_text, output);
|
| }
|
| }
|
|
|
|
|