Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(611)

Side by Side Diff: third_party/WebKit/Source/bindings/modules/v8/serialization/V8ScriptValueSerializerForModulesTest.cpp

Issue 2547053003: s/ passed(...) / WTF::passed(...) / to avoid future ambiguity w/ base::Passed. (Closed)
Patch Set: Rebasing... Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "bindings/modules/v8/serialization/V8ScriptValueSerializerForModules.h" 5 #include "bindings/modules/v8/serialization/V8ScriptValueSerializerForModules.h"
6 6
7 #include "bindings/core/v8/ExceptionStatePlaceholder.h" 7 #include "bindings/core/v8/ExceptionStatePlaceholder.h"
8 #include "bindings/core/v8/ToV8.h" 8 #include "bindings/core/v8/ToV8.h"
9 #include "bindings/core/v8/V8ArrayBuffer.h" 9 #include "bindings/core/v8/V8ArrayBuffer.h"
10 #include "bindings/core/v8/V8BindingForTesting.h" 10 #include "bindings/core/v8/V8BindingForTesting.h"
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after
421 421
422 // Check that the keys have the same raw representation. 422 // Check that the keys have the same raw representation.
423 WebVector<uint8_t> keyRaw = 423 WebVector<uint8_t> keyRaw =
424 syncExportKey(scriptState, WebCryptoKeyFormatRaw, key->key()); 424 syncExportKey(scriptState, WebCryptoKeyFormatRaw, key->key());
425 WebVector<uint8_t> newKeyRaw = 425 WebVector<uint8_t> newKeyRaw =
426 syncExportKey(scriptState, WebCryptoKeyFormatRaw, newKey->key()); 426 syncExportKey(scriptState, WebCryptoKeyFormatRaw, newKey->key());
427 EXPECT_THAT(newKeyRaw, ElementsAreArray(keyRaw)); 427 EXPECT_THAT(newKeyRaw, ElementsAreArray(keyRaw));
428 428
429 // Check that one can decrypt data encrypted with the other. 429 // Check that one can decrypt data encrypted with the other.
430 Vector<unsigned char> iv(16, 0); 430 Vector<unsigned char> iv(16, 0);
431 WebCryptoAlgorithm encryptAlgorithm(WebCryptoAlgorithmIdAesCbc, 431 WebCryptoAlgorithm encryptAlgorithm(
432 makeUnique<WebCryptoAesCbcParams>(iv)); 432 WebCryptoAlgorithmIdAesCbc, WTF::makeUnique<WebCryptoAesCbcParams>(iv));
433 Vector<unsigned char> plaintext{1, 2, 3}; 433 Vector<unsigned char> plaintext{1, 2, 3};
434 WebVector<uint8_t> ciphertext = 434 WebVector<uint8_t> ciphertext =
435 syncEncrypt(scriptState, encryptAlgorithm, key->key(), plaintext); 435 syncEncrypt(scriptState, encryptAlgorithm, key->key(), plaintext);
436 WebVector<uint8_t> newPlaintext = 436 WebVector<uint8_t> newPlaintext =
437 syncDecrypt(scriptState, encryptAlgorithm, newKey->key(), ciphertext); 437 syncDecrypt(scriptState, encryptAlgorithm, newKey->key(), ciphertext);
438 EXPECT_THAT(newPlaintext, ElementsAre(1, 2, 3)); 438 EXPECT_THAT(newPlaintext, ElementsAre(1, 2, 3));
439 } 439 }
440 440
441 TEST(V8ScriptValueSerializerForModulesTest, DecodeCryptoKeyAES) { 441 TEST(V8ScriptValueSerializerForModulesTest, DecodeCryptoKeyAES) {
442 ScopedEnableV8BasedStructuredClone enable; 442 ScopedEnableV8BasedStructuredClone enable;
(...skipping 10 matching lines...) Expand all
453 ASSERT_TRUE(V8CryptoKey::hasInstance(result, scope.isolate())); 453 ASSERT_TRUE(V8CryptoKey::hasInstance(result, scope.isolate()));
454 CryptoKey* newKey = V8CryptoKey::toImpl(result.As<v8::Object>()); 454 CryptoKey* newKey = V8CryptoKey::toImpl(result.As<v8::Object>());
455 EXPECT_EQ("secret", newKey->type()); 455 EXPECT_EQ("secret", newKey->type());
456 EXPECT_FALSE(newKey->extractable()); 456 EXPECT_FALSE(newKey->extractable());
457 EXPECT_THAT(newKey->usages(), UnorderedElementsAre("decrypt")); 457 EXPECT_THAT(newKey->usages(), UnorderedElementsAre("decrypt"));
458 458
459 // Check that it can successfully decrypt data. 459 // Check that it can successfully decrypt data.
460 Vector<uint8_t> iv(16, 0); 460 Vector<uint8_t> iv(16, 0);
461 Vector<uint8_t> ciphertext{0x33, 0x26, 0xe7, 0x64, 0x11, 0x5e, 0xf4, 0x60, 461 Vector<uint8_t> ciphertext{0x33, 0x26, 0xe7, 0x64, 0x11, 0x5e, 0xf4, 0x60,
462 0x96, 0x08, 0x11, 0xaf, 0x65, 0x8b, 0x87, 0x04}; 462 0x96, 0x08, 0x11, 0xaf, 0x65, 0x8b, 0x87, 0x04};
463 WebCryptoAlgorithm encryptAlgorithm(WebCryptoAlgorithmIdAesCbc, 463 WebCryptoAlgorithm encryptAlgorithm(
464 makeUnique<WebCryptoAesCbcParams>(iv)); 464 WebCryptoAlgorithmIdAesCbc, WTF::makeUnique<WebCryptoAesCbcParams>(iv));
465 WebVector<uint8_t> plaintext = 465 WebVector<uint8_t> plaintext =
466 syncDecrypt(scriptState, encryptAlgorithm, newKey->key(), ciphertext); 466 syncDecrypt(scriptState, encryptAlgorithm, newKey->key(), ciphertext);
467 EXPECT_THAT(plaintext, ElementsAre(1, 2, 3)); 467 EXPECT_THAT(plaintext, ElementsAre(1, 2, 3));
468 } 468 }
469 469
470 // HMAC-SHA256 uses HMAC key params. 470 // HMAC-SHA256 uses HMAC key params.
471 TEST(V8ScriptValueSerializerForModulesTest, RoundTripCryptoKeyHMAC) { 471 TEST(V8ScriptValueSerializerForModulesTest, RoundTripCryptoKeyHMAC) {
472 ScopedEnableV8BasedStructuredClone enable; 472 ScopedEnableV8BasedStructuredClone enable;
473 V8TestingScope scope; 473 V8TestingScope scope;
474 ScriptState* scriptState = scope.getScriptState(); 474 ScriptState* scriptState = scope.getScriptState();
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
571 // Check that the keys have the same PKCS8 representation. 571 // Check that the keys have the same PKCS8 representation.
572 WebVector<uint8_t> keyRaw = 572 WebVector<uint8_t> keyRaw =
573 syncExportKey(scriptState, WebCryptoKeyFormatPkcs8, privateKey->key()); 573 syncExportKey(scriptState, WebCryptoKeyFormatPkcs8, privateKey->key());
574 WebVector<uint8_t> newKeyRaw = 574 WebVector<uint8_t> newKeyRaw =
575 syncExportKey(scriptState, WebCryptoKeyFormatPkcs8, newPrivateKey->key()); 575 syncExportKey(scriptState, WebCryptoKeyFormatPkcs8, newPrivateKey->key());
576 EXPECT_THAT(newKeyRaw, ElementsAreArray(keyRaw)); 576 EXPECT_THAT(newKeyRaw, ElementsAreArray(keyRaw));
577 577
578 // Check that one can verify a message signed by the other. 578 // Check that one can verify a message signed by the other.
579 Vector<uint8_t> message{1, 2, 3}; 579 Vector<uint8_t> message{1, 2, 3};
580 WebCryptoAlgorithm algorithm(WebCryptoAlgorithmIdRsaPss, 580 WebCryptoAlgorithm algorithm(WebCryptoAlgorithmIdRsaPss,
581 makeUnique<WebCryptoRsaPssParams>(16)); 581 WTF::makeUnique<WebCryptoRsaPssParams>(16));
582 WebVector<uint8_t> signature = 582 WebVector<uint8_t> signature =
583 syncSign(scriptState, algorithm, newPrivateKey->key(), message); 583 syncSign(scriptState, algorithm, newPrivateKey->key(), message);
584 EXPECT_TRUE(syncVerifySignature(scriptState, algorithm, publicKey->key(), 584 EXPECT_TRUE(syncVerifySignature(scriptState, algorithm, publicKey->key(),
585 signature, message)); 585 signature, message));
586 } 586 }
587 587
588 TEST(V8ScriptValueSerializerForModulesTest, DecodeCryptoKeyRSAHashed) { 588 TEST(V8ScriptValueSerializerForModulesTest, DecodeCryptoKeyRSAHashed) {
589 ScopedEnableV8BasedStructuredClone enable; 589 ScopedEnableV8BasedStructuredClone enable;
590 V8TestingScope scope; 590 V8TestingScope scope;
591 ScriptState* scriptState = scope.getScriptState(); 591 ScriptState* scriptState = scope.getScriptState();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 0x98, 0x1f, 0xf3, 0x9d, 0x32, 0x87, 0xdc, 0xbb, 0xb6, 0x3a, 0xa4, 0x6d, 623 0x98, 0x1f, 0xf3, 0x9d, 0x32, 0x87, 0xdc, 0xbb, 0xb6, 0x3a, 0xa4, 0x6d,
624 0xd4, 0xb5, 0x52, 0x83, 0x24, 0x02, 0xc7, 0x62, 0x1f, 0xb7, 0x27, 0x2b, 624 0xd4, 0xb5, 0x52, 0x83, 0x24, 0x02, 0xc7, 0x62, 0x1f, 0xb7, 0x27, 0x2b,
625 0x5a, 0x54, 0x59, 0x17, 0x81, 0x8a, 0xf5, 0x0c, 0x17, 0x01, 0x45, 0x3f, 625 0x5a, 0x54, 0x59, 0x17, 0x81, 0x8a, 0xf5, 0x0c, 0x17, 0x01, 0x45, 0x3f,
626 0x14, 0xf2, 0x3c, 0x27, 0x4d, 0xfa, 0xc0, 0x0a, 0x82, 0x4b, 0xb2, 0xf4, 626 0x14, 0xf2, 0x3c, 0x27, 0x4d, 0xfa, 0xc0, 0x0a, 0x82, 0x4b, 0xb2, 0xf4,
627 0x7b, 0x14, 0x1b, 0xd8, 0xbc, 0xe9, 0x2e, 0xd4, 0x55, 0x27, 0x62, 0x83, 627 0x7b, 0x14, 0x1b, 0xd8, 0xbc, 0xe9, 0x2e, 0xd4, 0x55, 0x27, 0x62, 0x83,
628 0x11, 0xed, 0xc2, 0x81, 0x7d, 0xa9, 0x4f, 0xe0, 0xef, 0x0e, 0xa5, 0xa5, 628 0x11, 0xed, 0xc2, 0x81, 0x7d, 0xa9, 0x4f, 0xe0, 0xef, 0x0e, 0xa5, 0xa5,
629 0xc6, 0x40, 0x46, 0xbf, 0x90, 0x19, 0xfc, 0xc8, 0x51, 0x0e, 0x0f, 0x62, 629 0xc6, 0x40, 0x46, 0xbf, 0x90, 0x19, 0xfc, 0xc8, 0x51, 0x0e, 0x0f, 0x62,
630 0xeb, 0x17, 0x68, 0x1f, 0xbd, 0xfa, 0xf7, 0xd6, 0x1f, 0xa4, 0x7c, 0x9e, 630 0xeb, 0x17, 0x68, 0x1f, 0xbd, 0xfa, 0xf7, 0xd6, 0x1f, 0xa4, 0x7c, 0x9e,
631 0x9e, 0xb1, 0x96, 0x8f, 0xe6, 0x5e, 0x89, 0x99}; 631 0x9e, 0xb1, 0x96, 0x8f, 0xe6, 0x5e, 0x89, 0x99};
632 WebCryptoAlgorithm algorithm(WebCryptoAlgorithmIdRsaPss, 632 WebCryptoAlgorithm algorithm(WebCryptoAlgorithmIdRsaPss,
633 makeUnique<WebCryptoRsaPssParams>(16)); 633 WTF::makeUnique<WebCryptoRsaPssParams>(16));
634 EXPECT_TRUE(syncVerifySignature(scriptState, algorithm, newPublicKey->key(), 634 EXPECT_TRUE(syncVerifySignature(scriptState, algorithm, newPublicKey->key(),
635 signature, message)); 635 signature, message));
636 } 636 }
637 637
638 // ECDSA uses EC key params. 638 // ECDSA uses EC key params.
639 TEST(V8ScriptValueSerializerForModulesTest, RoundTripCryptoKeyEC) { 639 TEST(V8ScriptValueSerializerForModulesTest, RoundTripCryptoKeyEC) {
640 ScopedEnableV8BasedStructuredClone enable; 640 ScopedEnableV8BasedStructuredClone enable;
641 V8TestingScope scope; 641 V8TestingScope scope;
642 ScriptState* scriptState = scope.getScriptState(); 642 ScriptState* scriptState = scope.getScriptState();
643 643
(...skipping 21 matching lines...) Expand all
665 WebVector<uint8_t> keyRaw = 665 WebVector<uint8_t> keyRaw =
666 syncExportKey(scriptState, WebCryptoKeyFormatPkcs8, privateKey->key()); 666 syncExportKey(scriptState, WebCryptoKeyFormatPkcs8, privateKey->key());
667 WebVector<uint8_t> newKeyRaw = 667 WebVector<uint8_t> newKeyRaw =
668 syncExportKey(scriptState, WebCryptoKeyFormatPkcs8, newPrivateKey->key()); 668 syncExportKey(scriptState, WebCryptoKeyFormatPkcs8, newPrivateKey->key());
669 EXPECT_THAT(newKeyRaw, ElementsAreArray(keyRaw)); 669 EXPECT_THAT(newKeyRaw, ElementsAreArray(keyRaw));
670 670
671 // Check that one can verify a message signed by the other. 671 // Check that one can verify a message signed by the other.
672 WebCryptoAlgorithm hash(WebCryptoAlgorithmIdSha256, nullptr); 672 WebCryptoAlgorithm hash(WebCryptoAlgorithmIdSha256, nullptr);
673 Vector<uint8_t> message{1, 2, 3}; 673 Vector<uint8_t> message{1, 2, 3};
674 WebCryptoAlgorithm algorithm(WebCryptoAlgorithmIdEcdsa, 674 WebCryptoAlgorithm algorithm(WebCryptoAlgorithmIdEcdsa,
675 makeUnique<WebCryptoEcdsaParams>(hash)); 675 WTF::makeUnique<WebCryptoEcdsaParams>(hash));
676 WebVector<uint8_t> signature = 676 WebVector<uint8_t> signature =
677 syncSign(scriptState, algorithm, newPrivateKey->key(), message); 677 syncSign(scriptState, algorithm, newPrivateKey->key(), message);
678 EXPECT_TRUE(syncVerifySignature(scriptState, algorithm, publicKey->key(), 678 EXPECT_TRUE(syncVerifySignature(scriptState, algorithm, publicKey->key(),
679 signature, message)); 679 signature, message));
680 } 680 }
681 681
682 TEST(V8ScriptValueSerializerForModulesTest, DecodeCryptoKeyEC) { 682 TEST(V8ScriptValueSerializerForModulesTest, DecodeCryptoKeyEC) {
683 ScopedEnableV8BasedStructuredClone enable; 683 ScopedEnableV8BasedStructuredClone enable;
684 V8TestingScope scope; 684 V8TestingScope scope;
685 ScriptState* scriptState = scope.getScriptState(); 685 ScriptState* scriptState = scope.getScriptState();
(...skipping 21 matching lines...) Expand all
707 Vector<uint8_t> message{1, 2, 3}; 707 Vector<uint8_t> message{1, 2, 3};
708 Vector<uint8_t> signature{ 708 Vector<uint8_t> signature{
709 0xee, 0x63, 0xa2, 0xa3, 0x87, 0x6c, 0x9f, 0xc5, 0x64, 0x12, 0x87, 709 0xee, 0x63, 0xa2, 0xa3, 0x87, 0x6c, 0x9f, 0xc5, 0x64, 0x12, 0x87,
710 0x0d, 0xc7, 0xff, 0x3c, 0xd2, 0x6c, 0x2b, 0x2c, 0x0b, 0x2b, 0x8d, 710 0x0d, 0xc7, 0xff, 0x3c, 0xd2, 0x6c, 0x2b, 0x2c, 0x0b, 0x2b, 0x8d,
711 0x3c, 0xe0, 0x3f, 0xd3, 0xfc, 0x28, 0xf0, 0xa1, 0x22, 0x69, 0x0a, 711 0x3c, 0xe0, 0x3f, 0xd3, 0xfc, 0x28, 0xf0, 0xa1, 0x22, 0x69, 0x0a,
712 0x33, 0x4d, 0x48, 0x97, 0xad, 0x67, 0xa9, 0x6e, 0x24, 0xe7, 0x31, 712 0x33, 0x4d, 0x48, 0x97, 0xad, 0x67, 0xa9, 0x6e, 0x24, 0xe7, 0x31,
713 0x09, 0xdb, 0xa8, 0x92, 0x48, 0x70, 0xa6, 0x6c, 0x46, 0x4d, 0x0b, 713 0x09, 0xdb, 0xa8, 0x92, 0x48, 0x70, 0xa6, 0x6c, 0x46, 0x4d, 0x0b,
714 0x83, 0x27, 0x37, 0x69, 0x4d, 0x32, 0x63, 0x1e, 0x82}; 714 0x83, 0x27, 0x37, 0x69, 0x4d, 0x32, 0x63, 0x1e, 0x82};
715 WebCryptoAlgorithm hash(WebCryptoAlgorithmIdSha256, nullptr); 715 WebCryptoAlgorithm hash(WebCryptoAlgorithmIdSha256, nullptr);
716 WebCryptoAlgorithm algorithm(WebCryptoAlgorithmIdEcdsa, 716 WebCryptoAlgorithm algorithm(WebCryptoAlgorithmIdEcdsa,
717 makeUnique<WebCryptoEcdsaParams>(hash)); 717 WTF::makeUnique<WebCryptoEcdsaParams>(hash));
718 EXPECT_TRUE(syncVerifySignature(scriptState, algorithm, newPublicKey->key(), 718 EXPECT_TRUE(syncVerifySignature(scriptState, algorithm, newPublicKey->key(),
719 signature, message)); 719 signature, message));
720 } 720 }
721 721
722 TEST(V8ScriptValueSerializerForModulesTest, RoundTripCryptoKeyNoParams) { 722 TEST(V8ScriptValueSerializerForModulesTest, RoundTripCryptoKeyNoParams) {
723 ScopedEnableV8BasedStructuredClone enable; 723 ScopedEnableV8BasedStructuredClone enable;
724 V8TestingScope scope; 724 V8TestingScope scope;
725 ScriptState* scriptState = scope.getScriptState(); 725 ScriptState* scriptState = scope.getScriptState();
726 726
727 // Import some data into a PBKDF2 state. 727 // Import some data into a PBKDF2 state.
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
971 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69, 971 0x63, 0x6f, 0x6d, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x69,
972 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2f 972 0x73, 0x74, 0x65, 0x6e, 0x74, 0x2f
973 973
974 })) 974 }))
975 .deserialize() 975 .deserialize()
976 ->IsNull()); 976 ->IsNull());
977 } 977 }
978 978
979 } // namespace 979 } // namespace
980 } // namespace blink 980 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698