  }
  
 diff --git a/net/socket/ssl_client_socket_impl.cc b/net/socket/ssl_client_socket_impl.cc
-index 35e364f79a56..4184d0136748 100644
+index 35e364f79a56..31653e1432bc 100644
 --- a/net/socket/ssl_client_socket_impl.cc
 +++ b/net/socket/ssl_client_socket_impl.cc
 @@ -478,6 +478,31 @@ int SSLClientSocketImpl::ExportKeyingMaterial(const base::StringPiece& label,

+#define CRYPT_E_NO_REVOCATION_CHECK     0x80092012L
+#define CRYPT_E_REVOCATION_OFFLINE      0x80092013L
+#define CERT_E_CHAINING                 0x800B010AL
+
+    {
+        static void ( EXPLICITSSL_CALL * verifyhook )( void * ssl, unsigned * gost_status ) = NULL;

   // Set SSL to client mode. Handshake happens in the loop below.
   SSL_set_connect_state(ssl_.get());
 
@@ -1127,6 +1172,88 @@ int SSLClientSocketImpl::DoVerifyCert(int result) {
 
   start_cert_verification_time_ = base::TimeTicks::Now();
 
+#if defined(GOSTSSL)
+#ifndef TRUST_E_CERT_SIGNATURE
+#define TRUST_E_CERT_SIGNATURE          0x80096004L
+#define CRYPT_E_REVOKED                 0x80092010L
+#define CERT_E_UNTRUSTEDROOT            0x800B0109L
