| // 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; |
| } |