Index: net/ssl/ssl_platform_key_win.cc |
diff --git a/net/ssl/ssl_platform_key_win.cc b/net/ssl/ssl_platform_key_win.cc |
index e1dbd576b58ea01bbdd6353f4281f7a9d7d5ab8c..40913aa087e3a29a7ab306c6769910067e89402e 100644 |
--- a/net/ssl/ssl_platform_key_win.cc |
+++ b/net/ssl/ssl_platform_key_win.cc |
@@ -25,7 +25,7 @@ |
#include "crypto/wincrypt_shim.h" |
#include "net/base/net_errors.h" |
#include "net/cert/x509_certificate.h" |
-#include "net/ssl/ssl_platform_key_task_runner.h" |
+#include "net/ssl/ssl_platform_key_util.h" |
#include "net/ssl/ssl_private_key.h" |
#include "net/ssl/threaded_ssl_private_key.h" |
@@ -211,7 +211,7 @@ class SSLPlatformKeyCNG : public ThreadedSSLPrivateKey::Delegate { |
// CNG emits raw ECDSA signatures, but BoringSSL expects a DER-encoded |
// ECDSA-Sig-Value. |
- if (type_ == SSLPrivateKey::Type::ECDSA) { |
+ if (SSLPrivateKey::IsECDSAType(type_)) { |
if (signature->size() % 2 != 0) { |
LOG(ERROR) << "Bad signature length"; |
return ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED; |
@@ -247,38 +247,6 @@ class SSLPlatformKeyCNG : public ThreadedSSLPrivateKey::Delegate { |
DISALLOW_COPY_AND_ASSIGN(SSLPlatformKeyCNG); |
}; |
-// Determines the key type and maximum signature length of |certificate|'s |
-// public key. |
-bool GetKeyInfo(const X509Certificate* certificate, |
- SSLPrivateKey::Type* out_type, |
- size_t* out_max_length) { |
- crypto::OpenSSLErrStackTracer tracker(FROM_HERE); |
- |
- std::string der_encoded; |
- if (!X509Certificate::GetDEREncoded(certificate->os_cert_handle(), |
- &der_encoded)) |
- return false; |
- const uint8_t* bytes = reinterpret_cast<const uint8_t*>(der_encoded.data()); |
- bssl::UniquePtr<X509> x509(d2i_X509(nullptr, &bytes, der_encoded.size())); |
- if (!x509) |
- return false; |
- bssl::UniquePtr<EVP_PKEY> key(X509_get_pubkey(x509.get())); |
- if (!key) |
- return false; |
- switch (EVP_PKEY_id(key.get())) { |
- case EVP_PKEY_RSA: |
- *out_type = SSLPrivateKey::Type::RSA; |
- break; |
- case EVP_PKEY_EC: |
- *out_type = SSLPrivateKey::Type::ECDSA; |
- break; |
- default: |
- return false; |
- } |
- *out_max_length = EVP_PKEY_size(key.get()); |
- return true; |
-} |
- |
} // namespace |
scoped_refptr<SSLPrivateKey> FetchClientCertPrivateKey( |
@@ -288,7 +256,7 @@ scoped_refptr<SSLPrivateKey> FetchClientCertPrivateKey( |
// consistently work depending on the system. See https://crbug.com/468345. |
SSLPrivateKey::Type key_type; |
size_t max_length; |
- if (!GetKeyInfo(certificate, &key_type, &max_length)) |
+ if (!GetClientCertInfo(certificate, &key_type, &max_length)) |
return nullptr; |
PCCERT_CONTEXT cert_context = certificate->os_cert_handle(); |