mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
58 lines
1.9 KiB
C
58 lines
1.9 KiB
C
|
// Copyright 2017 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.
|
||
|
|
||
|
#ifndef NET_SSL_CLIENT_CERT_IDENTITY_TEST_UTIL_H_
|
||
|
#define NET_SSL_CLIENT_CERT_IDENTITY_TEST_UTIL_H_
|
||
|
|
||
|
#include "net/ssl/client_cert_identity.h"
|
||
|
|
||
|
namespace base {
|
||
|
class FilePath;
|
||
|
}
|
||
|
|
||
|
namespace net {
|
||
|
|
||
|
// Simple ClientCertIdentity implementation for testing.
|
||
|
// Note: this implementation of AcquirePrivateKey will always call the callback
|
||
|
// synchronously.
|
||
|
class FakeClientCertIdentity : public ClientCertIdentity {
|
||
|
public:
|
||
|
FakeClientCertIdentity(scoped_refptr<X509Certificate> cert,
|
||
|
scoped_refptr<SSLPrivateKey> key);
|
||
|
~FakeClientCertIdentity() override;
|
||
|
|
||
|
// Creates a FakeClientCertIdentity from a certificate file (DER or PEM) and
|
||
|
// private key file (unencrypted pkcs8). Returns nullptr on error.
|
||
|
static std::unique_ptr<FakeClientCertIdentity> CreateFromCertAndKeyFiles(
|
||
|
const base::FilePath& dir,
|
||
|
const std::string& cert_filename,
|
||
|
const std::string& key_filename);
|
||
|
|
||
|
// Duplicates the FakeClientCertIdentity.
|
||
|
std::unique_ptr<FakeClientCertIdentity> Copy();
|
||
|
|
||
|
// Returns the SSLPrivateKey in a more convenient way, for tests.
|
||
|
SSLPrivateKey* ssl_private_key() const { return key_.get(); }
|
||
|
|
||
|
// ClientCertIdentity implementation:
|
||
|
void AcquirePrivateKey(
|
||
|
const base::Callback<void(scoped_refptr<SSLPrivateKey>)>&
|
||
|
private_key_callback) override;
|
||
|
#if defined(OS_MACOSX)
|
||
|
SecIdentityRef sec_identity_ref() const override;
|
||
|
#endif
|
||
|
|
||
|
private:
|
||
|
scoped_refptr<SSLPrivateKey> key_;
|
||
|
};
|
||
|
|
||
|
// Converts a CertificateList to a ClientCertIdentityList of
|
||
|
// FakeClientCertIdentity, with null private keys.
|
||
|
ClientCertIdentityList FakeClientCertIdentityListFromCertificateList(
|
||
|
const CertificateList& certs);
|
||
|
|
||
|
} // namespace net
|
||
|
|
||
|
#endif // NET_SSL_CLIENT_CERT_IDENTITY_TEST_UTIL_H_
|