Index: content/public/common/ssl_status.cc |
diff --git a/content/public/common/ssl_status.cc b/content/public/common/ssl_status.cc |
index 3490a81c46a0dd277a71d283f78ce4c8e8a94aa0..d3c2225c59dcb1c82acd7e4535c4282930317c83 100644 |
--- a/content/public/common/ssl_status.cc |
+++ b/content/public/common/ssl_status.cc |
@@ -4,6 +4,7 @@ |
#include "content/public/common/ssl_status.h" |
+#include "net/cert/sct_status_flags.h" |
#include "net/ssl/ssl_info.h" |
namespace content { |
@@ -15,13 +16,14 @@ SSLStatus::SSLStatus() |
security_bits(-1), |
key_exchange_info(0), |
connection_status(0), |
- content_status(NORMAL_CONTENT) { |
+ content_status(NORMAL_CONTENT), |
+ num_unknown_scts(0), |
+ num_invalid_scts(0), |
+ num_valid_scts(0) { |
} |
SSLStatus::SSLStatus(SecurityStyle security_style, |
int cert_id, |
- const SignedCertificateTimestampIDStatusList& |
- signed_certificate_timestamp_ids, |
const net::SSLInfo& ssl_info) |
: security_style(security_style), |
cert_id(cert_id), |
@@ -30,7 +32,29 @@ SSLStatus::SSLStatus(SecurityStyle security_style, |
key_exchange_info(ssl_info.key_exchange_info), |
connection_status(ssl_info.connection_status), |
content_status(NORMAL_CONTENT), |
- signed_certificate_timestamp_ids(signed_certificate_timestamp_ids) {} |
+ num_unknown_scts(0), |
+ num_invalid_scts(0), |
+ num_valid_scts(0) { |
+ // Count unknown, invalid and valid SCTs. |
+ for (const auto& sct_and_status : ssl_info.signed_certificate_timestamps) { |
+ switch (sct_and_status.status) { |
+ case net::ct::SCT_STATUS_LOG_UNKNOWN: |
+ num_unknown_scts++; |
+ break; |
+ case net::ct::SCT_STATUS_INVALID: |
+ num_invalid_scts++; |
+ break; |
+ case net::ct::SCT_STATUS_OK: |
+ num_valid_scts++; |
+ break; |
+ case net::ct::SCT_STATUS_NONE: |
+ case net::ct::SCT_STATUS_MAX: |
+ // These enum values do not represent SCTs that are taken into account |
+ // for CT compliance calculations, so we ignore them. |
+ break; |
estark
2016/05/07 07:12:51
This should probably be NOTREACHED()
dwaxweiler
2016/05/07 13:09:40
Acknowledged.
|
+ } |
+ } |
+} |
SSLStatus::SSLStatus(const SSLStatus& other) = default; |