#include "net/ssl/ssl_platform_key_util.h"
#include <string_view>
#include "base/lazy_instance.h"
#include "base/logging.h"
#include "base/task/single_thread_task_runner.h"
#include "base/threading/thread.h"
#include "crypto/openssl_util.h"
#include "net/cert/asn1_util.h"
#include "net/cert/x509_certificate.h"
#include "net/cert/x509_util.h"
#include "third_party/boringssl/src/include/openssl/bytestring.h"
#include "third_party/boringssl/src/include/openssl/ec_key.h"
#include "third_party/boringssl/src/include/openssl/evp.h"
#include "third_party/boringssl/src/include/openssl/rsa.h"
namespace net {
namespace {
class SSLPlatformKeyTaskRunner { … };
base::LazyInstance<SSLPlatformKeyTaskRunner>::Leaky g_platform_key_task_runner = …;
}
scoped_refptr<base::SingleThreadTaskRunner> GetSSLPlatformKeyTaskRunner() { … }
bssl::UniquePtr<EVP_PKEY> GetClientCertPublicKey(
const X509Certificate* certificate) { … }
bool GetClientCertInfo(const X509Certificate* certificate,
int* out_type,
size_t* out_max_length) { … }
bssl::UniquePtr<EVP_PKEY> ParseSpki(base::span<const uint8_t> spki) { … }
bool GetPublicKeyInfo(base::span<const uint8_t> spki,
int* out_type,
size_t* out_max_length) { … }
std::optional<std::vector<uint8_t>> AddPSSPadding(
EVP_PKEY* pubkey,
const EVP_MD* md,
base::span<const uint8_t> digest) { … }
}