Chromium Code Reviews| Index: net/cert/signed_tree_head.cc |
| diff --git a/net/cert/signed_tree_head.cc b/net/cert/signed_tree_head.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..eca31cfa2ffc143dccf4de82a96b85fe81880e8f |
| --- /dev/null |
| +++ b/net/cert/signed_tree_head.cc |
| @@ -0,0 +1,50 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "net/cert/signed_tree_head.h" |
| + |
| +#include "base/strings/string_number_conversions.h" |
| + |
| +namespace net { |
| +namespace ct { |
| + |
| +SignedTreeHead::SignedTreeHead() {} |
| + |
| +SignedTreeHead::SignedTreeHead(Version version, |
| + const base::Time& timestamp, |
| + uint64_t tree_size, |
| + const char sha256_root_hash[kSthRootHashLength], |
| + const DigitallySigned& signature, |
| + const std::string& log_id) |
| + : version(version), |
| + timestamp(timestamp), |
| + tree_size(tree_size), |
| + signature(signature), |
| + log_id(log_id) { |
| + strncpy(this->sha256_root_hash, sha256_root_hash, kSthRootHashLength); |
|
Eran Messeri
2016/01/14 12:46:45
You should use memcpy - strncpy breaks if there's
|
| +} |
| + |
| +SignedTreeHead::~SignedTreeHead() {} |
| + |
| +bool operator==(const SignedTreeHead& sth1, const SignedTreeHead& sth2) { |
| + return sth1.log_id == sth2.log_id && sth1.timestamp == sth2.timestamp; |
| +} |
| + |
| +bool operator!=(const SignedTreeHead& sth1, const SignedTreeHead& sth2) { |
| + return !(sth1 == sth2); |
| +} |
| + |
| +std::ostream& operator<<(std::ostream& stream, const SignedTreeHead& sth) { |
| + return stream << "{\n" |
| + << "\t\"version\": " << sth.version << ",\n" |
| + << "\t\"timestamp\": " << sth.timestamp << ",\n" |
| + << "\t\"tree_size\": " << sth.tree_size << ",\n" |
| + << "\t\"log_id\": \"" |
| + << base::HexEncode(sth.log_id.data(), sth.log_id.size()) |
| + << "\",\n" |
| + << "}"; |
| +} |
| + |
| +} // namespace ct |
| +} // namespace net |