1 // Copyright 2017 The Chromium Authors 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_HTTP_TRANSPORT_SECURITY_STATE_SOURCE_H_ 6 #define NET_HTTP_TRANSPORT_SECURITY_STATE_SOURCE_H_ 7 8 #include <stddef.h> 9 #include <stdint.h> 10 11 #include "base/memory/raw_ptr_exclusion.h" 12 #include "net/base/net_export.h" 13 14 namespace net { 15 16 // kNoReportURI is a placeholder for when a pinset does not have a report URI. 17 NET_EXPORT_PRIVATE extern const char kNoReportURI[]; 18 19 struct TransportSecurityStateSource { 20 struct Pinset { 21 // RAW_PTR_EXCLUSION: accepted_pins always points to static data. 22 RAW_PTR_EXCLUSION const char* const* const accepted_pins; 23 // RAW_PTR_EXCLUSION: rejected_pins always points to static data. 24 RAW_PTR_EXCLUSION const char* const* const rejected_pins; 25 const char* const report_uri; 26 }; 27 28 // RAW_PTR_EXCLUSION: huffman_tree always points to static data. 29 const uint8_t* huffman_tree; 30 size_t huffman_tree_size; 31 // RAW_PTR_EXCLUSION: preloaded_data always points to static data. 32 const uint8_t* preloaded_data; 33 size_t preloaded_bits; 34 size_t root_position; 35 // RAW_PTR_EXCLUSION: pinsets always points to static data. 36 RAW_PTR_EXCLUSION const Pinset* pinsets; 37 size_t pinsets_count; 38 }; 39 40 } // namespace net 41 42 #endif // NET_HTTP_TRANSPORT_SECURITY_STATE_SOURCE_H_ 43