1 // Copyright (c) 2011 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_URL_REQUEST_FRAUDULENT_CERTIFICATE_REPORTER_H_ 6 #define NET_URL_REQUEST_FRAUDULENT_CERTIFICATE_REPORTER_H_ 7 8 #include <string> 9 10 namespace net { 11 12 class SSLInfo; 13 14 // FraudulentCertificateReporter is an interface for asynchronously 15 // reporting certificate chains that fail the certificate pinning 16 // check. 17 class FraudulentCertificateReporter { 18 public: 19 virtual ~FraudulentCertificateReporter() {} 20 21 // Sends a report to the report collection server containing the |ssl_info| 22 // associated with a connection to |hostname|. If |sni_available| is true, 23 // searches the SNI transport security metadata as well as the usual 24 // transport security metadata when determining policy for sending the report. 25 virtual void SendReport(const std::string& hostname, 26 const SSLInfo& ssl_info, 27 bool sni_available) = 0; 28 }; 29 30 } // namespace net 31 32 #endif // NET_URL_REQUEST_FRAUDULENT_CERTIFICATE_REPORTER_H_ 33 34