| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // OpenSSL binding for SSLClientSocket. The class layout and general principle | 5 // OpenSSL binding for SSLClientSocket. The class layout and general principle |
| 6 // of operation is derived from SSLClientSocketNSS. | 6 // of operation is derived from SSLClientSocketNSS. |
| 7 | 7 |
| 8 #include "net/socket/ssl_client_socket_openssl.h" | 8 #include "net/socket/ssl_client_socket_openssl.h" |
| 9 | 9 |
| 10 #include <openssl/ssl.h> | 10 #include <openssl/ssl.h> |
| (...skipping 850 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 861 } | 861 } |
| 862 | 862 |
| 863 // Unlike SSL_get_peer_certificate, SSL_get_peer_cert_chain does not | 863 // Unlike SSL_get_peer_certificate, SSL_get_peer_cert_chain does not |
| 864 // increment the reference so sk_X509_free does not need to be called. | 864 // increment the reference so sk_X509_free does not need to be called. |
| 865 STACK_OF(X509)* chain = SSL_get_peer_cert_chain(ssl_); | 865 STACK_OF(X509)* chain = SSL_get_peer_cert_chain(ssl_); |
| 866 X509Certificate::OSCertHandles intermediates; | 866 X509Certificate::OSCertHandles intermediates; |
| 867 if (chain) { | 867 if (chain) { |
| 868 for (int i = 0; i < sk_X509_num(chain); ++i) | 868 for (int i = 0; i < sk_X509_num(chain); ++i) |
| 869 intermediates.push_back(sk_X509_value(chain, i)); | 869 intermediates.push_back(sk_X509_value(chain, i)); |
| 870 } | 870 } |
| 871 server_cert_ = X509Certificate::CreateFromHandle( | 871 server_cert_ = X509Certificate::CreateFromHandle(cert.get(), |
| 872 cert.get(), X509Certificate::SOURCE_FROM_NETWORK, intermediates); | 872 intermediates); |
| 873 DCHECK(server_cert_); | 873 DCHECK(server_cert_); |
| 874 | 874 |
| 875 return server_cert_; | 875 return server_cert_; |
| 876 } | 876 } |
| 877 | 877 |
| 878 bool SSLClientSocketOpenSSL::DoTransportIO() { | 878 bool SSLClientSocketOpenSSL::DoTransportIO() { |
| 879 bool network_moved = false; | 879 bool network_moved = false; |
| 880 int nsent = BufferSend(); | 880 int nsent = BufferSend(); |
| 881 int nreceived = BufferRecv(); | 881 int nreceived = BufferRecv(); |
| 882 network_moved = (nsent > 0 || nreceived >= 0); | 882 network_moved = (nsent > 0 || nreceived >= 0); |
| (...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1183 int rv = SSL_write(ssl_, user_write_buf_->data(), user_write_buf_len_); | 1183 int rv = SSL_write(ssl_, user_write_buf_->data(), user_write_buf_len_); |
| 1184 | 1184 |
| 1185 if (rv >= 0) | 1185 if (rv >= 0) |
| 1186 return rv; | 1186 return rv; |
| 1187 | 1187 |
| 1188 int err = SSL_get_error(ssl_, rv); | 1188 int err = SSL_get_error(ssl_, rv); |
| 1189 return MapOpenSSLError(err, err_tracer); | 1189 return MapOpenSSLError(err, err_tracer); |
| 1190 } | 1190 } |
| 1191 | 1191 |
| 1192 } // namespace net | 1192 } // namespace net |
| OLD | NEW |