Index: net/cert/multi_log_ct_verifier.cc |
diff --git a/net/cert/multi_log_ct_verifier.cc b/net/cert/multi_log_ct_verifier.cc |
index 61c07b6d4e560cb06eaa65e95cce5d25f7a37cd8..ba91d09d70625362bf7a590bbd9882d52733c72d 100644 |
--- a/net/cert/multi_log_ct_verifier.cc |
+++ b/net/cert/multi_log_ct_verifier.cc |
@@ -81,10 +81,10 @@ void MultiLogCTVerifier::SetObserver(Observer* observer) { |
observer_ = observer; |
} |
-int MultiLogCTVerifier::Verify( |
+void MultiLogCTVerifier::Verify( |
X509Certificate* cert, |
- const std::string& stapled_ocsp_response, |
- const std::string& sct_list_from_tls_extension, |
+ base::StringPiece stapled_ocsp_response, |
+ base::StringPiece sct_list_from_tls_extension, |
SignedCertificateTimestampAndStatusList* output_scts, |
const NetLogWithSource& net_log) { |
DCHECK(cert); |
@@ -92,8 +92,6 @@ int MultiLogCTVerifier::Verify( |
output_scts->clear(); |
- bool has_verified_scts = false; |
- |
std::string embedded_scts; |
if (!cert->GetIntermediateCertificates().empty() && |
ct::ExtractEmbeddedSCTList( |
@@ -101,13 +99,13 @@ int MultiLogCTVerifier::Verify( |
&embedded_scts)) { |
ct::LogEntry precert_entry; |
- has_verified_scts = |
- ct::GetPrecertLogEntry(cert->os_cert_handle(), |
+ if (ct::GetPrecertLogEntry(cert->os_cert_handle(), |
cert->GetIntermediateCertificates().front(), |
- &precert_entry) && |
- VerifySCTs(embedded_scts, precert_entry, |
- ct::SignedCertificateTimestamp::SCT_EMBEDDED, cert, |
- output_scts); |
+ &precert_entry)) { |
+ VerifySCTs(embedded_scts, precert_entry, |
+ ct::SignedCertificateTimestamp::SCT_EMBEDDED, cert, |
+ output_scts); |
+ } |
} |
std::string sct_list_from_ocsp; |
@@ -121,23 +119,21 @@ int MultiLogCTVerifier::Verify( |
// Log to Net Log, after extracting SCTs but before possibly failing on |
// X.509 entry creation. |
NetLogParametersCallback net_log_callback = |
- base::Bind(&NetLogRawSignedCertificateTimestampCallback, &embedded_scts, |
- &sct_list_from_ocsp, &sct_list_from_tls_extension); |
+ base::Bind(&NetLogRawSignedCertificateTimestampCallback, embedded_scts, |
+ sct_list_from_ocsp, sct_list_from_tls_extension); |
net_log.AddEvent(NetLogEventType::SIGNED_CERTIFICATE_TIMESTAMPS_RECEIVED, |
net_log_callback); |
ct::LogEntry x509_entry; |
if (ct::GetX509LogEntry(cert->os_cert_handle(), &x509_entry)) { |
- has_verified_scts |= |
- VerifySCTs(sct_list_from_ocsp, x509_entry, |
- ct::SignedCertificateTimestamp::SCT_FROM_OCSP_RESPONSE, cert, |
- output_scts); |
- |
- has_verified_scts |= |
- VerifySCTs(sct_list_from_tls_extension, x509_entry, |
- ct::SignedCertificateTimestamp::SCT_FROM_TLS_EXTENSION, cert, |
- output_scts); |
+ VerifySCTs(sct_list_from_ocsp, x509_entry, |
+ ct::SignedCertificateTimestamp::SCT_FROM_OCSP_RESPONSE, cert, |
+ output_scts); |
+ |
+ VerifySCTs(sct_list_from_tls_extension, x509_entry, |
+ ct::SignedCertificateTimestamp::SCT_FROM_TLS_EXTENSION, cert, |
+ output_scts); |
} |
NetLogParametersCallback net_log_checked_callback = |
@@ -147,29 +143,22 @@ int MultiLogCTVerifier::Verify( |
net_log_checked_callback); |
LogNumSCTsToUMA(*output_scts); |
- |
- if (has_verified_scts) |
- return OK; |
- |
- return ERR_CT_NO_SCTS_VERIFIED_OK; |
} |
-bool MultiLogCTVerifier::VerifySCTs( |
- const std::string& encoded_sct_list, |
+void MultiLogCTVerifier::VerifySCTs( |
+ base::StringPiece encoded_sct_list, |
const ct::LogEntry& expected_entry, |
ct::SignedCertificateTimestamp::Origin origin, |
X509Certificate* cert, |
SignedCertificateTimestampAndStatusList* output_scts) { |
if (logs_.empty()) |
- return false; |
+ return; |
- base::StringPiece temp(encoded_sct_list); |
eroman
2016/12/27 22:00:40
I suggest keeping a temp string piece for clarity,
Ryan Sleevi
2016/12/27 22:17:19
DecodeSCTList doesn't need to modify the input. I'
|
std::vector<base::StringPiece> sct_list; |
- if (!ct::DecodeSCTList(&temp, &sct_list)) |
- return false; |
+ if (!ct::DecodeSCTList(&encoded_sct_list, &sct_list)) |
+ return; |
- bool verified = false; |
for (std::vector<base::StringPiece>::const_iterator it = sct_list.begin(); |
it != sct_list.end(); ++it) { |
base::StringPiece encoded_sct(*it); |
@@ -183,10 +172,8 @@ bool MultiLogCTVerifier::VerifySCTs( |
} |
decoded_sct->origin = origin; |
- verified |= VerifySingleSCT(decoded_sct, expected_entry, cert, output_scts); |
+ VerifySingleSCT(decoded_sct, expected_entry, cert, output_scts); |
} |
- |
- return verified; |
} |
bool MultiLogCTVerifier::VerifySingleSCT( |