Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(947)

Unified Diff: net/ssl/ssl_cipher_suite_names.cc

Issue 1727133002: Expose TLS settings in the Security panel overview, and call out individual obsolete settings. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Always expose TLS settings. Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/ssl/ssl_cipher_suite_names.cc
diff --git a/net/ssl/ssl_cipher_suite_names.cc b/net/ssl/ssl_cipher_suite_names.cc
index 2bfe72ac93f9e2e0746db4c04c69f5b6111ab5ac..088765cdd059f357a49ef02dca0c85457cbe476f 100644
--- a/net/ssl/ssl_cipher_suite_names.cc
+++ b/net/ssl/ssl_cipher_suite_names.cc
@@ -362,10 +362,22 @@ bool ParseSSLCipherString(const std::string& cipher_string,
return false;
}
-bool IsSecureTLSCipherSuite(uint16_t cipher_suite) {
+int ObsoleteSSLStatus(int connection_status) {
lgarron 2016/04/09 03:22:50 I think that this is the right level of abstractio
lgarron 2016/04/12 02:25:08 ping
davidben 2016/04/19 17:47:01 I'm a little sad about this connection_status thin
int key_exchange, cipher, mac;
- if (!GetCipherProperties(cipher_suite, &key_exchange, &cipher, &mac))
- return false;
+ int obsolete_ssl = OBSOLETE_SSL_NONE;
+
+ int ssl_version = SSLConnectionStatusToVersion(connection_status);
+ if (ssl_version < SSL_CONNECTION_VERSION_TLS1_2) {
+ obsolete_ssl |= OBSOLETE_SSL_MASK_PROTOCOL;
+ }
+
+ uint16_t cipher_suite = SSLConnectionStatusToCipherSuite(connection_status);
+ if (!GetCipherProperties(cipher_suite, &key_exchange, &cipher, &mac)) {
+ // Cannot determine/unknown cipher suite. Err on the side of caution.
+ obsolete_ssl |= OBSOLETE_SSL_MASK_KEY_EXCHANGE;
+ obsolete_ssl |= OBSOLETE_SSL_MASK_CIPHER_SUITE;
+ return obsolete_ssl;
+ }
// Only allow ECDHE key exchanges.
switch (key_exchange) {
@@ -373,7 +385,7 @@ bool IsSecureTLSCipherSuite(uint16_t cipher_suite) {
case 16: // ECDHE_RSA
break;
default:
- return false;
+ obsolete_ssl |= OBSOLETE_SSL_MASK_KEY_EXCHANGE;
}
switch (cipher) {
@@ -382,14 +394,14 @@ bool IsSecureTLSCipherSuite(uint16_t cipher_suite) {
case 17: // CHACHA20_POLY1305
break;
default:
- return false;
+ obsolete_ssl |= OBSOLETE_SSL_MASK_CIPHER_SUITE;
}
// Only AEADs allowed.
if (mac != kAEADMACValue)
- return false;
+ obsolete_ssl |= OBSOLETE_SSL_MASK_CIPHER_SUITE;
- return true;
+ return obsolete_ssl;
}
bool IsTLSCipherSuiteAllowedByHTTP2(uint16_t cipher_suite) {

Powered by Google App Engine
This is Rietveld 408576698