Index: net/ssl/openssl_client_key_store.cc |
diff --git a/net/ssl/openssl_client_key_store.cc b/net/ssl/openssl_client_key_store.cc |
deleted file mode 100644 |
index 48895e9ed3a62e6aefc32d8803f7429a08fef2d3..0000000000000000000000000000000000000000 |
--- a/net/ssl/openssl_client_key_store.cc |
+++ /dev/null |
@@ -1,98 +0,0 @@ |
-// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "net/ssl/openssl_client_key_store.h" |
- |
-#include <utility> |
- |
-#include "base/memory/singleton.h" |
-#include "net/cert/asn1_util.h" |
-#include "net/cert/x509_certificate.h" |
-#include "net/ssl/ssl_private_key.h" |
-#include "third_party/boringssl/src/include/openssl/evp.h" |
-#include "third_party/boringssl/src/include/openssl/mem.h" |
-#include "third_party/boringssl/src/include/openssl/x509.h" |
- |
-namespace net { |
- |
-namespace { |
- |
-// Serializes the SubjectPublicKeyInfo for |cert|. |
-bool GetCertificateSPKI(const X509Certificate* cert, std::string* spki) { |
-#if BUILDFLAG(USE_BYTE_CERTS) |
- base::StringPiece cert_der( |
- reinterpret_cast<const char*>(CRYPTO_BUFFER_data(cert->os_cert_handle())), |
- CRYPTO_BUFFER_len(cert->os_cert_handle())); |
- base::StringPiece spki_tmp; |
- if (!asn1::ExtractSPKIFromDERCert(cert_der, &spki_tmp)) |
- return false; |
- spki_tmp.CopyToString(spki); |
- return true; |
-#else |
- bssl::UniquePtr<EVP_PKEY> pkey(X509_get_pubkey(cert->os_cert_handle())); |
- if (!pkey) { |
- LOG(ERROR) << "Can't extract private key from certificate!"; |
- return false; |
- } |
- |
- bssl::ScopedCBB cbb; |
- uint8_t* der; |
- size_t der_len; |
- if (!CBB_init(cbb.get(), 0) || |
- !EVP_marshal_public_key(cbb.get(), pkey.get()) || |
- !CBB_finish(cbb.get(), &der, &der_len)) { |
- return false; |
- } |
- |
- spki->assign(reinterpret_cast<char*>(der), |
- reinterpret_cast<char*>(der) + der_len); |
- OPENSSL_free(der); |
- return true; |
-#endif |
-} |
- |
-} // namespace |
- |
-OpenSSLClientKeyStore* OpenSSLClientKeyStore::GetInstance() { |
- return base::Singleton<OpenSSLClientKeyStore>::get(); |
-} |
- |
-bool OpenSSLClientKeyStore::RecordClientCertPrivateKey( |
- const X509Certificate* client_cert, |
- scoped_refptr<SSLPrivateKey> private_key) { |
- DCHECK(client_cert); |
- DCHECK(private_key); |
- |
- std::string spki; |
- if (!GetCertificateSPKI(client_cert, &spki)) |
- return false; |
- |
- key_map_[spki] = std::move(private_key); |
- return true; |
-} |
- |
-scoped_refptr<SSLPrivateKey> OpenSSLClientKeyStore::FetchClientCertPrivateKey( |
- const X509Certificate* client_cert) { |
- DCHECK(client_cert); |
- |
- std::string spki; |
- if (!GetCertificateSPKI(client_cert, &spki)) |
- return nullptr; |
- |
- auto iter = key_map_.find(spki); |
- if (iter == key_map_.end()) |
- return nullptr; |
- |
- return iter->second; |
-} |
- |
-void OpenSSLClientKeyStore::Flush() { |
- key_map_.clear(); |
-} |
- |
-OpenSSLClientKeyStore::OpenSSLClientKeyStore() {} |
- |
-OpenSSLClientKeyStore::~OpenSSLClientKeyStore() {} |
- |
-} // namespace net |