proto/attestation_evidence.proto (44 lines of code) (raw):
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package stet.proto;
import "proto/attest.proto";
option go_package = "github.com/GoogleCloudPlatform/stet/proto/attestation_evidence_go_proto";
// All fields are optional. This proto message will be extended in the future as
// new types of evidence are supported.
message AttestationEvidence {
attest.Attestation attestation = 1;
}
// The types of evidence that may be presented in AttestationEvidence. These
// enumerated values are used to negotiate between the client and server. Each
// enumeration value corresponds with an optional field of the
// AttestationEvidence message.
enum AttestationEvidenceType {
UNKNOWN_EVIDENCE_TYPE = 0;
NULL_ATTESTATION = 1; // Indicates workload unable to produce attestation.
TPM2_QUOTE = 2; // AttestationEvidence.attestation.quotes
TCG_EVENT_LOG = 3; // AttestationEvidence.attestation.canonical_event_log
}
// The types of nonces that may be used to generate attestations. This exists to
// allow for servers and clients to negotiate what nonces they understand to
// facilitate a migration period for servers without breaking multi-EKM
// connections from the same client.
enum NonceType {
NONCE_TYPE_UNKNOWN = 0;
NONCE_EKM32 = 1; // uses 32-byte exported keying material (EKM)
}
message AttestationEvidenceTypeList {
repeated AttestationEvidenceType types = 1;
repeated NonceType nonce_types = 2;
}