| 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 4bd830327caf036af85a7bc3a5dcf15e2b998dec..d354179e42ee69467679a4efed1f169044bf607c 100644
|
| --- a/content/renderer/webcrypto/webcrypto_impl_unittest.cc
|
| +++ b/content/renderer/webcrypto/webcrypto_impl_unittest.cc
|
| @@ -427,6 +427,51 @@ TEST_F(WebCryptoImplTest, HMACSampleSets) {
|
| // mac
|
| "4f1ee7cb36c58803a8721d4ac8c4cf8cae5d8832392eed2a96dc59694252801b",
|
| },
|
| + // L=28, Count=71
|
| + {
|
| + blink::WebCryptoAlgorithmIdSha224,
|
| + // key
|
| + "6c2539f4d0453efbbacc137794930413aeb392e029e0724715f9d943d6dcf7cdcc7fc19"
|
| + "7333df4fc476d5737ac3940d40eae",
|
| + // message
|
| + "1f207b3fa6c905529c9f9f7894b8941b616974df2c0cc482c400f50734f293139b5bbf9"
|
| + "7384adfafc56494ca0629ed0ca179daf03056e33295eb19ec8dcd4dff898281b4b9409c"
|
| + "a369f662d49091a225a678b1ebb75818dcb6278a2d136319f78f9ba9df5031a4f6305ee"
|
| + "fde5b761d2f196ee318e89bcc4acebc2e11ed3b5dc4",
|
| + // mac
|
| + "4a7d9d13705b0faba0db75356c8ee0635afff1544911c69c2fbb1ab2"
|
| + },
|
| + // L=48, Count=50
|
| + {
|
| + blink::WebCryptoAlgorithmIdSha384,
|
| + // key
|
| + "d137f3e6cc4af28554beb03ba7a97e60c9d3959cd3bb08068edbf68d402d0498c6ee0ae"
|
| + "9e3a20dc7d8586e5c352f605cee19",
|
| + // message
|
| + "64a884670d1c1dff555483dcd3da305dfba54bdc4d817c33ccb8fe7eb2ebf6236241031"
|
| + "09ec41644fa078491900c59a0f666f0356d9bc0b45bcc79e5fc9850f4543d96bc680090"
|
| + "44add0838ac1260e80592fbc557b2ddaf5ed1b86d3ed8f09e622e567f1d39a340857f6a"
|
| + "850cceef6060c48dac3dd0071fe68eb4ed2ed9aca01",
|
| + // mac
|
| + "c550fa53514da34f15e7f98ea87226ab6896cdfae25d3ec2335839f755cdc9a4992092e"
|
| + "70b7e5bd422784380b6396cf5"
|
| + },
|
| + // L=64, Count=65
|
| + {
|
| + blink::WebCryptoAlgorithmIdSha512,
|
| + // key
|
| + "c367aeb5c02b727883ffe2a4ceebf911b01454beb328fb5d57fc7f11bf744576aba421e2"
|
| + "a63426ea8109bd28ff21f53cd2bf1a11c6c989623d6ec27cdb0bbf458250857d819ff844"
|
| + "08b4f3dce08b98b1587ee59683af8852a0a5f55bda3ab5e132b4010e",
|
| + // message
|
| + "1a7331c8ff1b748e3cee96952190fdbbe4ee2f79e5753bbb368255ee5b19c05a4ed9f1b2"
|
| + "c72ff1e9b9cb0348205087befa501e7793770faf0606e9c901836a9bc8afa00d7db94ee2"
|
| + "9eb191d5cf3fc3e8da95a0f9f4a2a7964289c3129b512bd890de8700a9205420f28a8965"
|
| + "b6c67be28ba7fe278e5fcd16f0f22cf2b2eacbb9",
|
| + // mac
|
| + "4459066109cb11e6870fa9c6bfd251adfa304c0a2928ca915049704972edc560cc7c0bc3"
|
| + "8249e9101aae2f7d4da62eaff83fb07134efc277de72b9e4ab360425"
|
| + },
|
| };
|
|
|
| for (size_t test_index = 0; test_index < ARRAYSIZE_UNSAFE(kTests);
|
| @@ -729,17 +774,24 @@ TEST_F(WebCryptoImplTest, MAYBE(GenerateKeyHmac)) {
|
| blink::WebArrayBuffer key_bytes;
|
| blink::WebCryptoKey key = blink::WebCryptoKey::createNull();
|
| blink::WebCryptoAlgorithm algorithm = webcrypto::CreateHmacKeyGenAlgorithm(
|
| - blink::WebCryptoAlgorithmIdSha1, 128);
|
| + blink::WebCryptoAlgorithmIdSha1, 64);
|
| ASSERT_TRUE(GenerateKeyInternal(algorithm, &key));
|
| EXPECT_FALSE(key.isNull());
|
| EXPECT_TRUE(key.handle());
|
| EXPECT_EQ(blink::WebCryptoKeyTypeSecret, key.type());
|
| + EXPECT_EQ(blink::WebCryptoAlgorithmIdHmac, key.algorithm().id());
|
| +
|
| + blink::WebArrayBuffer raw_key;
|
| + ASSERT_TRUE(ExportKeyInternal(blink::WebCryptoKeyFormatRaw, key, &raw_key));
|
| + EXPECT_EQ(64U, raw_key.byteLength());
|
| + keys.push_back(raw_key);
|
| }
|
| // Ensure all entries in the key sample set are unique. This is a simplistic
|
| // estimate of whether the generated keys appear random.
|
| EXPECT_FALSE(CopiesExist(keys));
|
| }
|
|
|
| +// If the key length is not provided, then the block size is used.
|
| TEST_F(WebCryptoImplTest, MAYBE(GenerateKeyHmacNoLength)) {
|
| blink::WebCryptoKey key = blink::WebCryptoKey::createNull();
|
| blink::WebCryptoAlgorithm algorithm =
|
| @@ -747,6 +799,16 @@ TEST_F(WebCryptoImplTest, MAYBE(GenerateKeyHmacNoLength)) {
|
| ASSERT_TRUE(GenerateKeyInternal(algorithm, &key));
|
| EXPECT_TRUE(key.handle());
|
| EXPECT_EQ(blink::WebCryptoKeyTypeSecret, key.type());
|
| + blink::WebArrayBuffer raw_key;
|
| + ASSERT_TRUE(ExportKeyInternal(blink::WebCryptoKeyFormatRaw, key, &raw_key));
|
| + EXPECT_EQ(64U, raw_key.byteLength());
|
| +
|
| + // The block size for HMAC SHA-512 is larger.
|
| + algorithm = webcrypto::CreateHmacKeyGenAlgorithm(
|
| + blink::WebCryptoAlgorithmIdSha512, 0);
|
| + ASSERT_TRUE(GenerateKeyInternal(algorithm, &key));
|
| + ASSERT_TRUE(ExportKeyInternal(blink::WebCryptoKeyFormatRaw, key, &raw_key));
|
| + EXPECT_EQ(128U, raw_key.byteLength());
|
| }
|
|
|
| TEST_F(WebCryptoImplTest, MAYBE(ImportSecretKeyNoAlgorithm)) {
|
|
|