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.
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
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
9 // other pinning errors such as a blacklisted cert in the chain, or
10 // (when opted in) other certificate validation errors like an expired
11 // cert. The report from the user will include the hostname being accessed,
12 // the full certificate chain (in PEM format), and the
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
15 // done on the client's input data.
20 package chrome_browser_net;
22 // Chrome requires this.
23 option optimize_for = LITE_RUNTIME;
26 message CertLoggerRequest {
27 // The hostname being accessed (required as the cert could be valid for
28 // multiple hosts, e.g. a wildcard or a SubjectAltName.
29 required string hostname = 1;
30 // The certificate chain as a series of PEM-encoded certificates, including
31 // intermediates but not necessarily the root.
32 required string cert_chain = 2;
33 // The time (in usec since the epoch) when the client attempted to access the
34 // site generating the pinning error.
35 required int64 time_usec = 3;
36 // public_key_hash contains the string forms of the hashes calculated for
37 // the chain. (I.e. "sha1/<base64 data>".)
38 repeated string public_key_hash = 4;
39 // pin contains the string forms of the pins that were matched against for
41 repeated string pin = 5;
44 // The response sent back to the user.
45 message CertLoggerResponse {
48 MALFORMED_CERT_DATA = 2;
49 HOST_CERT_DONT_MATCH = 3;
50 ROOT_NOT_RECOGNIZED = 4;
51 ROOT_NOT_UNEXPECTED = 5;
54 required ResponseCode response = 1;