Chromium Code Reviews| Index: chrome/browser/net/certificate_error_reporter.h |
| diff --git a/chrome/browser/net/certificate_error_reporter.h b/chrome/browser/net/certificate_error_reporter.h |
| index 3c20ec1c607abe8bd12edc60e4caa39973808ab6..88130c5feb0fd30508ef4a852dc0bf3a865c4312 100644 |
| --- a/chrome/browser/net/certificate_error_reporter.h |
| +++ b/chrome/browser/net/certificate_error_reporter.h |
| @@ -21,6 +21,7 @@ class SSLInfo; |
| namespace chrome_browser_net { |
| class CertLoggerRequest; |
| +class EncryptedCertLoggerRequest; |
| // Provides functionality for sending reports about invalid SSL |
| // certificate chains to a report collection server. |
| @@ -48,6 +49,13 @@ class CertificateErrorReporter : public net::URLRequest::Delegate { |
| const GURL& upload_url, |
| CookiesPreference cookies_preference); |
| + // Allows tests to use a server public key with known private key. |
| + CertificateErrorReporter(net::URLRequestContext* request_context, |
| + const GURL& upload_url, |
| + CookiesPreference cookies_preference, |
| + const uint8 server_public_key[32], |
| + const uint32 server_public_key_version); |
| + |
| ~CertificateErrorReporter() override; |
| // Construct, serialize, and send a certificate report to the report |
| @@ -66,6 +74,18 @@ class CertificateErrorReporter : public net::URLRequest::Delegate { |
| void OnResponseStarted(net::URLRequest* request) override; |
| void OnReadCompleted(net::URLRequest* request, int bytes_read) override; |
| + // On some platforms (but not all), CertificateErrorReporter can use |
| + // an HTTP endpoint to send encrypted extended reporting reports. On |
| + // unsupported platforms, callers must send extended reporting reports |
| + // over SSL. |
|
felt
2015/04/24 19:33:57
nit: seems like this comment ought to be over Send
estark
2015/04/24 20:10:05
Done.
|
| + static bool IsHttpUploadUrlSupported(); |
| + |
| + // Used by tests. |
| + static bool DecryptCertificateErrorReport( |
| + const uint8 server_private_key[32], |
| + const EncryptedCertLoggerRequest& encrypted_report, |
| + CertLoggerRequest* decrypted_report); |
| + |
| private: |
| // Create a URLRequest with which to send a certificate report to the |
| // server. |
| @@ -76,6 +96,8 @@ class CertificateErrorReporter : public net::URLRequest::Delegate { |
| // collection server. |
| void SendCertLoggerRequest(const CertLoggerRequest& request); |
| + void SendSerializedRequest(const std::string& serialized_request); |
| + |
| // Populate the CertLoggerRequest for a report. |
| static void BuildReport(const std::string& hostname, |
| const net::SSLInfo& ssl_info, |
| @@ -92,6 +114,9 @@ class CertificateErrorReporter : public net::URLRequest::Delegate { |
| CookiesPreference cookies_preference_; |
| + const uint8* server_public_key_; |
| + const uint32 server_public_key_version_; |
| + |
| DISALLOW_COPY_AND_ASSIGN(CertificateErrorReporter); |
| }; |