OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <errno.h> | 10 #include <errno.h> |
(...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
793 } | 793 } |
794 if (disable) { | 794 if (disable) { |
795 const char* name = SSL_CIPHER_get_name(cipher); | 795 const char* name = SSL_CIPHER_get_name(cipher); |
796 DVLOG(3) << "Found cipher to remove: '" << name << "', ID: " << id | 796 DVLOG(3) << "Found cipher to remove: '" << name << "', ID: " << id |
797 << " strength: " << SSL_CIPHER_get_bits(cipher, NULL); | 797 << " strength: " << SSL_CIPHER_get_bits(cipher, NULL); |
798 command.append(":!"); | 798 command.append(":!"); |
799 command.append(name); | 799 command.append(name); |
800 } | 800 } |
801 } | 801 } |
802 | 802 |
| 803 if (!ssl_config_.enable_deprecated_cipher_suites) |
| 804 command.append(":!RC4"); |
| 805 |
803 // Disable ECDSA cipher suites on platforms that do not support ECDSA | 806 // Disable ECDSA cipher suites on platforms that do not support ECDSA |
804 // signed certificates, as servers may use the presence of such | 807 // signed certificates, as servers may use the presence of such |
805 // ciphersuites as a hint to send an ECDSA certificate. | 808 // ciphersuites as a hint to send an ECDSA certificate. |
806 #if defined(OS_WIN) | 809 #if defined(OS_WIN) |
807 if (base::win::GetVersion() < base::win::VERSION_VISTA) | 810 if (base::win::GetVersion() < base::win::VERSION_VISTA) |
808 command.append(":!ECDSA"); | 811 command.append(":!ECDSA"); |
809 #endif | 812 #endif |
810 | 813 |
811 int rv = SSL_set_cipher_list(ssl_, command.c_str()); | 814 int rv = SSL_set_cipher_list(ssl_, command.c_str()); |
812 // If this fails (rv = 0) it means there are no ciphers enabled on this SSL. | 815 // If this fails (rv = 0) it means there are no ciphers enabled on this SSL. |
(...skipping 1125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1938 case SSL_PROTOCOL_VERSION_TLS1_1: | 1941 case SSL_PROTOCOL_VERSION_TLS1_1: |
1939 result.append("tls1.1"); | 1942 result.append("tls1.1"); |
1940 break; | 1943 break; |
1941 case SSL_PROTOCOL_VERSION_TLS1_2: | 1944 case SSL_PROTOCOL_VERSION_TLS1_2: |
1942 result.append("tls1.2"); | 1945 result.append("tls1.2"); |
1943 break; | 1946 break; |
1944 default: | 1947 default: |
1945 NOTREACHED(); | 1948 NOTREACHED(); |
1946 } | 1949 } |
1947 | 1950 |
| 1951 result.append("/"); |
| 1952 if (ssl_config_.enable_deprecated_cipher_suites) |
| 1953 result.append("deprecated"); |
| 1954 |
1948 return result; | 1955 return result; |
1949 } | 1956 } |
1950 | 1957 |
1951 scoped_refptr<X509Certificate> | 1958 scoped_refptr<X509Certificate> |
1952 SSLClientSocketOpenSSL::GetUnverifiedServerCertificateChain() const { | 1959 SSLClientSocketOpenSSL::GetUnverifiedServerCertificateChain() const { |
1953 return server_cert_; | 1960 return server_cert_; |
1954 } | 1961 } |
1955 | 1962 |
1956 } // namespace net | 1963 } // namespace net |
OLD | NEW |