Home | History | Annotate | Download | only in net
      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 // This protobuffer is intended to store reports from Chrome users of
      6 // certificate pinning 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. The
     10 // report from the user will include the hostname being accessed, 
     11 // the full certificate chain (in PEM format), and the
     12 // timestamp of when the client tried to access the site. A response is
     13 // generated by the frontend and logged, including validation and error checking
     14 // done on the client's input data.
     15 
     16 
     17 syntax = "proto2";
     18 
     19 package chrome_browser_net;
     20 
     21 // Chrome requires this.
     22 option optimize_for = LITE_RUNTIME;
     23 
     24 // Protocol types
     25 message CertLoggerRequest {
     26   // The hostname being accessed (required as the cert could be valid for
     27   // multiple hosts, e.g. a wildcard or a SubjectAltName.
     28   required string hostname = 1;
     29   // The certificate chain as a series of PEM-encoded certificates, including
     30   // intermediates but not necessarily the root.
     31   required string cert_chain = 2;
     32   // The time (in usec since the epoch) when the client attempted to access the
     33   // site generating the pinning error.
     34   required int64 time_usec = 3;
     35 };
     36 
     37 // The response sent back to the user.
     38 message CertLoggerResponse {
     39   enum ResponseCode {
     40     OK = 1;
     41     MALFORMED_CERT_DATA = 2;
     42     HOST_CERT_DONT_MATCH = 3;
     43     ROOT_NOT_RECOGNIZED = 4;
     44     ROOT_NOT_UNEXPECTED = 5;
     45     OTHER_ERROR = 6;
     46   };
     47   required ResponseCode response = 1;
     48 };
     49 
     50