// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_CERTIFICATE_TRANSPARENCY_CHROME_REQUIRE_CT_DELEGATE_H_ #define COMPONENTS_CERTIFICATE_TRANSPARENCY_CHROME_REQUIRE_CT_DELEGATE_H_ #include <memory> #include <string> #include <vector> #include "base/component_export.h" #include "components/url_matcher/url_matcher.h" #include "net/base/hash_value.h" #include "net/http/transport_security_state.h" namespace net { class X509Certificate; } // namespace net namespace certificate_transparency { // ChromeRequireCTDelegate implements the policies used by Chrome to determine // when to require Certificate Transparency for a host or certificate. Combined // with ChromeCTPolicyEnforcer, these two classes implement the // "Certificate Transparency in Chrome" policy from // https://goo.gl/chrome/ct-policy - PolicyEnforcer imposing the policies on // the SCTs to determine whether or not a certificate complies, and // RequireCTDelegate to determine whether or not compliance is required for the // connection to succeed. // // To support Enterprise configuration, additional requirements or exceptions // can be provided via |UpdateCTPolicies()|, which uses the configuration // syntax documented in pref_names.h for each of the options. class COMPONENT_EXPORT(CERTIFICATE_TRANSPARENCY) ChromeRequireCTDelegate : public net::TransportSecurityState::RequireCTDelegate { … }; } // namespace certificate_transparency #endif // COMPONENTS_CERTIFICATE_TRANSPARENCY_CHROME_REQUIRE_CT_DELEGATE_H_