blob: a2bae6c5871c5248568c17a8409a1b5819bb9d63 [file] [edit]
// Copyright 2023 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
//
// https://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 privacy.ppn;
import "quiche/blind_sign_auth/proto/attestation.proto";
option java_multiple_files = true;
option java_package = "com.google.privacy.ppn.proto";
// Client is requesting to auth using the provided auth token.
// Next ID: 8
message AttestAndSignRequest {
// A string uniquely identifying the strategy this client should be
// authenticated with.
string service_type = 1;
// A set of blinded tokens to be signed by phosphor, passed as raw binary
// bytes.
repeated bytes blinded_tokens = 2;
privacy.ppn.AttestationData attestation = 3;
// Indicates which key to use for signing.
uint64 key_version = 4;
// Uses IETF privacy pass extensions spec for format.
bytes public_metadata_extensions = 5;
// Client-reported device manufacturer (e.g. "Google", "Samsung") for
// verification against the TEE-attested AttestationIDManufacturer.
// Only set when enable_id_attestation is true.
string client_manufacturer = 6;
// Indicates whether the client is requesting Device ID attestation
// verification. When true, the server will extract the manufacturer from the
// TEE attestation certificates and compare it with the client_manufacturer
// field.
//
// This is set to true by the client only when:
// 1. The client-side rollout flag is enabled.
// 2. The device hardware/StrongBox supports ID attestation.
// 3. The client is able to retrieve the client manufacturer name.
bool enable_id_attestation = 7;
}
message AttestAndSignResponse {
// A set of signatures corresponding by index to `blinded_tokens` in the
// request, as raw binary bytes.
repeated bytes blinded_token_signatures = 1;
}