  net/base/net_error_list.h                     |   5 +
  net/cert/cert_verify_proc.cc                  |  23 ++++
  net/http/http_network_transaction.cc          |   9 ++
- net/socket/ssl_client_socket_impl.cc          | 100 ++++++++++++++++++
+ net/socket/ssl_client_socket_impl.cc          | 101 ++++++++++++++++++
  net/spdy/spdy_session.cc                      |  12 +++
  net/ssl/client_cert_store_mac.cc              |  75 +++++++++++++
  net/ssl/client_cert_store_nss.cc              |  31 ++++++

 net/ssl/ssl_platform_key_util.h               |   7 ++
 sandbox/win/src/process_mitigations.cc        |   4 +
 third_party/boringssl/BUILD.generated.gni     |   2 +
 19 files changed, 396 insertions(+), 45 deletions(-)

diff --git a/chrome/app/chromium_strings.grd b/chrome/app/chromium_strings.grd
index eaee8343c13d..47399f7e13a4 100644

   const uint8_t* ocsp_response_raw;
   size_t ocsp_response_len;
   SSL_get0_ocsp_response(ssl_.get(), &ocsp_response_raw, &ocsp_response_len);
@@ -1605,6 +1694,18 @@ int SSLClientSocketImpl::ClientCertRequestCallback(SSL* ssl) {
     return -1;
   }
 
+#ifndef NO_GOSTSSL
+  if (client_cert_.get()) {
+    {
+      const uint8_t* cert =
+          CRYPTO_BUFFER_data(client_cert_.get()->cert_buffer());
+      size_t len =
+          CRYPTO_BUFFER_len(client_cert_.get()->cert_buffer());
+      gostssl_certhook( (void*)cert, len );
+    }
+  }
