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 "content/child/webcrypto/nss/rsa_key_nss.h" | 5 #include "content/child/webcrypto/nss/rsa_key_nss.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "content/child/webcrypto/crypto_data.h" | 8 #include "content/child/webcrypto/crypto_data.h" |
9 #include "content/child/webcrypto/jwk.h" | 9 #include "content/child/webcrypto/jwk.h" |
10 #include "content/child/webcrypto/nss/key_nss.h" | 10 #include "content/child/webcrypto/nss/key_nss.h" |
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
525 *key = blink::WebCryptoKey::create(key_handle.release(), | 525 *key = blink::WebCryptoKey::create(key_handle.release(), |
526 blink::WebCryptoKeyTypePublic, | 526 blink::WebCryptoKeyTypePublic, |
527 extractable, | 527 extractable, |
528 key_algorithm, | 528 key_algorithm, |
529 usage_mask); | 529 usage_mask); |
530 return Status::Success(); | 530 return Status::Success(); |
531 } | 531 } |
532 | 532 |
533 } // namespace | 533 } // namespace |
534 | 534 |
535 Status RsaHashedAlgorithm::VerifyKeyUsagesBeforeGenerateKeyPair( | 535 Status RsaHashedAlgorithm::GenerateKey( |
| 536 const blink::WebCryptoAlgorithm& algorithm, |
| 537 bool extractable, |
536 blink::WebCryptoKeyUsageMask combined_usage_mask, | 538 blink::WebCryptoKeyUsageMask combined_usage_mask, |
537 blink::WebCryptoKeyUsageMask* public_usage_mask, | 539 blink::WebCryptoKey* public_key, |
538 blink::WebCryptoKeyUsageMask* private_usage_mask) const { | 540 blink::WebCryptoKey* private_key) const { |
539 Status status = CheckKeyCreationUsages( | 541 Status status = CheckKeyCreationUsages( |
540 all_public_key_usages_ | all_private_key_usages_, combined_usage_mask); | 542 all_public_key_usages_ | all_private_key_usages_, combined_usage_mask); |
541 if (status.IsError()) | 543 if (status.IsError()) |
542 return status; | 544 return status; |
543 | 545 |
544 *public_usage_mask = combined_usage_mask & all_public_key_usages_; | 546 const blink::WebCryptoKeyUsageMask public_usage_mask = |
545 *private_usage_mask = combined_usage_mask & all_private_key_usages_; | 547 combined_usage_mask & all_public_key_usages_; |
| 548 const blink::WebCryptoKeyUsageMask private_usage_mask = |
| 549 combined_usage_mask & all_private_key_usages_; |
546 | 550 |
547 return Status::Success(); | |
548 } | |
549 | |
550 Status RsaHashedAlgorithm::GenerateKeyPair( | |
551 const blink::WebCryptoAlgorithm& algorithm, | |
552 bool extractable, | |
553 blink::WebCryptoKeyUsageMask public_usage_mask, | |
554 blink::WebCryptoKeyUsageMask private_usage_mask, | |
555 blink::WebCryptoKey* public_key, | |
556 blink::WebCryptoKey* private_key) const { | |
557 unsigned int public_exponent = 0; | 551 unsigned int public_exponent = 0; |
558 unsigned int modulus_length_bits = 0; | 552 unsigned int modulus_length_bits = 0; |
559 Status status = GetRsaKeyGenParameters(algorithm.rsaHashedKeyGenParams(), | 553 status = GetRsaKeyGenParameters(algorithm.rsaHashedKeyGenParams(), |
560 &public_exponent, | 554 &public_exponent, |
561 &modulus_length_bits); | 555 &modulus_length_bits); |
562 if (status.IsError()) | 556 if (status.IsError()) |
563 return status; | 557 return status; |
564 | 558 |
565 crypto::ScopedPK11Slot slot(PK11_GetInternalKeySlot()); | 559 crypto::ScopedPK11Slot slot(PK11_GetInternalKeySlot()); |
566 if (!slot) | 560 if (!slot) |
567 return Status::OperationError(); | 561 return Status::OperationError(); |
568 | 562 |
569 PK11RSAGenParams rsa_gen_params; | 563 PK11RSAGenParams rsa_gen_params; |
570 rsa_gen_params.keySizeInBits = modulus_length_bits; | 564 rsa_gen_params.keySizeInBits = modulus_length_bits; |
571 rsa_gen_params.pe = public_exponent; | 565 rsa_gen_params.pe = public_exponent; |
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
851 return Status::Success(); | 845 return Status::Success(); |
852 } | 846 } |
853 default: | 847 default: |
854 return Status::ErrorUnexpected(); | 848 return Status::ErrorUnexpected(); |
855 } | 849 } |
856 } | 850 } |
857 | 851 |
858 } // namespace webcrypto | 852 } // namespace webcrypto |
859 | 853 |
860 } // namespace content | 854 } // namespace content |
OLD | NEW |