1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file contains protobuf messages for interacting with the Vault service
// OnePlatform API.
syntax = "proto3";
option java_multiple_files = true;
option java_package = "org.chromium.components.trusted_vault.proto";
option optimize_for = LITE_RUNTIME;
package trusted_vault_pb;
message AsymmetricKeyPair {
bytes public_key = 1;
bytes wrapped_private_key = 2;
bytes wrapping_key = 3;
}
message ApplicationKey {
string key_name = 1;
AsymmetricKeyPair asymmetric_key_pair = 4;
}
message VaultParameters {
bytes backend_public_key = 1;
bytes counter_id = 2;
int32 max_attempts = 3;
bytes vault_handle = 4;
}
message VaultMetadata {
// Lock screen type.
enum LskfType {
LSKF_TYPE_UNSPECIFIED = 0;
PIN = 1;
PASSWORD = 2;
}
LskfType lskf_type = 1;
enum HashType {
HASH_TYPE_UNSPECIFIED = 0;
SCRYPT = 3;
PBKDF2_AES256_1234 = 4;
SHA256_TOP_HALF = 5;
}
HashType hash_type = 4;
bytes hash_salt = 5;
int32 hash_difficulty = 6;
bytes cert_path = 7;
}
message ChromeOsMetadata {
bytes device_id = 1;
}
message Vault {
VaultParameters vault_parameters = 2;
// This contains a serialized VaultMetadata proto.
bytes vault_metadata = 3;
bytes recovery_key = 4;
repeated ApplicationKey application_keys = 5;
oneof platform_metadata {
ChromeOsMetadata chrome_os_metadata = 11;
}
}
enum UseCase {
USE_CASE_UNSPECIFIED = 0;
CHROME_DESKTOP_GPM_PIN_SYNC = 13;
}
// The response listing all the vaults belonging to the client.
message ListVaultsResponse {
// The vaults belonging to the client making the request.
// Note that the raw recovery and application key data, but not their metadata
// such as names and corresponding public keys, are removed from the response.
// The vaults are returned in the reverse order of their updating
// (ie, the first vault is the most recently updated vault).
// Since the updating time of a vault is considered in terms of its keys'
// enrollment, first come the vaults containing keys, the vaults without keys
// trailing the list.
repeated Vault vaults = 1;
// The token identifying the next page to be retrieved.
string next_page_token = 2;
}
|