// Copyright 2019 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // // Data structures related to Cast device certificate revocation infrastructure. // This proto must be kept in sync with google3. syntax = "proto2"; package cast.certificate; option optimize_for = LITE_RUNTIME; message CrlBundle { // List of supported versions of the same revocation list. repeated Crl crls = 1; } message Crl { // Octet string of serialized TbsCrl protobuf. optional bytes tbs_crl = 1; // Binary ASN.1 DER encoding of the signer's certificate. optional bytes signer_cert = 2; // Signature calculated over the contents of the tbs_crl field. Signature // algorithm is implied by TbsCrl.version. optional bytes signature = 3; } message TbsCrl { // Version 0 algorithms: // revoked_public_key_hashes: SHA-256 // SerialNumberRange.issuer_public_key_hash: SHA-256 // Crl.signature: RSA-PKCS1 V1.5 with SHA-256 optional uint64 version = 1 [default = 0]; // Inclusive validity range of the CRL in Unix time. optional uint64 not_before_seconds = 2; optional uint64 not_after_seconds = 3; // SPKI hashes of revoked credentials. Hashing algorithm is implied by // TbsCrl.version. repeated bytes revoked_public_key_hashes = 4; repeated SerialNumberRange revoked_serial_number_ranges = 5; } message SerialNumberRange { // SPKI hash of the certificate issuer. Hashing algorithm is implied by the // enclosing TbsCrl.version. optional bytes issuer_public_key_hash = 1; // Inclusive range of revoked certificate serial numbers. Only certificates // with positive serial numbers that fit within 64 bits can be revoked through // this mechanism. optional uint64 first_serial_number = 2; optional uint64 last_serial_number = 3; }