OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 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 | 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 | 17 |
18 syntax = "proto2"; | 18 syntax = "proto2"; |
19 | 19 |
20 package chrome_browser_net; | 20 package chrome_browser_net; |
21 | 21 |
22 // Chrome requires this. | 22 // Chrome requires this. |
23 option optimize_for = LITE_RUNTIME; | 23 option optimize_for = LITE_RUNTIME; |
24 | 24 |
25 // Protocol types | 25 // Protocol types |
| 26 |
| 27 message InterstitialInfo { |
| 28 optional uint32 validation_result = 1; |
| 29 optional uint32 interstitial_reason = 2; |
| 30 optional bool user_proceeded = 3; |
| 31 optional bool overridable = 4; |
| 32 } |
| 33 |
26 message CertLoggerRequest { | 34 message CertLoggerRequest { |
27 // The hostname being accessed (required as the cert could be valid for | 35 // The hostname being accessed (required as the cert could be valid for |
28 // multiple hosts, e.g. a wildcard or a SubjectAltName. | 36 // multiple hosts, e.g. a wildcard or a SubjectAltName. |
29 required string hostname = 1; | 37 required string hostname = 1; |
30 // The certificate chain as a series of PEM-encoded certificates, including | 38 // The certificate chain as a series of PEM-encoded certificates, including |
31 // intermediates but not necessarily the root. | 39 // intermediates but not necessarily the root. |
32 required string cert_chain = 2; | 40 required string cert_chain = 2; |
33 // The time (in usec since the epoch) when the client attempted to access the | 41 // The time (in usec since the epoch) when the client attempted to access the |
34 // site generating the pinning error. | 42 // site generating the pinning error. |
35 required int64 time_usec = 3; | 43 required int64 time_usec = 3; |
36 // public_key_hash contains the string forms of the hashes calculated for | 44 // public_key_hash contains the string forms of the hashes calculated for |
37 // the chain. (I.e. "sha1/<base64 data>".) | 45 // the chain. (I.e. "sha1/<base64 data>".) |
38 repeated string public_key_hash = 4; | 46 repeated string public_key_hash = 4; |
39 // pin contains the string forms of the pins that were matched against for | 47 // pin contains the string forms of the pins that were matched against for |
40 // this host. | 48 // this host. |
41 repeated string pin = 5; | 49 repeated string pin = 5; |
| 50 |
| 51 optional InterstitialInfo interstitial_info = 6; |
42 }; | 52 }; |
43 | 53 |
44 // The response sent back to the user. | 54 // The response sent back to the user. |
45 message CertLoggerResponse { | 55 message CertLoggerResponse { |
46 enum ResponseCode { | 56 enum ResponseCode { |
47 OK = 1; | 57 OK = 1; |
48 MALFORMED_CERT_DATA = 2; | 58 MALFORMED_CERT_DATA = 2; |
49 HOST_CERT_DONT_MATCH = 3; | 59 HOST_CERT_DONT_MATCH = 3; |
50 ROOT_NOT_RECOGNIZED = 4; | 60 ROOT_NOT_RECOGNIZED = 4; |
51 ROOT_NOT_UNEXPECTED = 5; | 61 ROOT_NOT_UNEXPECTED = 5; |
52 OTHER_ERROR = 6; | 62 OTHER_ERROR = 6; |
53 }; | 63 }; |
54 required ResponseCode response = 1; | 64 required ResponseCode response = 1; |
55 }; | 65 }; |
56 | 66 |
OLD | NEW |