OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "chrome/browser/chromeos/certificate_provider/certificate_provider_serv
ice.h" | 5 #include "chrome/browser/chromeos/certificate_provider/certificate_provider_serv
ice.h" |
6 | 6 |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/stl_util.h" | 10 #include "base/stl_util.h" |
(...skipping 404 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 | 415 |
416 task_runner_->RunUntilIdle(); | 416 task_runner_->RunUntilIdle(); |
417 EXPECT_EQ(1u, certs.size()); | 417 EXPECT_EQ(1u, certs.size()); |
418 } | 418 } |
419 | 419 |
420 // Trying to sign data using the exposed SSLPrivateKey must cause a sign | 420 // Trying to sign data using the exposed SSLPrivateKey must cause a sign |
421 // request. The reply must be correctly routed back to the private key. | 421 // request. The reply must be correctly routed back to the private key. |
422 TEST_F(CertificateProviderServiceTest, SignRequest) { | 422 TEST_F(CertificateProviderServiceTest, SignRequest) { |
423 ProvideDefaultCert(); | 423 ProvideDefaultCert(); |
424 | 424 |
425 scoped_ptr<net::SSLPrivateKey> private_key( | 425 scoped_refptr<net::SSLPrivateKey> private_key( |
426 client_key_store_->FetchClientCertPrivateKey(*cert_info1_.certificate)); | 426 client_key_store_->FetchClientCertPrivateKey(*cert_info1_.certificate)); |
427 | 427 |
428 ASSERT_TRUE(private_key); | 428 ASSERT_TRUE(private_key); |
429 EXPECT_TRUE(IsKeyEqualToCertInfo(cert_info1_, private_key.get())); | 429 EXPECT_TRUE(IsKeyEqualToCertInfo(cert_info1_, private_key.get())); |
430 | 430 |
431 test_delegate_->ClearAndExpectRequest(TestDelegate::RequestType::SIGN); | 431 test_delegate_->ClearAndExpectRequest(TestDelegate::RequestType::SIGN); |
432 | 432 |
433 std::vector<uint8_t> received_signature; | 433 std::vector<uint8_t> received_signature; |
434 private_key->SignDigest( | 434 private_key->SignDigest( |
435 net::SSLPrivateKey::Hash::SHA256, std::string("any input data"), | 435 net::SSLPrivateKey::Hash::SHA256, std::string("any input data"), |
(...skipping 16 matching lines...) Expand all Loading... |
452 signature_reply.push_back(8); | 452 signature_reply.push_back(8); |
453 service_->ReplyToSignRequest(kExtension1, sign_request_id, signature_reply); | 453 service_->ReplyToSignRequest(kExtension1, sign_request_id, signature_reply); |
454 | 454 |
455 task_runner_->RunUntilIdle(); | 455 task_runner_->RunUntilIdle(); |
456 EXPECT_EQ(signature_reply, received_signature); | 456 EXPECT_EQ(signature_reply, received_signature); |
457 } | 457 } |
458 | 458 |
459 TEST_F(CertificateProviderServiceTest, UnloadExtensionDuringSign) { | 459 TEST_F(CertificateProviderServiceTest, UnloadExtensionDuringSign) { |
460 ProvideDefaultCert(); | 460 ProvideDefaultCert(); |
461 | 461 |
462 scoped_ptr<net::SSLPrivateKey> private_key( | 462 scoped_refptr<net::SSLPrivateKey> private_key( |
463 client_key_store_->FetchClientCertPrivateKey(*cert_info1_.certificate)); | 463 client_key_store_->FetchClientCertPrivateKey(*cert_info1_.certificate)); |
464 ASSERT_TRUE(private_key); | 464 ASSERT_TRUE(private_key); |
465 | 465 |
466 test_delegate_->ClearAndExpectRequest(TestDelegate::RequestType::SIGN); | 466 test_delegate_->ClearAndExpectRequest(TestDelegate::RequestType::SIGN); |
467 | 467 |
468 net::Error error = net::OK; | 468 net::Error error = net::OK; |
469 private_key->SignDigest( | 469 private_key->SignDigest( |
470 net::SSLPrivateKey::Hash::SHA256, std::string("any input data"), | 470 net::SSLPrivateKey::Hash::SHA256, std::string("any input data"), |
471 base::Bind(&ExpectEmptySignatureAndStoreError, &error)); | 471 base::Bind(&ExpectEmptySignatureAndStoreError, &error)); |
472 | 472 |
473 task_runner_->RunUntilIdle(); | 473 task_runner_->RunUntilIdle(); |
474 | 474 |
475 // No signature received until the extension replied to the service or is | 475 // No signature received until the extension replied to the service or is |
476 // unloaded. | 476 // unloaded. |
477 EXPECT_EQ(net::OK, error); | 477 EXPECT_EQ(net::OK, error); |
478 | 478 |
479 // Unload the extension. | 479 // Unload the extension. |
480 service_->OnExtensionUnloaded(kExtension1); | 480 service_->OnExtensionUnloaded(kExtension1); |
481 | 481 |
482 task_runner_->RunUntilIdle(); | 482 task_runner_->RunUntilIdle(); |
483 EXPECT_EQ(net::ERR_FAILED, error); | 483 EXPECT_EQ(net::ERR_FAILED, error); |
484 } | 484 } |
485 | 485 |
486 } // namespace chromeos | 486 } // namespace chromeos |
OLD | NEW |