| // Copyright 2014 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/ssl/channel_id_store.h" |
| |
| #include <utility> |
| |
| #include "crypto/ec_private_key.h" |
| |
| namespace net { |
| |
| ChannelIDStore::ChannelID::ChannelID() = default; |
| |
| ChannelIDStore::ChannelID::ChannelID(const std::string& server_identifier, |
| base::Time creation_time, |
| std::unique_ptr<crypto::ECPrivateKey> key) |
| : server_identifier_(server_identifier), |
| creation_time_(creation_time), |
| key_(std::move(key)) {} |
| |
| ChannelIDStore::ChannelID::ChannelID(const ChannelID& other) |
| : server_identifier_(other.server_identifier_), |
| creation_time_(other.creation_time_), |
| key_(other.key_ ? other.key_->Copy() : nullptr) { |
| } |
| |
| ChannelIDStore::ChannelID& ChannelIDStore::ChannelID::operator=( |
| const ChannelID& other) { |
| if (&other == this) |
| return *this; |
| server_identifier_ = other.server_identifier_; |
| creation_time_ = other.creation_time_; |
| if (other.key_) |
| key_ = other.key_->Copy(); |
| return *this; |
| } |
| |
| ChannelIDStore::ChannelID::~ChannelID() = default; |
| |
| ChannelIDStore::~ChannelIDStore() { |
| DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); |
| } |
| |
| void ChannelIDStore::InitializeFrom(const ChannelIDList& list) { |
| for (auto i = list.begin(); i != list.end(); ++i) { |
| SetChannelID(std::unique_ptr<ChannelID>(new ChannelID(*i))); |
| } |
| } |
| |
| } // namespace net |