| Index: net/socket/ssl_client_socket_openssl.cc
|
| diff --git a/net/socket/ssl_client_socket_openssl.cc b/net/socket/ssl_client_socket_openssl.cc
|
| index 090f2bdffa0344356416a2b04d58685837ae3c75..029864ee4453845e65a24ade0b50438a19a6d26c 100644
|
| --- a/net/socket/ssl_client_socket_openssl.cc
|
| +++ b/net/socket/ssl_client_socket_openssl.cc
|
| @@ -92,64 +92,6 @@ const uint8_t kTbProtocolVersionMinor = 3;
|
| const uint8_t kTbMinProtocolVersionMajor = 0;
|
| const uint8_t kTbMinProtocolVersionMinor = 2;
|
|
|
| -void FreeX509Stack(STACK_OF(X509)* ptr) {
|
| - sk_X509_pop_free(ptr, X509_free);
|
| -}
|
| -
|
| -using ScopedX509Stack = crypto::ScopedOpenSSL<STACK_OF(X509), FreeX509Stack>;
|
| -
|
| -// Used for encoding the |connection_status| field of an SSLInfo object.
|
| -int EncodeSSLConnectionStatus(uint16 cipher_suite,
|
| - int compression,
|
| - int version) {
|
| - return cipher_suite |
|
| - ((compression & SSL_CONNECTION_COMPRESSION_MASK) <<
|
| - SSL_CONNECTION_COMPRESSION_SHIFT) |
|
| - ((version & SSL_CONNECTION_VERSION_MASK) <<
|
| - SSL_CONNECTION_VERSION_SHIFT);
|
| -}
|
| -
|
| -// Returns the net SSL version number (see ssl_connection_status_flags.h) for
|
| -// this SSL connection.
|
| -int GetNetSSLVersion(SSL* ssl) {
|
| - switch (SSL_version(ssl)) {
|
| - case TLS1_VERSION:
|
| - return SSL_CONNECTION_VERSION_TLS1;
|
| - case TLS1_1_VERSION:
|
| - return SSL_CONNECTION_VERSION_TLS1_1;
|
| - case TLS1_2_VERSION:
|
| - return SSL_CONNECTION_VERSION_TLS1_2;
|
| - default:
|
| - NOTREACHED();
|
| - return SSL_CONNECTION_VERSION_UNKNOWN;
|
| - }
|
| -}
|
| -
|
| -ScopedX509 OSCertHandleToOpenSSL(
|
| - X509Certificate::OSCertHandle os_handle) {
|
| -#if defined(USE_OPENSSL_CERTS)
|
| - return ScopedX509(X509Certificate::DupOSCertHandle(os_handle));
|
| -#else // !defined(USE_OPENSSL_CERTS)
|
| - std::string der_encoded;
|
| - if (!X509Certificate::GetDEREncoded(os_handle, &der_encoded))
|
| - return ScopedX509();
|
| - const uint8_t* bytes = reinterpret_cast<const uint8_t*>(der_encoded.data());
|
| - return ScopedX509(d2i_X509(NULL, &bytes, der_encoded.size()));
|
| -#endif // defined(USE_OPENSSL_CERTS)
|
| -}
|
| -
|
| -ScopedX509Stack OSCertHandlesToOpenSSL(
|
| - const X509Certificate::OSCertHandles& os_handles) {
|
| - ScopedX509Stack stack(sk_X509_new_null());
|
| - for (size_t i = 0; i < os_handles.size(); i++) {
|
| - ScopedX509 x509 = OSCertHandleToOpenSSL(os_handles[i]);
|
| - if (!x509)
|
| - return ScopedX509Stack();
|
| - sk_X509_push(stack.get(), x509.release());
|
| - }
|
| - return stack.Pass();
|
| -}
|
| -
|
| bool EVP_MDToPrivateKeyHash(const EVP_MD* md, SSLPrivateKey::Hash* hash) {
|
| switch (EVP_MD_type(md)) {
|
| case NID_md5_sha1:
|
| @@ -412,7 +354,7 @@ class SSLClientSocketOpenSSL::PeerCertificateChain {
|
| }
|
|
|
| private:
|
| - ScopedX509Stack openssl_chain_;
|
| + ScopedX509_STACK openssl_chain_;
|
| };
|
|
|
| SSLClientSocketOpenSSL::PeerCertificateChain&
|
| @@ -764,9 +706,11 @@ bool SSLClientSocketOpenSSL::GetSSLInfo(SSLInfo* ssl_info) {
|
| ssl_info->key_exchange_info =
|
| SSL_SESSION_get_key_exchange_info(SSL_get_session(ssl_));
|
|
|
| - ssl_info->connection_status = EncodeSSLConnectionStatus(
|
| - static_cast<uint16>(SSL_CIPHER_get_id(cipher)), 0 /* no compression */,
|
| - GetNetSSLVersion(ssl_));
|
| + SSLConnectionStatusSetCipherSuite(
|
| + static_cast<uint16>(SSL_CIPHER_get_id(cipher)),
|
| + &ssl_info->connection_status);
|
| + SSLConnectionStatusSetVersion(GetNetSSLVersion(ssl_),
|
| + &ssl_info->connection_status);
|
|
|
| if (!SSL_get_secure_renegotiation_support(ssl_))
|
| ssl_info->connection_status |= SSL_CONNECTION_NO_RENEGOTIATION_EXTENSION;
|
| @@ -1836,7 +1780,7 @@ int SSLClientSocketOpenSSL::ClientCertRequestCallback(SSL* ssl) {
|
| return -1;
|
| }
|
|
|
| - ScopedX509Stack chain = OSCertHandlesToOpenSSL(
|
| + ScopedX509_STACK chain = OSCertHandlesToOpenSSL(
|
| ssl_config_.client_cert->GetIntermediateCertificates());
|
| if (!chain) {
|
| LOG(WARNING) << "Failed to import intermediate certificates";
|
|
|