chromium/services/network/trust_tokens/proto/storage.proto

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";

package network;

option optimize_for = LITE_RUNTIME;

import "public.proto";

// A TrustTokenIssuerConfig message represents persistent state scoped
// to a single Trust Tokens issuer origin.
message TrustTokenIssuerConfig {
  // Any signed-but-unspent tokens received from the issuer.
  repeated TrustToken tokens = 3;
  // The time of the most recent issuance for this pair.
  optional Timestamp last_issuance = 4;
}

// A top-level domain’s config currently just stores
// the issuers with which the domain has associated itself.
message TrustTokenToplevelConfig {
  repeated string associated_issuers = 1;
}

// An TrustTokenIssuerToplevelPairConfig stores state scoped to
// (issuer origin, top-level page origin) pairs.
message TrustTokenIssuerToplevelPairConfig {
  // The time of the most recent redemption for this pair. Used for
  // rate-limiting and expiration.
  optional Timestamp last_redemption = 1;
  // The redemption record cached for this pair, if any.
  optional TrustTokenRedemptionRecord redemption_record = 2;
  // The time of the redemption before last for this pair. Used for
  // rate-limiting.
  optional Timestamp penultimate_redemption = 3;
}