// 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 #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 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 (ChannelIDList::const_iterator i = list.begin(); i != list.end(); ++i) { SetChannelID(std::unique_ptr(new ChannelID(*i))); } } } // namespace net