| 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 <cert.h> | 5 #include <cert.h> |
| 6 #include <cryptohi.h> | 6 #include <cryptohi.h> |
| 7 #include <keyhi.h> | 7 #include <keyhi.h> |
| 8 #include <secder.h> | 8 #include <secder.h> |
| 9 #include <stddef.h> | 9 #include <stddef.h> |
| 10 #include <stdint.h> | 10 #include <stdint.h> |
| (...skipping 528 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 539 {base::MayBlock(), base::TaskPriority::BACKGROUND, | 539 {base::MayBlock(), base::TaskPriority::BACKGROUND, |
| 540 base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}, | 540 base::TaskShutdownBehavior::CONTINUE_ON_SHUTDOWN}, |
| 541 base::Bind(&SignRSAOnWorkerThread, base::Passed(&state))); | 541 base::Bind(&SignRSAOnWorkerThread, base::Passed(&state))); |
| 542 } | 542 } |
| 543 | 543 |
| 544 // Called when ClientCertStoreChromeOS::GetClientCerts is done. Builds the list | 544 // Called when ClientCertStoreChromeOS::GetClientCerts is done. Builds the list |
| 545 // of net::CertificateList and calls back. Used by | 545 // of net::CertificateList and calls back. Used by |
| 546 // SelectCertificatesOnIOThread(). | 546 // SelectCertificatesOnIOThread(). |
| 547 void DidSelectCertificatesOnIOThread( | 547 void DidSelectCertificatesOnIOThread( |
| 548 std::unique_ptr<SelectCertificatesState> state, | 548 std::unique_ptr<SelectCertificatesState> state, |
| 549 net::CertificateList certs) { | 549 net::ClientCertIdentityList identities) { |
| 550 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 550 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 551 state->CallBack(FROM_HERE, | 551 // Convert the ClientCertIdentityList to a CertificateList since returning |
| 552 base::MakeUnique<net::CertificateList>(std::move(certs)), | 552 // ClientCertIdentities would require changing the platformKeys extension |
| 553 std::string() /* no error */); | 553 // api. This assumes that the necessary keys can be found later with |
| 554 // crypto::FindNSSKeyFromPublicKeyInfo. |
| 555 std::unique_ptr<net::CertificateList> certs = |
| 556 base::MakeUnique<net::CertificateList>(); |
| 557 for (const std::unique_ptr<net::ClientCertIdentity>& identity : identities) |
| 558 certs->push_back(identity->certificate()); |
| 559 state->CallBack(FROM_HERE, std::move(certs), std::string() /* no error */); |
| 554 } | 560 } |
| 555 | 561 |
| 556 // Continues selecting certificates on the IO thread. Used by | 562 // Continues selecting certificates on the IO thread. Used by |
| 557 // SelectClientCertificates(). | 563 // SelectClientCertificates(). |
| 558 void SelectCertificatesOnIOThread( | 564 void SelectCertificatesOnIOThread( |
| 559 std::unique_ptr<SelectCertificatesState> state) { | 565 std::unique_ptr<SelectCertificatesState> state) { |
| 560 DCHECK_CURRENTLY_ON(BrowserThread::IO); | 566 DCHECK_CURRENTLY_ON(BrowserThread::IO); |
| 561 state->cert_store_.reset(new ClientCertStoreChromeOS( | 567 state->cert_store_.reset(new ClientCertStoreChromeOS( |
| 562 nullptr, // no additional provider | 568 nullptr, // no additional provider |
| 563 base::MakeUnique<ClientCertFilterChromeOS>(state->use_system_key_slot_, | 569 base::MakeUnique<ClientCertFilterChromeOS>(state->use_system_key_slot_, |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 899 NSSOperationState* state_ptr = state.get(); | 905 NSSOperationState* state_ptr = state.get(); |
| 900 GetCertDatabase(std::string() /* don't get any specific slot */, | 906 GetCertDatabase(std::string() /* don't get any specific slot */, |
| 901 base::Bind(&GetTokensWithDB, base::Passed(&state)), | 907 base::Bind(&GetTokensWithDB, base::Passed(&state)), |
| 902 browser_context, | 908 browser_context, |
| 903 state_ptr); | 909 state_ptr); |
| 904 } | 910 } |
| 905 | 911 |
| 906 } // namespace platform_keys | 912 } // namespace platform_keys |
| 907 | 913 |
| 908 } // namespace chromeos | 914 } // namespace chromeos |
| OLD | NEW |