blob: cf4ad4a85551eb924f3e6db23bab411fbf7a5f96 [file] [log] [blame]
Emily Starkd29cdae2017-09-16 01:59:341// Copyright 2017 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef NET_CERT_SYMANTEC_CERTS_H_
6#define NET_CERT_SYMANTEC_CERTS_H_
7
8#include "net/base/hash_value.h"
9
10namespace net {
11
12// |kSymantecRoots| contains the set of known active and legacy root
13// certificates operated by Symantec Corporation. These roots are subject to
14// Certificate Transparency requirements and deprecation messages. See
15// <https://security.googleblog.com/2015/10/sustaining-digital-certificate-security.html>
16// and
17// https://security.googleblog.com/2017/09/chromes-plan-to-distrust-symantec.html
18// for details about why.
19//
Ryan Sleevibd9ca3112017-12-23 05:22:1920// Pre-existing, independently operated sub-CAs are exempt from these
21// policies, and are listed in |kSymantecExceptions|.
22//
23// The Managed Partner CAs are required to disclose via Certificate
24// Transparency, and are listed in |kSymantecManagedCAs|.
25NET_EXPORT_PRIVATE extern const SHA256HashValue kSymantecRoots[];
26NET_EXPORT_PRIVATE extern const size_t kSymantecRootsLength;
27NET_EXPORT_PRIVATE extern const SHA256HashValue kSymantecExceptions[];
28NET_EXPORT_PRIVATE extern const size_t kSymantecExceptionsLength;
29NET_EXPORT_PRIVATE extern const SHA256HashValue kSymantecManagedCAs[];
30NET_EXPORT_PRIVATE extern const size_t kSymantecManagedCAsLength;
Emily Starkd29cdae2017-09-16 01:59:3431
32// Returns true if |public_key_hashes| contains a certificate issued from
33// Symantec's "legacy" PKI. This constraint excludes certificates that were
34// issued by independently-operated subordinate CAs or from any "Managed CAs"
35// that comply with
36// https://security.googleblog.com/2017/09/chromes-plan-to-distrust-symantec.html.
37NET_EXPORT bool IsLegacySymantecCert(const HashValueVector& public_key_hashes);
38
39} // namespace net
40
41#endif // NET_CERT_SYMANTEC_CERTS_H_