1*6777b538SAndroid Build Coastguard Worker // Copyright 2012 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "net/ssl/ssl_config_service.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include <tuple> 8*6777b538SAndroid Build Coastguard Worker 9*6777b538SAndroid Build Coastguard Worker #include "base/feature_list.h" 10*6777b538SAndroid Build Coastguard Worker #include "base/observer_list.h" 11*6777b538SAndroid Build Coastguard Worker #include "net/base/features.h" 12*6777b538SAndroid Build Coastguard Worker #include "net/ssl/ssl_config_service_defaults.h" 13*6777b538SAndroid Build Coastguard Worker 14*6777b538SAndroid Build Coastguard Worker namespace net { 15*6777b538SAndroid Build Coastguard Worker 16*6777b538SAndroid Build Coastguard Worker SSLContextConfig::SSLContextConfig() = default; 17*6777b538SAndroid Build Coastguard Worker SSLContextConfig::SSLContextConfig(const SSLContextConfig&) = default; 18*6777b538SAndroid Build Coastguard Worker SSLContextConfig::SSLContextConfig(SSLContextConfig&&) = default; 19*6777b538SAndroid Build Coastguard Worker SSLContextConfig::~SSLContextConfig() = default; 20*6777b538SAndroid Build Coastguard Worker SSLContextConfig& SSLContextConfig::operator=(const SSLContextConfig&) = 21*6777b538SAndroid Build Coastguard Worker default; 22*6777b538SAndroid Build Coastguard Worker SSLContextConfig& SSLContextConfig::operator=(SSLContextConfig&&) = default; 23*6777b538SAndroid Build Coastguard Worker bool SSLContextConfig::operator==(const SSLContextConfig&) const = default; 24*6777b538SAndroid Build Coastguard Worker PostQuantumKeyAgreementEnabled() const25*6777b538SAndroid Build Coastguard Workerbool SSLContextConfig::PostQuantumKeyAgreementEnabled() const { 26*6777b538SAndroid Build Coastguard Worker return post_quantum_override.value_or( 27*6777b538SAndroid Build Coastguard Worker base::FeatureList::IsEnabled(features::kPostQuantumKyber)); 28*6777b538SAndroid Build Coastguard Worker } 29*6777b538SAndroid Build Coastguard Worker SSLConfigService()30*6777b538SAndroid Build Coastguard WorkerSSLConfigService::SSLConfigService() 31*6777b538SAndroid Build Coastguard Worker : observer_list_(base::ObserverListPolicy::EXISTING_ONLY) {} 32*6777b538SAndroid Build Coastguard Worker 33*6777b538SAndroid Build Coastguard Worker SSLConfigService::~SSLConfigService() = default; 34*6777b538SAndroid Build Coastguard Worker AddObserver(Observer * observer)35*6777b538SAndroid Build Coastguard Workervoid SSLConfigService::AddObserver(Observer* observer) { 36*6777b538SAndroid Build Coastguard Worker observer_list_.AddObserver(observer); 37*6777b538SAndroid Build Coastguard Worker } 38*6777b538SAndroid Build Coastguard Worker RemoveObserver(Observer * observer)39*6777b538SAndroid Build Coastguard Workervoid SSLConfigService::RemoveObserver(Observer* observer) { 40*6777b538SAndroid Build Coastguard Worker observer_list_.RemoveObserver(observer); 41*6777b538SAndroid Build Coastguard Worker } 42*6777b538SAndroid Build Coastguard Worker NotifySSLContextConfigChange()43*6777b538SAndroid Build Coastguard Workervoid SSLConfigService::NotifySSLContextConfigChange() { 44*6777b538SAndroid Build Coastguard Worker for (auto& observer : observer_list_) 45*6777b538SAndroid Build Coastguard Worker observer.OnSSLContextConfigChanged(); 46*6777b538SAndroid Build Coastguard Worker } 47*6777b538SAndroid Build Coastguard Worker ProcessConfigUpdate(const SSLContextConfig & old_config,const SSLContextConfig & new_config,bool force_notification)48*6777b538SAndroid Build Coastguard Workervoid SSLConfigService::ProcessConfigUpdate(const SSLContextConfig& old_config, 49*6777b538SAndroid Build Coastguard Worker const SSLContextConfig& new_config, 50*6777b538SAndroid Build Coastguard Worker bool force_notification) { 51*6777b538SAndroid Build Coastguard Worker // Do nothing if the configuration hasn't changed. 52*6777b538SAndroid Build Coastguard Worker if (old_config != new_config || force_notification) { 53*6777b538SAndroid Build Coastguard Worker NotifySSLContextConfigChange(); 54*6777b538SAndroid Build Coastguard Worker } 55*6777b538SAndroid Build Coastguard Worker } 56*6777b538SAndroid Build Coastguard Worker 57*6777b538SAndroid Build Coastguard Worker } // namespace net 58