| Index: net/cert/signed_certificate_timestamp.cc
|
| diff --git a/net/cert/signed_certificate_timestamp.cc b/net/cert/signed_certificate_timestamp.cc
|
| index 8925a994c123ba146f30bfd2bb8c8cd5fa4d975a..bdb54f19570031160c9f1d7f992ca5edd94e98b1 100644
|
| --- a/net/cert/signed_certificate_timestamp.cc
|
| +++ b/net/cert/signed_certificate_timestamp.cc
|
| @@ -4,6 +4,8 @@
|
|
|
| #include "net/cert/signed_certificate_timestamp.h"
|
|
|
| +#include "base/pickle.h"
|
| +
|
| namespace net {
|
|
|
| namespace ct {
|
| @@ -28,6 +30,45 @@ SignedCertificateTimestamp::SignedCertificateTimestamp() {}
|
|
|
| SignedCertificateTimestamp::~SignedCertificateTimestamp() {}
|
|
|
| +void SignedCertificateTimestamp::Persist(Pickle* pickle) {
|
| + CHECK(pickle->WriteInt(version));
|
| + CHECK(pickle->WriteString(log_id));
|
| + CHECK(pickle->WriteInt64(timestamp.ToInternalValue()));
|
| + CHECK(pickle->WriteString(extensions));
|
| + CHECK(pickle->WriteInt(signature.hash_algorithm));
|
| + CHECK(pickle->WriteInt(signature.signature_algorithm));
|
| + CHECK(pickle->WriteString(signature.signature_data));
|
| +}
|
| +
|
| +// static
|
| +scoped_refptr<SignedCertificateTimestamp>
|
| +SignedCertificateTimestamp::CreateFromPickle(PickleIterator* iter) {
|
| + int version;
|
| + int64 timestamp;
|
| + int hash_algorithm;
|
| + int sig_algorithm;
|
| + scoped_refptr<SignedCertificateTimestamp> sct(
|
| + new SignedCertificateTimestamp());
|
| + // string values are set directly
|
| + if (!(iter->ReadInt(&version) &&
|
| + iter->ReadString(&sct->log_id) &&
|
| + iter->ReadInt64(×tamp) &&
|
| + iter->ReadString(&sct->extensions) &&
|
| + iter->ReadInt(&hash_algorithm) &&
|
| + iter->ReadInt(&sig_algorithm) &&
|
| + iter->ReadString(&sct->signature.signature_data))) {
|
| + return NULL;
|
| + }
|
| + // Now set the rest of the member variables:
|
| + sct->version = static_cast<Version>(version);
|
| + sct->timestamp = base::Time::FromInternalValue(timestamp);
|
| + sct->signature.hash_algorithm =
|
| + static_cast<DigitallySigned::HashAlgorithm>(hash_algorithm);
|
| + sct->signature.signature_algorithm =
|
| + static_cast<DigitallySigned::SignatureAlgorithm>(sig_algorithm);
|
| + return sct;
|
| +}
|
| +
|
| LogEntry::LogEntry() {}
|
|
|
| LogEntry::~LogEntry() {}
|
|
|