| 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
|
|
|