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

Side by Side Diff: content/child/webcrypto/test/rsa_ssa_unittest.cc

Issue 751883002: Revert of Check that usage isn't empty when generateKey() is called (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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
« no previous file with comments | « content/child/webcrypto/test/hmac_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/logging.h" 5 #include "base/logging.h"
6 #include "base/stl_util.h" 6 #include "base/stl_util.h"
7 #include "content/child/webcrypto/algorithm_dispatch.h" 7 #include "content/child/webcrypto/algorithm_dispatch.h"
8 #include "content/child/webcrypto/crypto_data.h" 8 #include "content/child/webcrypto/crypto_data.h"
9 #include "content/child/webcrypto/status.h" 9 #include "content/child/webcrypto/status.h"
10 #include "content/child/webcrypto/test/test_helpers.h" 10 #include "content/child/webcrypto/test/test_helpers.h"
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 337
338 // Successful WebCryptoAlgorithmIdRsaSsaPkcs1v1_5 key generation (sha256) 338 // Successful WebCryptoAlgorithmIdRsaSsaPkcs1v1_5 key generation (sha256)
339 const unsigned int modulus_length = 256; 339 const unsigned int modulus_length = 256;
340 const std::vector<uint8_t> public_exponent = HexStringToBytes("010001"); 340 const std::vector<uint8_t> public_exponent = HexStringToBytes("010001");
341 blink::WebCryptoAlgorithm algorithm = 341 blink::WebCryptoAlgorithm algorithm =
342 CreateRsaHashedKeyGenAlgorithm(blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, 342 CreateRsaHashedKeyGenAlgorithm(blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5,
343 blink::WebCryptoAlgorithmIdSha256, 343 blink::WebCryptoAlgorithmIdSha256,
344 modulus_length, 344 modulus_length,
345 public_exponent); 345 public_exponent);
346 bool extractable = true; 346 bool extractable = true;
347 const blink::WebCryptoKeyUsageMask public_usages = 347 const blink::WebCryptoKeyUsageMask usages = 0;
348 blink::WebCryptoKeyUsageVerify;
349 const blink::WebCryptoKeyUsageMask private_usages =
350 blink::WebCryptoKeyUsageSign;
351 const blink::WebCryptoKeyUsageMask usages = public_usages | private_usages;
352 blink::WebCryptoKey public_key; 348 blink::WebCryptoKey public_key;
353 blink::WebCryptoKey private_key; 349 blink::WebCryptoKey private_key;
354 350
355 EXPECT_EQ(Status::Success(), GenerateKeyPair(algorithm, extractable, usages, 351 EXPECT_EQ(Status::Success(),
356 &public_key, &private_key)); 352 GenerateKeyPair(
357 ASSERT_FALSE(public_key.isNull()); 353 algorithm, extractable, usages, &public_key, &private_key));
358 ASSERT_FALSE(private_key.isNull()); 354 EXPECT_FALSE(public_key.isNull());
355 EXPECT_FALSE(private_key.isNull());
359 EXPECT_EQ(blink::WebCryptoKeyTypePublic, public_key.type()); 356 EXPECT_EQ(blink::WebCryptoKeyTypePublic, public_key.type());
360 EXPECT_EQ(blink::WebCryptoKeyTypePrivate, private_key.type()); 357 EXPECT_EQ(blink::WebCryptoKeyTypePrivate, private_key.type());
361 EXPECT_EQ(modulus_length, 358 EXPECT_EQ(modulus_length,
362 public_key.algorithm().rsaHashedParams()->modulusLengthBits()); 359 public_key.algorithm().rsaHashedParams()->modulusLengthBits());
363 EXPECT_EQ(modulus_length, 360 EXPECT_EQ(modulus_length,
364 private_key.algorithm().rsaHashedParams()->modulusLengthBits()); 361 private_key.algorithm().rsaHashedParams()->modulusLengthBits());
365 EXPECT_EQ(blink::WebCryptoAlgorithmIdSha256, 362 EXPECT_EQ(blink::WebCryptoAlgorithmIdSha256,
366 public_key.algorithm().rsaHashedParams()->hash().id()); 363 public_key.algorithm().rsaHashedParams()->hash().id());
367 EXPECT_EQ(blink::WebCryptoAlgorithmIdSha256, 364 EXPECT_EQ(blink::WebCryptoAlgorithmIdSha256,
368 private_key.algorithm().rsaHashedParams()->hash().id()); 365 private_key.algorithm().rsaHashedParams()->hash().id());
369 EXPECT_TRUE(public_key.extractable()); 366 EXPECT_TRUE(public_key.extractable());
370 EXPECT_EQ(extractable, private_key.extractable()); 367 EXPECT_EQ(extractable, private_key.extractable());
371 EXPECT_EQ(public_usages, public_key.usages()); 368 EXPECT_EQ(usages, public_key.usages());
372 EXPECT_EQ(private_usages, private_key.usages()); 369 EXPECT_EQ(usages, private_key.usages());
373 370
374 // Try exporting the generated key pair, and then re-importing to verify that 371 // Try exporting the generated key pair, and then re-importing to verify that
375 // the exported data was valid. 372 // the exported data was valid.
376 std::vector<uint8_t> public_key_spki; 373 std::vector<uint8_t> public_key_spki;
377 EXPECT_EQ( 374 EXPECT_EQ(
378 Status::Success(), 375 Status::Success(),
379 ExportKey(blink::WebCryptoKeyFormatSpki, public_key, &public_key_spki)); 376 ExportKey(blink::WebCryptoKeyFormatSpki, public_key, &public_key_spki));
380 377
381 if (SupportsRsaPrivateKeyImport()) { 378 if (SupportsRsaPrivateKeyImport()) {
382 public_key = blink::WebCryptoKey::createNull(); 379 public_key = blink::WebCryptoKey::createNull();
383 ASSERT_EQ( 380 EXPECT_EQ(Status::Success(),
384 Status::Success(), 381 ImportKey(blink::WebCryptoKeyFormatSpki,
385 ImportKey(blink::WebCryptoKeyFormatSpki, CryptoData(public_key_spki), 382 CryptoData(public_key_spki),
386 CreateRsaHashedImportAlgorithm( 383 CreateRsaHashedImportAlgorithm(
387 blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, 384 blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5,
388 blink::WebCryptoAlgorithmIdSha256), 385 blink::WebCryptoAlgorithmIdSha256),
389 true, public_usages, &public_key)); 386 true,
387 usages,
388 &public_key));
390 EXPECT_EQ(modulus_length, 389 EXPECT_EQ(modulus_length,
391 public_key.algorithm().rsaHashedParams()->modulusLengthBits()); 390 public_key.algorithm().rsaHashedParams()->modulusLengthBits());
392 391
393 std::vector<uint8_t> private_key_pkcs8; 392 std::vector<uint8_t> private_key_pkcs8;
394 EXPECT_EQ( 393 EXPECT_EQ(
395 Status::Success(), 394 Status::Success(),
396 ExportKey( 395 ExportKey(
397 blink::WebCryptoKeyFormatPkcs8, private_key, &private_key_pkcs8)); 396 blink::WebCryptoKeyFormatPkcs8, private_key, &private_key_pkcs8));
398 private_key = blink::WebCryptoKey::createNull(); 397 private_key = blink::WebCryptoKey::createNull();
399 ASSERT_EQ( 398 EXPECT_EQ(Status::Success(),
400 Status::Success(), 399 ImportKey(blink::WebCryptoKeyFormatPkcs8,
401 ImportKey(blink::WebCryptoKeyFormatPkcs8, CryptoData(private_key_pkcs8), 400 CryptoData(private_key_pkcs8),
402 CreateRsaHashedImportAlgorithm( 401 CreateRsaHashedImportAlgorithm(
403 blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, 402 blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5,
404 blink::WebCryptoAlgorithmIdSha256), 403 blink::WebCryptoAlgorithmIdSha256),
405 true, private_usages, &private_key)); 404 true,
405 usages,
406 &private_key));
406 EXPECT_EQ(modulus_length, 407 EXPECT_EQ(modulus_length,
407 private_key.algorithm().rsaHashedParams()->modulusLengthBits()); 408 private_key.algorithm().rsaHashedParams()->modulusLengthBits());
408 } 409 }
409 410
410 // Fail with bad modulus. 411 // Fail with bad modulus.
411 algorithm = 412 algorithm =
412 CreateRsaHashedKeyGenAlgorithm(blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, 413 CreateRsaHashedKeyGenAlgorithm(blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5,
413 blink::WebCryptoAlgorithmIdSha256, 414 blink::WebCryptoAlgorithmIdSha256,
414 0, 415 0,
415 public_exponent); 416 public_exponent);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
453 454
454 // Key generation success using exponent with leading zeros. 455 // Key generation success using exponent with leading zeros.
455 exponent_with_leading_zeros.insert(exponent_with_leading_zeros.end(), 456 exponent_with_leading_zeros.insert(exponent_with_leading_zeros.end(),
456 public_exponent.begin(), 457 public_exponent.begin(),
457 public_exponent.end()); 458 public_exponent.end());
458 algorithm = 459 algorithm =
459 CreateRsaHashedKeyGenAlgorithm(blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, 460 CreateRsaHashedKeyGenAlgorithm(blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5,
460 blink::WebCryptoAlgorithmIdSha256, 461 blink::WebCryptoAlgorithmIdSha256,
461 modulus_length, 462 modulus_length,
462 exponent_with_leading_zeros); 463 exponent_with_leading_zeros);
463 EXPECT_EQ(Status::Success(), GenerateKeyPair(algorithm, extractable, usages, 464 EXPECT_EQ(Status::Success(),
464 &public_key, &private_key)); 465 GenerateKeyPair(
466 algorithm, extractable, usages, &public_key, &private_key));
465 EXPECT_FALSE(public_key.isNull()); 467 EXPECT_FALSE(public_key.isNull());
466 EXPECT_FALSE(private_key.isNull()); 468 EXPECT_FALSE(private_key.isNull());
467 EXPECT_EQ(blink::WebCryptoKeyTypePublic, public_key.type()); 469 EXPECT_EQ(blink::WebCryptoKeyTypePublic, public_key.type());
468 EXPECT_EQ(blink::WebCryptoKeyTypePrivate, private_key.type()); 470 EXPECT_EQ(blink::WebCryptoKeyTypePrivate, private_key.type());
469 EXPECT_TRUE(public_key.extractable()); 471 EXPECT_TRUE(public_key.extractable());
470 EXPECT_EQ(extractable, private_key.extractable()); 472 EXPECT_EQ(extractable, private_key.extractable());
471 EXPECT_EQ(public_usages, public_key.usages()); 473 EXPECT_EQ(usages, public_key.usages());
472 EXPECT_EQ(private_usages, private_key.usages()); 474 EXPECT_EQ(usages, private_key.usages());
473 475
474 // Successful WebCryptoAlgorithmIdRsaSsaPkcs1v1_5 key generation (sha1) 476 // Successful WebCryptoAlgorithmIdRsaSsaPkcs1v1_5 key generation (sha1)
475 algorithm = 477 algorithm =
476 CreateRsaHashedKeyGenAlgorithm(blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, 478 CreateRsaHashedKeyGenAlgorithm(blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5,
477 blink::WebCryptoAlgorithmIdSha1, 479 blink::WebCryptoAlgorithmIdSha1,
478 modulus_length, 480 modulus_length,
479 public_exponent); 481 public_exponent);
480 EXPECT_EQ( 482 EXPECT_EQ(
481 Status::Success(), 483 Status::Success(),
482 GenerateKeyPair(algorithm, false, usages, &public_key, &private_key)); 484 GenerateKeyPair(algorithm, false, usages, &public_key, &private_key));
483 EXPECT_FALSE(public_key.isNull()); 485 EXPECT_FALSE(public_key.isNull());
484 EXPECT_FALSE(private_key.isNull()); 486 EXPECT_FALSE(private_key.isNull());
485 EXPECT_EQ(blink::WebCryptoKeyTypePublic, public_key.type()); 487 EXPECT_EQ(blink::WebCryptoKeyTypePublic, public_key.type());
486 EXPECT_EQ(blink::WebCryptoKeyTypePrivate, private_key.type()); 488 EXPECT_EQ(blink::WebCryptoKeyTypePrivate, private_key.type());
487 EXPECT_EQ(modulus_length, 489 EXPECT_EQ(modulus_length,
488 public_key.algorithm().rsaHashedParams()->modulusLengthBits()); 490 public_key.algorithm().rsaHashedParams()->modulusLengthBits());
489 EXPECT_EQ(modulus_length, 491 EXPECT_EQ(modulus_length,
490 private_key.algorithm().rsaHashedParams()->modulusLengthBits()); 492 private_key.algorithm().rsaHashedParams()->modulusLengthBits());
491 EXPECT_EQ(blink::WebCryptoAlgorithmIdSha1, 493 EXPECT_EQ(blink::WebCryptoAlgorithmIdSha1,
492 public_key.algorithm().rsaHashedParams()->hash().id()); 494 public_key.algorithm().rsaHashedParams()->hash().id());
493 EXPECT_EQ(blink::WebCryptoAlgorithmIdSha1, 495 EXPECT_EQ(blink::WebCryptoAlgorithmIdSha1,
494 private_key.algorithm().rsaHashedParams()->hash().id()); 496 private_key.algorithm().rsaHashedParams()->hash().id());
495 // Even though "extractable" was set to false, the public key remains 497 // Even though "extractable" was set to false, the public key remains
496 // extractable. 498 // extractable.
497 EXPECT_TRUE(public_key.extractable()); 499 EXPECT_TRUE(public_key.extractable());
498 EXPECT_FALSE(private_key.extractable()); 500 EXPECT_FALSE(private_key.extractable());
499 EXPECT_EQ(public_usages, public_key.usages()); 501 EXPECT_EQ(usages, public_key.usages());
500 EXPECT_EQ(private_usages, private_key.usages()); 502 EXPECT_EQ(usages, private_key.usages());
501 503
502 // Exporting a private key as SPKI format doesn't make sense. However this 504 // Exporting a private key as SPKI format doesn't make sense. However this
503 // will first fail because the key is not extractable. 505 // will first fail because the key is not extractable.
504 std::vector<uint8_t> output; 506 std::vector<uint8_t> output;
505 EXPECT_EQ(Status::ErrorKeyNotExtractable(), 507 EXPECT_EQ(Status::ErrorKeyNotExtractable(),
506 ExportKey(blink::WebCryptoKeyFormatSpki, private_key, &output)); 508 ExportKey(blink::WebCryptoKeyFormatSpki, private_key, &output));
507 509
508 // Re-generate an extractable private_key and try to export it as SPKI format. 510 // Re-generate an extractable private_key and try to export it as SPKI format.
509 // This should fail since spki is for public keys. 511 // This should fail since spki is for public keys.
510 EXPECT_EQ(Status::Success(), GenerateKeyPair(algorithm, true, usages, 512 EXPECT_EQ(
511 &public_key, &private_key)); 513 Status::Success(),
514 GenerateKeyPair(algorithm, true, usages, &public_key, &private_key));
512 EXPECT_EQ(Status::ErrorUnexpectedKeyType(), 515 EXPECT_EQ(Status::ErrorUnexpectedKeyType(),
513 ExportKey(blink::WebCryptoKeyFormatSpki, private_key, &output)); 516 ExportKey(blink::WebCryptoKeyFormatSpki, private_key, &output));
514 } 517 }
515 518
516 TEST(WebCryptoRsaSsaTest, GenerateKeyPairRsaBadModulusLength) { 519 TEST(WebCryptoRsaSsaTest, GenerateKeyPairRsaBadModulusLength) {
517 const unsigned int kBadModulusBits[] = { 520 const unsigned int kBadModulusBits[] = {
518 0, 521 0,
519 248, // Too small. 522 248, // Too small.
520 257, // Not a multiple of 8. 523 257, // Not a multiple of 8.
521 1023, // Not a multiple of 8. 524 1023, // Not a multiple of 8.
522 0xFFFFFFFF, // Too big. 525 0xFFFFFFFF, // Too big.
523 16384 + 8, // 16384 is the maxmimum length that NSS succeeds for. 526 16384 + 8, // 16384 is the maxmimum length that NSS succeeds for.
524 }; 527 };
525 528
526 const std::vector<uint8_t> public_exponent = HexStringToBytes("010001"); 529 const std::vector<uint8_t> public_exponent = HexStringToBytes("010001");
527 530
528 for (size_t i = 0; i < arraysize(kBadModulusBits); ++i) { 531 for (size_t i = 0; i < arraysize(kBadModulusBits); ++i) {
529 const unsigned int modulus_length_bits = kBadModulusBits[i]; 532 const unsigned int modulus_length_bits = kBadModulusBits[i];
530 blink::WebCryptoAlgorithm algorithm = CreateRsaHashedKeyGenAlgorithm( 533 blink::WebCryptoAlgorithm algorithm = CreateRsaHashedKeyGenAlgorithm(
531 blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, 534 blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5,
532 blink::WebCryptoAlgorithmIdSha256, 535 blink::WebCryptoAlgorithmIdSha256,
533 modulus_length_bits, 536 modulus_length_bits,
534 public_exponent); 537 public_exponent);
535 bool extractable = true; 538 bool extractable = true;
536 const blink::WebCryptoKeyUsageMask usages = blink::WebCryptoKeyUsageSign; 539 const blink::WebCryptoKeyUsageMask usages = 0;
537 blink::WebCryptoKey public_key; 540 blink::WebCryptoKey public_key;
538 blink::WebCryptoKey private_key; 541 blink::WebCryptoKey private_key;
539 542
540 EXPECT_EQ(Status::ErrorGenerateRsaUnsupportedModulus(), 543 EXPECT_EQ(Status::ErrorGenerateRsaUnsupportedModulus(),
541 GenerateKeyPair( 544 GenerateKeyPair(
542 algorithm, extractable, usages, &public_key, &private_key)); 545 algorithm, extractable, usages, &public_key, &private_key));
543 } 546 }
544 } 547 }
545 548
546 // Try generating RSA key pairs using unsupported public exponents. Only 549 // Try generating RSA key pairs using unsupported public exponents. Only
(...skipping 14 matching lines...) Expand all
561 blink::WebCryptoAlgorithm algorithm = CreateRsaHashedKeyGenAlgorithm( 564 blink::WebCryptoAlgorithm algorithm = CreateRsaHashedKeyGenAlgorithm(
562 blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, 565 blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5,
563 blink::WebCryptoAlgorithmIdSha256, 566 blink::WebCryptoAlgorithmIdSha256,
564 modulus_length, 567 modulus_length,
565 HexStringToBytes(kPublicExponents[i])); 568 HexStringToBytes(kPublicExponents[i]));
566 569
567 blink::WebCryptoKey public_key; 570 blink::WebCryptoKey public_key;
568 blink::WebCryptoKey private_key; 571 blink::WebCryptoKey private_key;
569 572
570 EXPECT_EQ(Status::ErrorGenerateKeyPublicExponent(), 573 EXPECT_EQ(Status::ErrorGenerateKeyPublicExponent(),
571 GenerateKeyPair(algorithm, true, blink::WebCryptoKeyUsageSign, 574 GenerateKeyPair(algorithm, true, 0, &public_key, &private_key));
572 &public_key, &private_key));
573 } 575 }
574 } 576 }
575 577
576 TEST(WebCryptoRsaSsaTest, SignVerifyFailures) { 578 TEST(WebCryptoRsaSsaTest, SignVerifyFailures) {
577 if (!SupportsRsaPrivateKeyImport()) 579 if (!SupportsRsaPrivateKeyImport())
578 return; 580 return;
579 581
580 // Import a key pair. 582 // Import a key pair.
581 blink::WebCryptoAlgorithm import_algorithm = 583 blink::WebCryptoAlgorithm import_algorithm =
582 CreateRsaHashedImportAlgorithm(blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, 584 CreateRsaHashedImportAlgorithm(blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5,
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
883 public_exponent), 885 public_exponent),
884 true, 886 true,
885 blink::WebCryptoKeyUsageSign, 887 blink::WebCryptoKeyUsageSign,
886 &public_key, 888 &public_key,
887 &private_key)); 889 &private_key));
888 890
889 EXPECT_EQ(0, public_key.usages()); 891 EXPECT_EQ(0, public_key.usages());
890 EXPECT_EQ(blink::WebCryptoKeyUsageSign, private_key.usages()); 892 EXPECT_EQ(blink::WebCryptoKeyUsageSign, private_key.usages());
891 } 893 }
892 894
893 TEST(WebCryptoRsaSsaTest, GenerateKeyPairEmptyUsages) {
894 const unsigned int modulus_length = 256;
895 const std::vector<uint8_t> public_exponent = HexStringToBytes("010001");
896
897 blink::WebCryptoKey public_key;
898 blink::WebCryptoKey private_key;
899
900 ASSERT_EQ(Status::ErrorCreateKeyEmptyUsages(),
901 GenerateKeyPair(CreateRsaHashedKeyGenAlgorithm(
902 blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5,
903 blink::WebCryptoAlgorithmIdSha256,
904 modulus_length, public_exponent),
905 true, 0, &public_key, &private_key));
906 }
907
908 TEST(WebCryptoRsaSsaTest, ImportExportJwkRsaPublicKey) { 895 TEST(WebCryptoRsaSsaTest, ImportExportJwkRsaPublicKey) {
909 struct TestCase { 896 struct TestCase {
910 const blink::WebCryptoAlgorithmId hash; 897 const blink::WebCryptoAlgorithmId hash;
911 const blink::WebCryptoKeyUsageMask usage; 898 const blink::WebCryptoKeyUsageMask usage;
912 const char* const jwk_alg; 899 const char* const jwk_alg;
913 }; 900 };
914 const TestCase kTests[] = { 901 const TestCase kTests[] = {
915 {blink::WebCryptoAlgorithmIdSha1, blink::WebCryptoKeyUsageVerify, "RS1"}, 902 {blink::WebCryptoAlgorithmIdSha1, blink::WebCryptoKeyUsageVerify, "RS1"},
916 {blink::WebCryptoAlgorithmIdSha256, blink::WebCryptoKeyUsageVerify, 903 {blink::WebCryptoAlgorithmIdSha256, blink::WebCryptoKeyUsageVerify,
917 "RS256"}, 904 "RS256"},
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
1057 1044
1058 const base::DictionaryValue* test; 1045 const base::DictionaryValue* test;
1059 ASSERT_TRUE(tests->GetDictionary(test_index, &test)); 1046 ASSERT_TRUE(tests->GetDictionary(test_index, &test));
1060 1047
1061 blink::WebCryptoKeyFormat key_format = GetKeyFormatFromJsonTestCase(test); 1048 blink::WebCryptoKeyFormat key_format = GetKeyFormatFromJsonTestCase(test);
1062 std::vector<uint8_t> key_data = 1049 std::vector<uint8_t> key_data =
1063 GetKeyDataFromJsonTestCase(test, key_format); 1050 GetKeyDataFromJsonTestCase(test, key_format);
1064 std::string test_error; 1051 std::string test_error;
1065 ASSERT_TRUE(test->GetString("error", &test_error)); 1052 ASSERT_TRUE(test->GetString("error", &test_error));
1066 1053
1067 blink::WebCryptoKeyUsageMask usages = blink::WebCryptoKeyUsageSign;
1068 if (key_format == blink::WebCryptoKeyFormatSpki)
1069 usages = blink::WebCryptoKeyUsageVerify;
1070 blink::WebCryptoKey key; 1054 blink::WebCryptoKey key;
1071 Status status = ImportKey(key_format, CryptoData(key_data), 1055 Status status = ImportKey(key_format, CryptoData(key_data),
1072 CreateRsaHashedImportAlgorithm( 1056 CreateRsaHashedImportAlgorithm(
1073 blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5, 1057 blink::WebCryptoAlgorithmIdRsaSsaPkcs1v1_5,
1074 blink::WebCryptoAlgorithmIdSha256), 1058 blink::WebCryptoAlgorithmIdSha256),
1075 true, usages, &key); 1059 true, 0, &key);
1076 EXPECT_EQ(test_error, StatusToString(status)); 1060 EXPECT_EQ(test_error, StatusToString(status));
1077 } 1061 }
1078 } 1062 }
1079 1063
1080 } // namespace 1064 } // namespace
1081 1065
1082 } // namespace webcrypto 1066 } // namespace webcrypto
1083 1067
1084 } // namespace content 1068 } // namespace content
OLDNEW
« no previous file with comments | « content/child/webcrypto/test/hmac_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698