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

Unified Diff: content/common/ssl_status_serialization.cc

Issue 71633002: Convert SignedCertificateClass to be ref_counted, and add an SCTStore in which to store them. Add S… Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: few lint fixes Created 7 years, 1 month 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
« no previous file with comments | « content/common/ssl_status_serialization.h ('k') | content/content_browser.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/common/ssl_status_serialization.cc
diff --git a/content/common/ssl_status_serialization.cc b/content/common/ssl_status_serialization.cc
index c60564ff09b616d0f4f001b32b1f6d79877ea300..ebbe9d7253af85534eb8cd80615b4d35abf1fe77 100644
--- a/content/common/ssl_status_serialization.cc
+++ b/content/common/ssl_status_serialization.cc
@@ -13,13 +13,20 @@ std::string SerializeSecurityInfo(int cert_id,
net::CertStatus cert_status,
int security_bits,
int ssl_connection_status,
- int signed_certificate_timestamp_id) {
+ const SCTIdStatusList&
+ signed_certificate_timestamp_ids) {
Pickle pickle;
pickle.WriteInt(cert_id);
pickle.WriteUInt32(cert_status);
pickle.WriteInt(security_bits);
pickle.WriteInt(ssl_connection_status);
- pickle.WriteInt(signed_certificate_timestamp_id);
+ pickle.WriteInt(signed_certificate_timestamp_ids.size());
+ for (SCTIdStatusList::const_iterator iter =
+ signed_certificate_timestamp_ids.begin();
+ iter != signed_certificate_timestamp_ids.end(); ++iter) {
+ pickle.WriteInt(iter->first); // sct_id
+ pickle.WriteUInt16(iter->second); // verification status
+ }
return std::string(static_cast<const char*>(pickle.data()), pickle.size());
}
@@ -28,7 +35,8 @@ bool DeserializeSecurityInfo(const std::string& state,
net::CertStatus* cert_status,
int* security_bits,
int* ssl_connection_status,
- int* signed_certificate_timestamp_id) {
+ SCTIdStatusList*
+ signed_certificate_timestamp_ids) {
DCHECK(cert_id && cert_status && security_bits && ssl_connection_status);
if (state.empty()) {
// No SSL used.
@@ -37,17 +45,31 @@ bool DeserializeSecurityInfo(const std::string& state,
*cert_status = 0;
*security_bits = -1;
*ssl_connection_status = 0;
- *signed_certificate_timestamp_id = 0;
+ signed_certificate_timestamp_ids->clear();
return false;
}
Pickle pickle(state.data(), static_cast<int>(state.size()));
PickleIterator iter(pickle);
- return pickle.ReadInt(&iter, cert_id) &&
- pickle.ReadUInt32(&iter, cert_status) &&
- pickle.ReadInt(&iter, security_bits) &&
- pickle.ReadInt(&iter, ssl_connection_status) &&
- pickle.ReadInt(&iter, signed_certificate_timestamp_id);
+ bool pickle_read_ok = pickle.ReadInt(&iter, cert_id) &&
+ pickle.ReadUInt32(&iter, cert_status) &&
+ pickle.ReadInt(&iter, security_bits) &&
+ pickle.ReadInt(&iter, ssl_connection_status);
+ if (pickle_read_ok) {
+ int num_scts_to_read;
+ pickle_read_ok = pickle.ReadInt(&iter, &num_scts_to_read);
+ int id;
+ net::SignedCertificateTimestampVerificationStatus status;
+ for (; num_scts_to_read > 0 && pickle_read_ok; --num_scts_to_read) {
+ pickle_read_ok &= pickle.ReadInt(&iter, &id) &&
+ pickle.ReadUInt16(&iter, &status);
+ if (pickle_read_ok)
+ signed_certificate_timestamp_ids->push_back(
+ std::make_pair(id, status));
+ }
+ }
+
+ return pickle_read_ok;
}
} // namespace content
« no previous file with comments | « content/common/ssl_status_serialization.h ('k') | content/content_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698