Files
nearby/internal/proto/local_credential.proto
T
Janusz Sobczak aa95be4ff4 Add java options to proto files
PiperOrigin-RevId: 507900410
2023-02-07 15:24:30 -08:00

71 lines
2.3 KiB
Protocol Buffer

// 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 nearby.internal;
import "internal/proto/credential.proto";
// option cc_api_version = 2;
// option java_api_version = 2;
option java_multiple_files = true;
option java_package = "com.google.nearby.presence";
option java_outer_classname = "LocalCredentialProto";
// The local credential contains information of a local device for
// identity encryption and authentication. It should never leave the generating
// device.
message LocalCredential {
// Private encryption key descriptor.
// Usually, either `certificate_alias` or `key` is set.
message PrivateKey {
// The associated alias of a X509Certificate.
string certificate_alias = 1;
// The private key
bytes key = 2;
}
// The unique id of (and hashed based on) a pair of Secret Key and
// X509Certificate's public key.
bytes secret_id = 1;
// Bytes representation of an AES Key owned by local device, to encrypt
// local device metadata.
bytes key_seed = 2;
// The time in millis from epoch when this credential becomes effective.
int64 start_time_millis = 3;
// The time in millis from epoch when this credential expires.
int64 end_time_millis = 4;
// The 14 or 16 bytes aes key to encrypt metadata in PublicCredential.
bytes metadata_encryption_key = 5;
// It is used for signing advertisement.
PrivateKey advertisement_signing_key = 6;
// It is used for connection authentication.
// nit: Content not included in this doc yet, since irreverent to the OTA
// specs. will add more details for implementations later.
PrivateKey connection_signing_key = 7;
// The trust type assigned to the credential.
IdentityType identity_type = 8;
// The set of 2-byte salts already used to encrypt the metadata key.
map<uint32, bool> consumed_salts = 9;
}