OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // This protobuffer is intended to store reports from Chrome users of | 5 // This protobuffer is intended to store reports from Chrome users of |
6 // certificate errors. A report will be sent from Chrome when it gets | 6 // certificate errors. A report will be sent from Chrome when it gets |
7 // e.g. a certificate for google.com that chains up to a root CA not expected by | 7 // e.g. a certificate for google.com that chains up to a root CA not expected by |
8 // Chrome for that origin, such as DigiNotar (compromised in July 2011), or | 8 // Chrome for that origin, such as DigiNotar (compromised in July 2011), or |
9 // other pinning errors such as a blacklisted cert in the chain, or | 9 // other pinning errors such as a blacklisted cert in the chain, or |
10 // (when opted in) other certificate validation errors like an expired | 10 // (when opted in) other certificate validation errors like an expired |
11 // cert. The report from the user will include the hostname being accessed, | 11 // cert. The report from the user will include the hostname being accessed, |
12 // the full certificate chain (in PEM format), and the | 12 // the full certificate chain (in PEM format), and the |
13 // timestamp of when the client tried to access the site. A response is | 13 // timestamp of when the client tried to access the site. A response is |
14 // generated by the frontend and logged, including validation and error checking | 14 // generated by the frontend and logged, including validation and error checking |
15 // done on the client's input data. | 15 // done on the client's input data. |
16 | 16 |
17 syntax = "proto2"; | 17 syntax = "proto2"; |
18 | 18 |
19 // Chrome requires this. | 19 // Chrome requires this. |
20 option optimize_for = LITE_RUNTIME; | 20 option optimize_for = LITE_RUNTIME; |
21 | 21 |
22 // Protocol types | 22 // Protocol types |
| 23 |
| 24 message CertLoggerInterstitialInfo { |
| 25 // The different reasons that an SSL warning interstitial could be shown to |
| 26 // a user. |
| 27 enum InterstitialReason { |
| 28 // A standard SSL interstitial |
| 29 INTERSTITIAL_SSL = 1; |
| 30 // An interstitial alerting the user that they are in a captive portal |
| 31 INTERSTITIAL_CAPTIVE_PORTAL = 2; |
| 32 // An interstitial telling the user to update their system clock |
| 33 INTERSTITIAL_CLOCK = 3; |
| 34 } |
| 35 |
| 36 // The type of interstitial that was shown |
| 37 optional InterstitialReason interstitial_reason = 1; |
| 38 // True if the user clicked through to the offending website |
| 39 optional bool user_proceeded = 2; |
| 40 // True if the user was shown an option to click through |
| 41 optional bool overridable = 3; |
| 42 } |
| 43 |
23 message CertLoggerRequest { | 44 message CertLoggerRequest { |
24 // The hostname being accessed (required as the cert could be valid for | 45 // The hostname being accessed (required as the cert could be valid for |
25 // multiple hosts, e.g. a wildcard or a SubjectAltName. | 46 // multiple hosts, e.g. a wildcard or a SubjectAltName. |
26 required string hostname = 1; | 47 required string hostname = 1; |
27 // The certificate chain as a series of PEM-encoded certificates, including | 48 // The certificate chain as a series of PEM-encoded certificates, including |
28 // intermediates but not necessarily the root. | 49 // intermediates but not necessarily the root. |
29 required string cert_chain = 2; | 50 required string cert_chain = 2; |
30 // The time (in usec since the epoch) when the client attempted to access the | 51 // The time (in usec since the epoch) when the client attempted to access the |
31 // site generating the pinning error. | 52 // site generating the pinning error. |
32 required int64 time_usec = 3; | 53 required int64 time_usec = 3; |
(...skipping 16 matching lines...) Expand all Loading... |
49 ERR_CERT_DATE_INVALID = 9; | 70 ERR_CERT_DATE_INVALID = 9; |
50 ERR_CERT_VALIDITY_TOO_LONG = 10; | 71 ERR_CERT_VALIDITY_TOO_LONG = 10; |
51 ERR_CERT_UNABLE_TO_CHECK_REVOCATION = 11; | 72 ERR_CERT_UNABLE_TO_CHECK_REVOCATION = 11; |
52 ERR_CERT_NO_REVOCATION_MECHANISM = 12; | 73 ERR_CERT_NO_REVOCATION_MECHANISM = 12; |
53 ERR_CERT_NON_UNIQUE_NAME = 13; | 74 ERR_CERT_NON_UNIQUE_NAME = 13; |
54 }; | 75 }; |
55 | 76 |
56 // Certificate errors encountered (if any) when validating this | 77 // Certificate errors encountered (if any) when validating this |
57 // certificate chain. | 78 // certificate chain. |
58 repeated CertError cert_error = 6; | 79 repeated CertError cert_error = 6; |
| 80 |
| 81 // Information about the interstitial that was shown to the user for |
| 82 // this certificate error. |
| 83 optional CertLoggerInterstitialInfo interstitial_info = 7; |
59 }; | 84 }; |
OLD | NEW |