OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "base/stl_util.h" | 5 #include "base/stl_util.h" |
6 #include "content/child/webcrypto/algorithm_dispatch.h" | 6 #include "content/child/webcrypto/algorithm_dispatch.h" |
7 #include "content/child/webcrypto/crypto_data.h" | 7 #include "content/child/webcrypto/crypto_data.h" |
8 #include "content/child/webcrypto/status.h" | 8 #include "content/child/webcrypto/status.h" |
9 #include "content/child/webcrypto/test/test_helpers.h" | 9 #include "content/child/webcrypto/test/test_helpers.h" |
10 #include "content/child/webcrypto/webcrypto_util.h" | 10 #include "content/child/webcrypto/webcrypto_util.h" |
(...skipping 234 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 &output)); | 245 &output)); |
246 } | 246 } |
247 } | 247 } |
248 } | 248 } |
249 | 249 |
250 // TODO(eroman): Do this same test for AES-GCM, AES-KW, AES-CTR ? | 250 // TODO(eroman): Do this same test for AES-GCM, AES-KW, AES-CTR ? |
251 TEST(WebCryptoAesCbcTest, GenerateKeyIsRandom) { | 251 TEST(WebCryptoAesCbcTest, GenerateKeyIsRandom) { |
252 // Check key generation for each allowed key length. | 252 // Check key generation for each allowed key length. |
253 std::vector<blink::WebCryptoAlgorithm> algorithm; | 253 std::vector<blink::WebCryptoAlgorithm> algorithm; |
254 const unsigned short kKeyLength[] = {128, 256}; | 254 const unsigned short kKeyLength[] = {128, 256}; |
255 for (size_t key_length_i = 0; key_length_i < ARRAYSIZE_UNSAFE(kKeyLength); | 255 for (size_t key_length_i = 0; key_length_i < arraysize(kKeyLength); |
256 ++key_length_i) { | 256 ++key_length_i) { |
257 blink::WebCryptoKey key = blink::WebCryptoKey::createNull(); | 257 blink::WebCryptoKey key = blink::WebCryptoKey::createNull(); |
258 | 258 |
259 std::vector<std::vector<uint8_t> > keys; | 259 std::vector<std::vector<uint8_t> > keys; |
260 std::vector<uint8_t> key_bytes; | 260 std::vector<uint8_t> key_bytes; |
261 | 261 |
262 // Generate a small sample of keys. | 262 // Generate a small sample of keys. |
263 for (int j = 0; j < 16; ++j) { | 263 for (int j = 0; j < 16; ++j) { |
264 ASSERT_EQ(Status::Success(), | 264 ASSERT_EQ(Status::Success(), |
265 GenerateSecretKey( | 265 GenerateSecretKey( |
(...skipping 11 matching lines...) Expand all Loading... |
277 } | 277 } |
278 // Ensure all entries in the key sample set are unique. This is a simplistic | 278 // Ensure all entries in the key sample set are unique. This is a simplistic |
279 // estimate of whether the generated keys appear random. | 279 // estimate of whether the generated keys appear random. |
280 EXPECT_FALSE(CopiesExist(keys)); | 280 EXPECT_FALSE(CopiesExist(keys)); |
281 } | 281 } |
282 } | 282 } |
283 | 283 |
284 TEST(WebCryptoAesCbcTest, GenerateKeyBadLength) { | 284 TEST(WebCryptoAesCbcTest, GenerateKeyBadLength) { |
285 const unsigned short kKeyLen[] = {0, 127, 257}; | 285 const unsigned short kKeyLen[] = {0, 127, 257}; |
286 blink::WebCryptoKey key = blink::WebCryptoKey::createNull(); | 286 blink::WebCryptoKey key = blink::WebCryptoKey::createNull(); |
287 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kKeyLen); ++i) { | 287 for (size_t i = 0; i < arraysize(kKeyLen); ++i) { |
288 SCOPED_TRACE(i); | 288 SCOPED_TRACE(i); |
289 EXPECT_EQ(Status::ErrorGenerateKeyLength(), | 289 EXPECT_EQ(Status::ErrorGenerateKeyLength(), |
290 GenerateSecretKey( | 290 GenerateSecretKey( |
291 CreateAesCbcKeyGenAlgorithm(kKeyLen[i]), true, 0, &key)); | 291 CreateAesCbcKeyGenAlgorithm(kKeyLen[i]), true, 0, &key)); |
292 } | 292 } |
293 } | 293 } |
294 | 294 |
295 // If key_ops is specified but empty, no key usages are allowed for the key. | 295 // If key_ops is specified but empty, no key usages are allowed for the key. |
296 TEST(WebCryptoAesCbcTest, ImportKeyJwkEmptyKeyOps) { | 296 TEST(WebCryptoAesCbcTest, ImportKeyJwkEmptyKeyOps) { |
297 blink::WebCryptoKey key = blink::WebCryptoKey::createNull(); | 297 blink::WebCryptoKey key = blink::WebCryptoKey::createNull(); |
(...skipping 734 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1032 | 1032 |
1033 EXPECT_NE(public_key_spki, wrapped_public_key); | 1033 EXPECT_NE(public_key_spki, wrapped_public_key); |
1034 EXPECT_NE(private_key_pkcs8, wrapped_private_key); | 1034 EXPECT_NE(private_key_pkcs8, wrapped_private_key); |
1035 } | 1035 } |
1036 | 1036 |
1037 } // namespace | 1037 } // namespace |
1038 | 1038 |
1039 } // namespace webcrypto | 1039 } // namespace webcrypto |
1040 | 1040 |
1041 } // namespace content | 1041 } // namespace content |
OLD | NEW |