Index: chrome/browser/chromeos/platform_keys/platform_keys_nss.cc |
diff --git a/chrome/browser/chromeos/platform_keys/platform_keys_nss.cc b/chrome/browser/chromeos/platform_keys/platform_keys_nss.cc |
index 04a6af4ec6d907899ae5911cd002a38ffb7656ce..ec306f03b1a7e9eb01b9e969ebc2330288fd54d7 100644 |
--- a/chrome/browser/chromeos/platform_keys/platform_keys_nss.cc |
+++ b/chrome/browser/chromeos/platform_keys/platform_keys_nss.cc |
@@ -546,11 +546,17 @@ void SignRSAWithDB(std::unique_ptr<SignRSAState> state, |
// SelectCertificatesOnIOThread(). |
void DidSelectCertificatesOnIOThread( |
std::unique_ptr<SelectCertificatesState> state, |
- net::CertificateList certs) { |
+ net::ClientCertIdentityList identities) { |
DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- state->CallBack(FROM_HERE, |
- base::MakeUnique<net::CertificateList>(std::move(certs)), |
- std::string() /* no error */); |
+ // Convert the ClientCertIdentityList to a CertificateList since returning |
+ // ClientCertIdentities would require changing the platformKeys extension |
+ // api. This assumes that the necessary keys can be found later with |
+ // crypto::FindNSSKeyFromPublicKeyInfo. |
+ std::unique_ptr<net::CertificateList> certs = |
+ base::MakeUnique<net::CertificateList>(); |
+ for (const std::unique_ptr<net::ClientCertIdentity>& identity : identities) |
+ certs->push_back(identity->certificate()); |
+ state->CallBack(FROM_HERE, std::move(certs), std::string() /* no error */); |
} |
// Continues selecting certificates on the IO thread. Used by |