Rename PublicCredential to SharedCredential and PrivateCredential to LocalCredential

PiperOrigin-RevId: 503221477
This commit is contained in:
Anay Wadhera
2023-01-24 12:09:21 -08:00
committed by Copybara-Service
parent f4d85f9b90
commit c58b45eb50
24 changed files with 192 additions and 190 deletions
+4 -4
View File
@@ -20,8 +20,8 @@
namespace nearby {
using ::nearby::internal::PrivateCredential;
using ::nearby::internal::PublicCredential;
using ::nearby::internal::LocalCredential;
using ::nearby::internal::SharedCredential;
using ::nearby::presence::CredentialSelector;
using ::nearby::presence::GetPrivateCredentialsResultCallback;
using ::nearby::presence::GetPublicCredentialsResultCallback;
@@ -29,8 +29,8 @@ using ::nearby::presence::PublicCredentialType;
void CredentialStorageImpl::SaveCredentials(
absl::string_view manager_app_id, absl::string_view account_name,
const std::vector<PrivateCredential>& private_credentials,
const std::vector<PublicCredential>& public_credentials,
const std::vector<LocalCredential>& private_credentials,
const std::vector<SharedCredential>& public_credentials,
PublicCredentialType public_credential_type,
SaveCredentialsResultCallback callback) {
return impl_->SaveCredentials(manager_app_id, account_name,
+2 -2
View File
@@ -42,8 +42,8 @@ class CredentialStorageImpl : public api::CredentialStorage {
void SaveCredentials(
absl::string_view manager_app_id, absl::string_view account_name,
const std::vector<PrivateCredential>& private_credentials,
const std::vector<PublicCredential>& public_credentials,
const std::vector<LocalCredential>& private_credentials,
const std::vector<SharedCredential>& public_credentials,
PublicCredentialType public_credential_type,
SaveCredentialsResultCallback callback) override;
@@ -33,8 +33,8 @@ namespace nearby {
namespace {
using ::nearby::internal::IdentityType;
using ::nearby::internal::PrivateCredential;
using ::nearby::internal::PublicCredential;
using ::nearby::internal::LocalCredential;
using ::nearby::internal::SharedCredential;
using ::nearby::presence::CredentialSelector;
using ::nearby::presence::GetPrivateCredentialsResultCallback;
using ::nearby::presence::GetPublicCredentialsResultCallback;
@@ -49,24 +49,24 @@ constexpr absl::string_view kManagerAppId = "manager app id";
constexpr absl::string_view kAccountName = "test_account";
// `secret_id` is used to create credentials with different content.
PrivateCredential CreatePrivateCredential(absl::string_view secret_id,
LocalCredential CreatePrivateCredential(absl::string_view secret_id,
IdentityType identity_type) {
PrivateCredential private_credential;
LocalCredential private_credential;
private_credential.set_secret_id(secret_id);
private_credential.set_identity_type(identity_type);
return private_credential;
}
PublicCredential CreatePublicCredential(absl::string_view secret_id,
SharedCredential CreatePublicCredential(absl::string_view secret_id,
IdentityType identity_type) {
PublicCredential public_credential;
SharedCredential public_credential;
public_credential.set_secret_id(secret_id);
public_credential.set_identity_type(identity_type);
return public_credential;
}
std::vector<PrivateCredential> BuildPrivateCreds(absl::string_view secret_id) {
std::vector<PrivateCredential> private_credentials = {
std::vector<LocalCredential> BuildPrivateCreds(absl::string_view secret_id) {
std::vector<LocalCredential> private_credentials = {
CreatePrivateCredential(secret_id, IdentityType::IDENTITY_TYPE_PRIVATE),
CreatePrivateCredential(secret_id, IdentityType::IDENTITY_TYPE_TRUSTED),
CreatePrivateCredential(secret_id,
@@ -74,8 +74,8 @@ std::vector<PrivateCredential> BuildPrivateCreds(absl::string_view secret_id) {
return private_credentials;
}
std::vector<PublicCredential> BuildPublicCreds(absl::string_view secret_id) {
std::vector<PublicCredential> public_credentials = {
std::vector<SharedCredential> BuildPublicCreds(absl::string_view secret_id) {
std::vector<SharedCredential> public_credentials = {
CreatePublicCredential(secret_id, IdentityType::IDENTITY_TYPE_PRIVATE),
CreatePublicCredential(secret_id, IdentityType::IDENTITY_TYPE_TRUSTED),
CreatePublicCredential(secret_id,
@@ -83,25 +83,25 @@ std::vector<PublicCredential> BuildPublicCreds(absl::string_view secret_id) {
return public_credentials;
}
absl::StatusOr<std::vector<PrivateCredential>> GetPrivateCredentials(
absl::StatusOr<std::vector<LocalCredential>> GetPrivateCredentials(
CredentialStorageImpl& credential_storage, IdentityType identity_type,
absl::string_view manager_app_id = kManagerAppId,
absl::string_view account_name = kAccountName) {
CredentialSelector selector = {.manager_app_id = std::string(manager_app_id),
.account_name = std::string(account_name),
.identity_type = identity_type};
absl::StatusOr<std::vector<PrivateCredential>> private_credentials;
absl::StatusOr<std::vector<LocalCredential>> private_credentials;
credential_storage.GetPrivateCredentials(
selector,
GetPrivateCredentialsResultCallback{
.credentials_fetched_cb =
[&](absl::StatusOr<std::vector<PrivateCredential>> credentials) {
[&](absl::StatusOr<std::vector<LocalCredential>> credentials) {
private_credentials = std::move(credentials);
}});
return private_credentials;
}
absl::StatusOr<std::vector<PublicCredential>> GetPublicCredentials(
absl::StatusOr<std::vector<SharedCredential>> GetPublicCredentials(
CredentialStorageImpl& credential_storage, IdentityType identity_type,
PublicCredentialType credential_type,
absl::string_view manager_app_id = kManagerAppId,
@@ -109,12 +109,12 @@ absl::StatusOr<std::vector<PublicCredential>> GetPublicCredentials(
CredentialSelector selector = {.manager_app_id = std::string(manager_app_id),
.account_name = std::string(account_name),
.identity_type = identity_type};
absl::StatusOr<std::vector<PublicCredential>> public_credentials;
absl::StatusOr<std::vector<SharedCredential>> public_credentials;
credential_storage.GetPublicCredentials(
selector, credential_type,
GetPublicCredentialsResultCallback{
.credentials_fetched_cb =
[&](absl::StatusOr<std::vector<PublicCredential>> credentials) {
[&](absl::StatusOr<std::vector<SharedCredential>> credentials) {
public_credentials = std::move(credentials);
}});
return public_credentials;
@@ -123,8 +123,8 @@ absl::StatusOr<std::vector<PublicCredential>> GetPublicCredentials(
absl::Status SaveCredentials(CredentialStorageImpl& credential_storage,
absl::string_view manager_app_id,
absl::string_view account_name,
std::vector<PrivateCredential> private_credentials,
std::vector<PublicCredential> public_credentials,
std::vector<LocalCredential> private_credentials,
std::vector<SharedCredential> public_credentials,
PublicCredentialType public_credential_type) {
absl::Status save_status = absl::UnknownError("");
@@ -139,8 +139,8 @@ absl::Status SaveCredentials(CredentialStorageImpl& credential_storage,
}
absl::Status SaveCredentials(CredentialStorageImpl& credential_storage,
std::vector<PrivateCredential> private_credentials,
std::vector<PublicCredential> public_credentials) {
std::vector<LocalCredential> private_credentials,
std::vector<SharedCredential> public_credentials) {
return SaveCredentials(credential_storage, kManagerAppId, kAccountName,
private_credentials, public_credentials,
PublicCredentialType::kLocalPublicCredential);
@@ -150,7 +150,7 @@ absl::Status SavePrivateCredentials(CredentialStorageImpl& credential_storage,
absl::string_view secret_id) {
return SaveCredentials(credential_storage, kManagerAppId, kAccountName,
BuildPrivateCreds(secret_id),
std::vector<PublicCredential>(),
std::vector<SharedCredential>(),
PublicCredentialType::kLocalPublicCredential);
}
@@ -158,14 +158,14 @@ absl::Status SavePublicCredentials(CredentialStorageImpl& credential_storage,
PublicCredentialType credential_type,
absl::string_view secret_id) {
return SaveCredentials(credential_storage, kManagerAppId, kAccountName,
std::vector<PrivateCredential>(),
std::vector<LocalCredential>(),
BuildPublicCreds(secret_id), credential_type);
}
TEST(CredentialStorageImplTest, SaveAndGetPrivateCredentials) {
std::vector<PrivateCredential> default_private_creds =
std::vector<LocalCredential> default_private_creds =
BuildPrivateCreds(kSecretId);
std::vector<PublicCredential> empty_public_creds;
std::vector<SharedCredential> empty_public_creds;
CredentialStorageImpl credential_storage;
absl::Status save_status = absl::UnknownError("");
@@ -201,8 +201,8 @@ TEST(CredentialStorageImplTest, ReplaceAndGetPrivateCredentials) {
}
TEST(CredentialStorageImplTest, SaveAndGetLocalPublicCredentials) {
std::vector<PrivateCredential> empty_private_creds;
std::vector<PublicCredential> public_creds = BuildPublicCreds(kSecretId);
std::vector<LocalCredential> empty_private_creds;
std::vector<SharedCredential> public_creds = BuildPublicCreds(kSecretId);
CredentialStorageImpl credential_storage;
absl::Status save_status = absl::UnknownError("");
@@ -244,8 +244,8 @@ TEST(CredentialStorageImplTest, ReplaceAndGetLocalPublicCredentials) {
}
TEST(CredentialStorageImplTest, SaveAndGetRemotePublicCredentials) {
std::vector<PrivateCredential> empty_private_creds;
std::vector<PublicCredential> public_creds = BuildPublicCreds(kSecretId);
std::vector<LocalCredential> empty_private_creds;
std::vector<SharedCredential> public_creds = BuildPublicCreds(kSecretId);
CredentialStorageImpl credential_storage;
absl::Status save_status = absl::UnknownError("");
@@ -287,8 +287,8 @@ TEST(CredentialStorageImplTest, ReplaceAndGetRemotePublicCredentials) {
}
TEST(CredentialStorageImplTest, SavePrivateAndLocalPublicCredentials) {
std::vector<PrivateCredential> private_creds = BuildPrivateCreds(kSecretId);
std::vector<PublicCredential> public_creds = BuildPublicCreds(kSecretId);
std::vector<LocalCredential> private_creds = BuildPrivateCreds(kSecretId);
std::vector<SharedCredential> public_creds = BuildPublicCreds(kSecretId);
CredentialStorageImpl credential_storage;
absl::Status status =
@@ -309,8 +309,8 @@ TEST(CredentialStorageImplTest, SavePrivateAndLocalPublicCredentials) {
}
TEST(CredentialStorageImplTest, SaveCredentialsFailsWhenNoCredentials) {
std::vector<PrivateCredential> empty_private_creds;
std::vector<PublicCredential> empty_public_creds;
std::vector<LocalCredential> empty_private_creds;
std::vector<SharedCredential> empty_public_creds;
CredentialStorageImpl credential_storage;
absl::Status save_status = absl::UnknownError("");
@@ -415,7 +415,7 @@ TEST_P(IdentityFilterTest, FilterPrivateCredentialsByIdentityType) {
EXPECT_THAT(
*private_credentials,
UnorderedPointwise(EqualsProto(),
std::vector<PrivateCredential>{CreatePrivateCredential(
std::vector<LocalCredential>{CreatePrivateCredential(
kSecretId, identity_type)}));
}
@@ -426,7 +426,7 @@ TEST_P(IdentityFilterTest,
IdentityType other_type = identity_type == IdentityType::IDENTITY_TYPE_PRIVATE
? IdentityType::IDENTITY_TYPE_TRUSTED
: IdentityType::IDENTITY_TYPE_PRIVATE;
std::vector<PrivateCredential> private_creds = {
std::vector<LocalCredential> private_creds = {
CreatePrivateCredential(kSecretId, other_type)};
CredentialStorageImpl credential_storage;
EXPECT_OK(SaveCredentials(credential_storage, private_creds,
@@ -452,7 +452,7 @@ TEST_P(IdentityFilterTest, FilterPublicCredentialsByIdentityType) {
EXPECT_THAT(
*public_credentials,
UnorderedPointwise(EqualsProto(),
std::vector<PublicCredential>{CreatePublicCredential(
std::vector<SharedCredential>{CreatePublicCredential(
kSecretId, identity_type)}));
}
@@ -462,7 +462,7 @@ TEST_P(IdentityFilterTest, FilterPublicCredentialsFailsWhenNoCredentialsMatch) {
IdentityType other_type = identity_type == IdentityType::IDENTITY_TYPE_PRIVATE
? IdentityType::IDENTITY_TYPE_TRUSTED
: IdentityType::IDENTITY_TYPE_PRIVATE;
std::vector<PublicCredential> public_creds = {
std::vector<SharedCredential> public_creds = {
CreatePublicCredential(kSecretId, other_type)};
CredentialStorageImpl credential_storage;
EXPECT_OK(SaveCredentials(credential_storage, BuildPrivateCreds(kSecretId),
@@ -66,7 +66,7 @@ struct SaveCredentialsResultCallback {
struct GenerateCredentialsResultCallback {
absl::AnyInvocable<void(
absl::StatusOr<std::vector<nearby::internal::PublicCredential>>)>
absl::StatusOr<std::vector<nearby::internal::SharedCredential>>)>
credentials_generated_cb;
};
@@ -76,13 +76,13 @@ struct UpdateRemotePublicCredentialsCallback {
struct GetPrivateCredentialsResultCallback {
absl::AnyInvocable<void(
absl::StatusOr<std::vector<nearby::internal::PrivateCredential>>)>
absl::StatusOr<std::vector<nearby::internal::LocalCredential>>)>
credentials_fetched_cb;
};
struct GetPublicCredentialsResultCallback {
absl::AnyInvocable<void(
absl::StatusOr<std::vector<nearby::internal::PublicCredential>>)>
absl::StatusOr<std::vector<nearby::internal::SharedCredential>>)>
credentials_fetched_cb;
};
@@ -28,8 +28,8 @@ namespace api {
// Credential Storage interface
class CredentialStorage {
public:
using PrivateCredential = ::nearby::internal::PrivateCredential;
using PublicCredential = ::nearby::internal::PublicCredential;
using LocalCredential = ::nearby::internal::LocalCredential;
using SharedCredential = ::nearby::internal::SharedCredential;
using PublicCredentialType = ::nearby::presence::PublicCredentialType;
using SaveCredentialsResultCallback =
::nearby::presence::SaveCredentialsResultCallback;
@@ -55,8 +55,8 @@ class CredentialStorage {
// which is used for querying credentials.
virtual void SaveCredentials(
absl::string_view manager_app_id, absl::string_view account_name,
const std::vector<PrivateCredential>& private_credentials,
const std::vector<PublicCredential>& public_credentials,
const std::vector<LocalCredential>& Local_credentials,
const std::vector<SharedCredential>& Shared_credentials,
PublicCredentialType public_credential_type,
SaveCredentialsResultCallback callback) = 0;
@@ -52,8 +52,8 @@ void FilterIdentityType(std::vector<Credential>& credentials,
void CredentialStorageImpl::SaveCredentials(
absl::string_view manager_app_id, absl::string_view account_name,
const std::vector<PrivateCredential>& private_credentials,
const std::vector<PublicCredential>& public_credentials,
const std::vector<LocalCredential>& private_credentials,
const std::vector<SharedCredential>& public_credentials,
PublicCredentialType public_credential_type,
SaveCredentialsResultCallback callback) {
if (private_credentials.empty() && public_credentials.empty()) {
@@ -117,7 +117,7 @@ void CredentialStorageImpl::GetPrivateCredentials(
absl::StrFormat("No private credentials for %v", credential_selector)));
return;
}
std::vector<PrivateCredential> private_credentials =
std::vector<LocalCredential> private_credentials =
private_credentials_map_[key];
FilterIdentityType(private_credentials, credential_selector.identity_type);
if (private_credentials.empty()) {
@@ -145,7 +145,7 @@ void CredentialStorageImpl::GetPublicCredentials(
absl::StrFormat("No public credentials for %v", credential_selector)));
return;
}
std::vector<PublicCredential> public_credentials =
std::vector<SharedCredential> public_credentials =
public_credentials_map_[key];
FilterIdentityType(public_credentials, credential_selector.identity_type);
if (public_credentials.empty()) {
@@ -38,8 +38,8 @@ namespace g3 {
*/
class CredentialStorageImpl : public api::CredentialStorage {
public:
using PrivateCredential = ::nearby::internal::PrivateCredential;
using PublicCredential = ::nearby::internal::PublicCredential;
using LocalCredential = ::nearby::internal::LocalCredential;
using SharedCredential = ::nearby::internal::SharedCredential;
using PublicCredentialType = ::nearby::presence::PublicCredentialType;
using PrivateCredentialKey = std::pair<std::string, std::string>;
using PublicCredentialKey =
@@ -51,8 +51,8 @@ class CredentialStorageImpl : public api::CredentialStorage {
// Used to save private and public credentials.
void SaveCredentials(
absl::string_view manager_app_id, absl::string_view account_name,
const std::vector<PrivateCredential>& private_credentials,
const std::vector<PublicCredential>& public_credentials,
const std::vector<LocalCredential>& private_credentials,
const std::vector<SharedCredential>& public_credentials,
PublicCredentialType public_credential_type,
SaveCredentialsResultCallback callback) override;
@@ -79,9 +79,9 @@ class CredentialStorageImpl : public api::CredentialStorage {
return std::make_tuple(std::string(manager_app_id),
std::string(account_name), credential_type);
}
absl::flat_hash_map<PrivateCredentialKey, std::vector<PrivateCredential>>
absl::flat_hash_map<PrivateCredentialKey, std::vector<LocalCredential>>
private_credentials_map_;
absl::flat_hash_map<PublicCredentialKey, std::vector<PublicCredential>>
absl::flat_hash_map<PublicCredentialKey, std::vector<SharedCredential>>
public_credentials_map_;
absl::Mutex private_mutex_;
absl::Mutex public_mutex_;
+4 -4
View File
@@ -15,12 +15,12 @@ enum IdentityType {
}
// A proto to store the local device's private credential.
message PrivateCredential {
message LocalCredential {
optional IdentityType identity_type = 1;
// The unique id of (and hashed based on) a pair of secret
// key (PrivateCredential.verification_key) and X509Certificate's public
// key (PublicCredential.verification_key).
// key (LocalCredential.verification_key) and X509Certificate's public
// key (SharedCredential.verification_key).
optional bytes secret_id = 2;
// The aes key to encrypt personal fields in public certificates.
@@ -48,7 +48,7 @@ message PrivateCredential {
optional DeviceMetadata device_metadata = 9;
}
message PublicCredential {
message SharedCredential {
optional IdentityType identity_type = 1;
// The unique id of (and hashed based on) a pair of secret
+16 -16
View File
@@ -25,21 +25,21 @@ namespace nearby {
namespace presence {
namespace {
using ::nearby::internal::DeviceMetadata;
using ::nearby::internal::PrivateCredential;
using ::nearby::internal::PublicCredential;
using ::nearby::internal::LocalCredential;
using ::nearby::internal::SharedCredential;
using ::nearby::internal::IdentityType::IDENTITY_TYPE_PROVISIONED;
using ::nearby::internal::IdentityType::IDENTITY_TYPE_PUBLIC;
using ::protobuf_matchers::EqualsProto;
TEST(CredentialsTest, NoDefaultConstructor) {
EXPECT_FALSE(std::is_trivially_constructible<PrivateCredential>::value);
EXPECT_FALSE(std::is_trivially_constructible<PublicCredential>::value);
EXPECT_FALSE(std::is_trivially_constructible<LocalCredential>::value);
EXPECT_FALSE(std::is_trivially_constructible<SharedCredential>::value);
}
TEST(CredentialsTest, InitPublicCredential) {
PublicCredential pc1 = {};
PublicCredential pc2 = {};
TEST(CredentialsTest, InitSharedCredential) {
SharedCredential pc1 = {};
SharedCredential pc2 = {};
EXPECT_THAT(pc1, EqualsProto(pc2));
pc1.set_identity_type(IDENTITY_TYPE_PUBLIC);
EXPECT_THAT(pc1, ::testing::Not(EqualsProto(pc2)));
@@ -47,9 +47,9 @@ TEST(CredentialsTest, InitPublicCredential) {
EXPECT_THAT(pc1, EqualsProto(pc2));
}
TEST(CredentialsTest, InitPrivateCredential) {
PrivateCredential pc1 = {};
PrivateCredential pc2 = {};
TEST(CredentialsTest, InitLocalCredential) {
LocalCredential pc1 = {};
LocalCredential pc2 = {};
EXPECT_THAT(pc1, EqualsProto(pc2));
pc1.set_identity_type(IDENTITY_TYPE_PUBLIC);
EXPECT_THAT(pc1, ::testing::Not(EqualsProto(pc2)));
@@ -57,24 +57,24 @@ TEST(CredentialsTest, InitPrivateCredential) {
EXPECT_THAT(pc1, EqualsProto(pc2));
}
TEST(CredentialsTest, CopyPrivateCredential) {
PrivateCredential pc1 = {};
TEST(CredentialsTest, CopyLocalCredential) {
LocalCredential pc1 = {};
pc1.set_identity_type(IDENTITY_TYPE_PROVISIONED);
auto salts = pc1.mutable_consumed_salts();
salts->insert(std::pair<int32, bool>(15, true));
pc1.mutable_device_metadata()->set_device_name("Android Phone");
pc1.mutable_device_metadata()->set_device_type(DeviceMetadata::PHONE);
PrivateCredential pc1_copy = {pc1};
LocalCredential pc1_copy = {pc1};
EXPECT_THAT(pc1, EqualsProto(pc1_copy));
}
TEST(CredentialsTest, CopyPublicCredential) {
PublicCredential pc1 = {};
TEST(CredentialsTest, CopySharedCredential) {
SharedCredential pc1 = {};
pc1.set_identity_type(IDENTITY_TYPE_PROVISIONED);
for (const uint8_t byte : nearby::Uuid().data()) {
pc1.mutable_secret_id()->push_back(byte);
}
PublicCredential pc1_copy = {pc1};
SharedCredential pc1_copy = {pc1};
EXPECT_THAT(pc1, EqualsProto(pc1_copy));
}
} // namespace
@@ -212,7 +212,7 @@ void AdvertisementDecoder::DecodeBaseTxAndAction(
}
absl::StatusOr<std::string> AdvertisementDecoder::DecryptLdt(
const std::vector<internal::PublicCredential>& credentials,
const std::vector<internal::SharedCredential>& credentials,
absl::string_view salt, absl::string_view data_elements) {
if (credentials.empty()) {
return absl::UnavailableError("No credentials");
@@ -278,7 +278,7 @@ absl::StatusOr<std::string> AdvertisementDecoder::Decrypt(
if (!absl::holds_alternative<LegacyPresenceScanFilter>(scan_filter)) {
continue;
}
const std::vector<nearby::internal::PublicCredential>& credentials =
const std::vector<nearby::internal::SharedCredential>& credentials =
absl::get<LegacyPresenceScanFilter>(scan_filter)
.remote_public_credentials;
if (credentials.empty()) {
@@ -33,7 +33,7 @@ namespace presence {
struct Advertisement {
uint8_t version = 0;
std::vector<DataElement> data_elements;
absl::StatusOr<internal::PublicCredential> public_credential =
absl::StatusOr<internal::SharedCredential> public_credential =
absl::NotFoundError("");
internal::IdentityType identity_type = internal::IDENTITY_TYPE_UNSPECIFIED;
std::string metadata_key;
@@ -45,7 +45,7 @@ class AdvertisementDecoder {
AdvertisementDecoder(
ScanRequest scan_request,
absl::flat_hash_map<internal::IdentityType,
std::vector<internal::PublicCredential>>* credentials)
std::vector<internal::SharedCredential>>* credentials)
: scan_request_(scan_request), credentials_(credentials) {
AddBannedDataTypes();
}
@@ -76,7 +76,7 @@ class AdvertisementDecoder {
absl::string_view encrypted);
void DecodeBaseTxAndAction(absl::string_view serialized_action);
absl::StatusOr<std::string> DecryptLdt(
const std::vector<internal::PublicCredential>& credentials,
const std::vector<internal::SharedCredential>& credentials,
absl::string_view salt, absl::string_view data_elements);
void AddBannedDataTypes();
bool MatchesScanFilter(const std::vector<DataElement>& data_elements,
@@ -86,7 +86,7 @@ class AdvertisementDecoder {
ScanRequest scan_request_;
absl::flat_hash_map<internal::IdentityType,
std::vector<internal::PublicCredential>>* credentials_ =
std::vector<internal::SharedCredential>>* credentials_ =
nullptr;
absl::flat_hash_set<int> banned_data_types_;
Advertisement decoded_advertisement_;
@@ -35,7 +35,7 @@ namespace presence {
namespace {
using ::nearby::ByteArray; // NOLINT
using ::nearby::internal::PublicCredential; // NOLINT
using ::nearby::internal::SharedCredential; // NOLINT
using ::testing::ElementsAre;
using ::protobuf_matchers::EqualsProto;
using ::testing::Matcher;
@@ -55,7 +55,7 @@ ScanRequest GetScanRequest() {
}
#if USE_RUST_LDT == 1
ScanRequest GetScanRequest(std::vector<PublicCredential> credentials) {
ScanRequest GetScanRequest(std::vector<SharedCredential> credentials) {
LegacyPresenceScanFilter scan_filter = {.remote_public_credentials =
credentials};
return ScanRequestBuilder()
@@ -68,7 +68,7 @@ ScanRequest GetScanRequest(std::vector<PublicCredential> credentials) {
.Build();
}
PublicCredential GetPublicCredential() {
SharedCredential GetPublicCredential() {
// Values copied from LDT tests
ByteArray seed({204, 219, 36, 137, 233, 252, 172, 66, 179, 147, 72,
184, 148, 30, 209, 154, 29, 54, 14, 117, 224, 152,
@@ -76,7 +76,7 @@ PublicCredential GetPublicCredential() {
ByteArray known_mac({223, 185, 10, 31, 155, 31, 226, 141, 24, 187, 204,
165, 34, 64, 181, 204, 44, 203, 95, 141, 82, 137,
163, 203, 100, 235, 53, 65, 202, 97, 75, 180});
PublicCredential public_credential;
SharedCredential public_credential;
public_credential.set_authenticity_key(seed.AsStringView());
public_credential.set_metadata_encryption_key_tag(known_mac.AsStringView());
return public_credential;
@@ -87,7 +87,7 @@ TEST(AdvertisementDecoder, DecodeBaseNpPrivateAdvertisement) {
ByteArray metadata_key(
{205, 104, 63, 225, 161, 209, 248, 70, 84, 61, 10, 19, 212, 174});
absl::flat_hash_map<internal::IdentityType,
std::vector<internal::PublicCredential>>
std::vector<internal::SharedCredential>>
credentials;
credentials[internal::IDENTITY_TYPE_PRIVATE].push_back(GetPublicCredential());
AdvertisementDecoder decoder(GetScanRequest(), &credentials);
@@ -111,7 +111,7 @@ TEST(AdvertisementDecoder,
const std::string salt = "AB";
ByteArray metadata_key(
{205, 104, 63, 225, 161, 209, 248, 70, 84, 61, 10, 19, 212, 174});
std::vector<PublicCredential> credentials = {GetPublicCredential()};
std::vector<SharedCredential> credentials = {GetPublicCredential()};
AdvertisementDecoder decoder(GetScanRequest(credentials));
@@ -134,7 +134,7 @@ TEST(AdvertisementDecoder, DecodeBaseNpTrustedAdvertisement) {
ByteArray metadata_key(
{205, 104, 63, 225, 161, 209, 248, 70, 84, 61, 10, 19, 212, 174});
absl::flat_hash_map<internal::IdentityType,
std::vector<internal::PublicCredential>>
std::vector<internal::SharedCredential>>
credentials;
credentials[internal::IDENTITY_TYPE_TRUSTED].push_back(GetPublicCredential());
AdvertisementDecoder decoder(GetScanRequest(), &credentials);
@@ -161,7 +161,7 @@ TEST(AdvertisementDecoder, DecodeBaseNpProvisionedAdvertisement) {
ByteArray metadata_key(
{205, 104, 63, 225, 161, 209, 248, 70, 84, 61, 10, 19, 212, 174});
absl::flat_hash_map<internal::IdentityType,
std::vector<internal::PublicCredential>>
std::vector<internal::SharedCredential>>
credentials;
credentials[internal::IDENTITY_TYPE_PROVISIONED].push_back(
GetPublicCredential());
@@ -189,7 +189,7 @@ TEST(AdvertisementDecoder, InvalidEncryptedContent) {
ByteArray metadata_key(
{205, 104, 63, 225, 161, 209, 248, 70, 84, 61, 10, 19, 212, 174});
absl::flat_hash_map<internal::IdentityType,
std::vector<internal::PublicCredential>>
std::vector<internal::SharedCredential>>
credentials;
credentials[internal::IDENTITY_TYPE_PRIVATE].push_back(GetPublicCredential());
AdvertisementDecoder decoder(GetScanRequest(), &credentials);
@@ -96,7 +96,7 @@ std::string SerializeAction(const Action& action) {
absl::StatusOr<AdvertisementData> AdvertisementFactory::CreateAdvertisement(
const BaseBroadcastRequest& request,
std::vector<PrivateCredential>& credentials) const {
std::vector<LocalCredential>& credentials) const {
AdvertisementData advert = {};
if (absl::holds_alternative<BaseBroadcastRequest::BasePresence>(
request.variant)) {
@@ -108,7 +108,7 @@ absl::StatusOr<AdvertisementData> AdvertisementFactory::CreateAdvertisement(
absl::StatusOr<AdvertisementData>
AdvertisementFactory::CreateBaseNpAdvertisement(
const BaseBroadcastRequest& request,
std::vector<PrivateCredential>& credentials) const {
std::vector<LocalCredential>& credentials) const {
const auto& presence =
absl::get<BaseBroadcastRequest::BasePresence>(request.variant);
std::string payload;
@@ -181,9 +181,9 @@ AdvertisementFactory::CreateBaseNpAdvertisement(
.content = payload};
}
absl::StatusOr<std::string> AdvertisementFactory::EncryptDataElements(
std::vector<PrivateCredential>& credentials, absl::string_view salt,
std::vector<LocalCredential>& credentials, absl::string_view salt,
absl::string_view data_elements) const {
PrivateCredential& credential = credentials.front();
LocalCredential& credential = credentials.front();
if (credential.metadata_encryption_key().size() != kBaseMetadataSize) {
return absl::FailedPreconditionError(absl::StrFormat(
"Metadata key size %d, expected %d",
@@ -29,7 +29,7 @@ namespace presence {
// Builds BLE advertisements from broadcast requests.
class AdvertisementFactory {
public:
using PrivateCredential = internal::PrivateCredential;
using LocalCredential = internal::LocalCredential;
// Returns a `CredentialSelector` if credentials are required to create an
// advertisement from the `request`.
@@ -39,20 +39,20 @@ class AdvertisementFactory {
// Returns a BLE advertisement for given `request.
absl::StatusOr<AdvertisementData> CreateAdvertisement(
const BaseBroadcastRequest& request,
std::vector<PrivateCredential>& credentials) const;
std::vector<LocalCredential>& credentials) const;
absl::StatusOr<AdvertisementData> CreateAdvertisement(
const BaseBroadcastRequest& request) const {
std::vector<PrivateCredential> empty;
std::vector<LocalCredential> empty;
return CreateAdvertisement(request, empty);
}
private:
absl::StatusOr<AdvertisementData> CreateBaseNpAdvertisement(
const BaseBroadcastRequest& request,
std::vector<PrivateCredential>& credentials) const;
std::vector<LocalCredential>& credentials) const;
absl::StatusOr<std::string> EncryptDataElements(
std::vector<PrivateCredential>& credentials, absl::string_view salt,
std::vector<LocalCredential>& credentials, absl::string_view salt,
absl::string_view data_elements) const;
};
@@ -35,13 +35,13 @@ namespace {
using ::nearby::ByteArray; // NOLINT
using ::nearby::internal::IdentityType;
using ::nearby::internal::PrivateCredential; // NOLINT
using ::nearby::internal::LocalCredential; // NOLINT
using ::testing::NiceMock;
using ::testing::Return;
using ::testing::status::StatusIs;
#if USE_RUST_LDT == 1
PrivateCredential CreatePrivateCredential(IdentityType identity_type) {
LocalCredential CreatePrivateCredential(IdentityType identity_type) {
// Values copied from LDT tests
ByteArray seed({204, 219, 36, 137, 233, 252, 172, 66, 179, 147, 72,
184, 148, 30, 209, 154, 29, 54, 14, 117, 224, 152,
@@ -49,7 +49,7 @@ PrivateCredential CreatePrivateCredential(IdentityType identity_type) {
ByteArray metadata_key(
{205, 104, 63, 225, 161, 209, 248, 70, 84, 61, 10, 19, 212, 174});
PrivateCredential private_credential;
LocalCredential private_credential;
private_credential.set_identity_type(identity_type);
private_credential.set_authenticity_key(seed.AsStringView());
private_credential.set_metadata_encryption_key(metadata_key.AsStringView());
@@ -60,7 +60,7 @@ TEST(AdvertisementFactory, CreateAdvertisementFromPrivateIdentity) {
std::string account_name = "Test account";
std::string salt = "AB";
constexpr IdentityType kIdentity = IdentityType::IDENTITY_TYPE_PRIVATE;
std::vector<PrivateCredential> credentials = {
std::vector<LocalCredential> credentials = {
CreatePrivateCredential(kIdentity)};
std::vector<DataElement> data_elements;
data_elements.emplace_back(DataElement(ActionBit::kActiveUnlockAction));
@@ -85,7 +85,7 @@ TEST(AdvertisementFactory, CreateAdvertisementFromTrustedIdentity) {
std::string account_name = "Test account";
std::string salt = "AB";
constexpr IdentityType kIdentity = IdentityType::IDENTITY_TYPE_TRUSTED;
std::vector<PrivateCredential> credentials = {
std::vector<LocalCredential> credentials = {
CreatePrivateCredential(kIdentity)};
std::vector<DataElement> data_elements;
data_elements.emplace_back(DataElement(ActionBit::kActiveUnlockAction));
@@ -111,7 +111,7 @@ TEST(AdvertisementFactory, CreateAdvertisementFromProvisionedIdentity) {
std::string account_name = "Test account";
std::string salt = "AB";
constexpr IdentityType kIdentity = IdentityType::IDENTITY_TYPE_PROVISIONED;
std::vector<PrivateCredential> credentials = {
std::vector<LocalCredential> credentials = {
CreatePrivateCredential(kIdentity)};
std::vector<DataElement> data_elements;
data_elements.emplace_back(DataElement(ActionBit::kActiveUnlockAction));
+2 -2
View File
@@ -69,7 +69,7 @@ void BroadcastManager::FetchCredentials(
.credentials_fetched_cb =
[this, id, broadcast_request = std::move(broadcast_request)](
absl::StatusOr<
std::vector<::nearby::internal::PrivateCredential>>
std::vector<::nearby::internal::LocalCredential>>
credentials) {
if (!credentials.ok()) {
NEARBY_LOGS(WARNING)
@@ -90,7 +90,7 @@ void BroadcastManager::FetchCredentials(
void BroadcastManager::Advertise(BroadcastSessionId id,
BaseBroadcastRequest broadcast_request,
std::vector<PrivateCredential> credentials) {
std::vector<LocalCredential> credentials) {
auto it = sessions_.find(id);
if (it == sessions_.end()) {
NEARBY_LOGS(INFO) << "Broadcast session terminated, id: " << id;
+2 -2
View File
@@ -42,7 +42,7 @@ class BroadcastManager {
using AdvertisingSession =
::nearby::api::ble_v2::BleMedium::AdvertisingSession;
using Runnable = ::nearby::Runnable;
using PrivateCredential = internal::PrivateCredential;
using LocalCredential = internal::LocalCredential;
BroadcastManager(Mediums& mediums, CredentialManager& credential_manager,
SingleThreadExecutor& executor) {
mediums_ = &mediums, credential_manager_ = &credential_manager,
@@ -85,7 +85,7 @@ class BroadcastManager {
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*executor_);
void Advertise(BroadcastSessionId id, BaseBroadcastRequest broadcast_request,
std::vector<PrivateCredential> credentials)
std::vector<LocalCredential> credentials)
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*executor_);
absl::flat_hash_map<BroadcastSessionId, BroadcastSessionState> sessions_
ABSL_GUARDED_BY(*executor_);
+1 -1
View File
@@ -55,7 +55,7 @@ class CredentialManager {
// Update remote public credentials.
virtual void UpdateRemotePublicCredentials(
absl::string_view manager_app_id, absl::string_view account_name,
const std::vector<nearby::internal::PublicCredential>&
const std::vector<nearby::internal::SharedCredential>&
remote_public_creds,
UpdateRemotePublicCredentialsCallback credentials_updated_cb) = 0;
@@ -33,6 +33,7 @@
#include "internal/platform/implementation/crypto.h"
#include "internal/platform/logging.h"
#include "internal/proto/credential.pb.h"
#include "internal/proto/credential.proto.h"
#include "presence/implementation/encryption.h"
#include "presence/implementation/ldt.h"
@@ -46,8 +47,8 @@ using ::nearby::ExceptionOr;
using ::nearby::Future;
using ::nearby::internal::DeviceMetadata;
using ::nearby::internal::IdentityType;
using ::nearby::internal::PrivateCredential;
using ::nearby::internal::PublicCredential;
using ::nearby::internal::LocalCredential;
using ::nearby::internal::SharedCredential;
// Key to retrieve local device's Private/Public Key Credentials from key store.
constexpr char kPairedKeyAliasPrefix[] = "nearby_presence_paired_key_alias_";
@@ -61,8 +62,8 @@ void CredentialManagerImpl::GenerateCredentials(
const std::vector<IdentityType>& identity_types,
int credential_life_cycle_days, int contiguous_copy_of_credentials,
GenerateCredentialsResultCallback credentials_generated_cb) {
std::vector<PublicCredential> public_credentials;
std::vector<PrivateCredential> private_credentials;
std::vector<SharedCredential> public_credentials;
std::vector<LocalCredential> private_credentials;
for (auto identity_type : identity_types) {
// TODO(b/241587906): Get linux time from the platform (like Android)
@@ -115,7 +116,7 @@ void CredentialManagerImpl::GenerateCredentials(
void CredentialManagerImpl::UpdateRemotePublicCredentials(
absl::string_view manager_app_id, absl::string_view account_name,
const std::vector<nearby::internal::PublicCredential>& remote_public_creds,
const std::vector<SharedCredential>& remote_public_creds,
UpdateRemotePublicCredentialsCallback credentials_updated_cb) {
credential_storage_ptr_->SaveCredentials(
manager_app_id, account_name, /* private_credentials */ {},
@@ -144,11 +145,11 @@ void CredentialManagerImpl::UpdateRemotePublicCredentials(
}});
}
std::pair<PrivateCredential, PublicCredential>
std::pair<LocalCredential, SharedCredential>
CredentialManagerImpl::CreatePrivateCredential(
const DeviceMetadata& device_metadata, IdentityType identity_type,
uint64_t start_time_ms, uint64_t end_time_ms) {
PrivateCredential private_credential;
LocalCredential private_credential;
private_credential.set_start_time_millis(start_time_ms);
private_credential.set_end_time_millis(end_time_ms);
private_credential.set_identity_type(identity_type);
@@ -189,15 +190,15 @@ CredentialManagerImpl::CreatePrivateCredential(
std::vector<uint8_t> public_key;
key_pair->ExportPublicKey(&public_key);
return std::pair<PrivateCredential, PublicCredential>(
return std::pair<LocalCredential, SharedCredential>(
private_credential,
CreatePublicCredential(private_credential, public_key));
}
PublicCredential CredentialManagerImpl::CreatePublicCredential(
const PrivateCredential& private_credential,
SharedCredential CredentialManagerImpl::CreatePublicCredential(
const LocalCredential& private_credential,
const std::vector<uint8_t>& public_key) {
PublicCredential public_credential;
SharedCredential public_credential;
public_credential.set_identity_type(private_credential.identity_type());
public_credential.set_secret_id(private_credential.secret_id());
public_credential.set_authenticity_key(private_credential.authenticity_key());
@@ -304,14 +305,14 @@ void CredentialManagerImpl::GetPublicCredentials(
credential_selector, public_credential_type, std::move(callback));
}
ExceptionOr<std::vector<PrivateCredential>>
ExceptionOr<std::vector<LocalCredential>>
CredentialManagerImpl::GetPrivateCredentialsSync(
const CredentialSelector& credential_selector, absl::Duration timeout) {
Future<std::vector<PrivateCredential>> result;
Future<std::vector<LocalCredential>> result;
GetPrivateCredentials(
credential_selector,
{.credentials_fetched_cb =
[result](absl::StatusOr<std::vector<PrivateCredential>>
[result](absl::StatusOr<std::vector<LocalCredential>>
credentials) mutable {
if (!credentials.ok()) {
result.SetException({Exception::kFailed});
@@ -322,15 +323,15 @@ CredentialManagerImpl::GetPrivateCredentialsSync(
return result.Get(timeout);
}
ExceptionOr<std::vector<PublicCredential>>
ExceptionOr<std::vector<SharedCredential>>
CredentialManagerImpl::GetPublicCredentialsSync(
const CredentialSelector& credential_selector,
PublicCredentialType public_credential_type, absl::Duration timeout) {
Future<std::vector<PublicCredential>> result;
Future<std::vector<SharedCredential>> result;
GetPublicCredentials(
credential_selector, public_credential_type,
{.credentials_fetched_cb =
[result](absl::StatusOr<std::vector<PublicCredential>>
[result](absl::StatusOr<std::vector<SharedCredential>>
credentials) mutable {
if (!credentials.ok()) {
result.SetException({Exception::kFailed});
@@ -424,7 +425,7 @@ CredentialManagerImpl::CreateNotifySubscribersCallback(SubscriberKey key) {
return GetPublicCredentialsResultCallback{
.credentials_fetched_cb =
[this, key](
absl::StatusOr<std::vector<::nearby::internal::PublicCredential>>
absl::StatusOr<std::vector<SharedCredential>>
credentials) {
if (!credentials.ok()) {
NEARBY_LOGS(WARNING)
@@ -443,7 +444,7 @@ CredentialManagerImpl::CreateNotifySubscribersCallback(SubscriberKey key) {
void CredentialManagerImpl::NotifySubscribers(
const SubscriberKey& key,
std::vector<::nearby::internal::PublicCredential> credentials) {
std::vector<SharedCredential> credentials) {
// We are on `executor_` thread, so we can iterate over `subscribers_`
// without locking.
auto it = subscribers_.find(key);
@@ -463,7 +464,7 @@ void CredentialManagerImpl::NotifySubscribers(
}
void CredentialManagerImpl::Subscriber::NotifyCredentialsFetched(
std::vector<::nearby::internal::PublicCredential>& credentials) {
std::vector<SharedCredential>& credentials) {
callback_.credentials_fetched_cb(credentials);
}
@@ -71,7 +71,7 @@ class CredentialManagerImpl : public CredentialManager {
void UpdateRemotePublicCredentials(
absl::string_view manager_app_id, absl::string_view account_name,
const std::vector<nearby::internal::PublicCredential>&
const std::vector<nearby::internal::SharedCredential>&
remote_public_creds,
UpdateRemotePublicCredentialsCallback credentials_updated_cb) override;
@@ -80,7 +80,7 @@ class CredentialManagerImpl : public CredentialManager {
GetPrivateCredentialsResultCallback callback) override;
// Blocking version of `GetPrivateCredentials`
nearby::ExceptionOr<std::vector<nearby::internal::PrivateCredential>>
nearby::ExceptionOr<std::vector<nearby::internal::LocalCredential>>
GetPrivateCredentialsSync(const CredentialSelector& credential_selector,
absl::Duration timeout);
@@ -91,7 +91,7 @@ class CredentialManagerImpl : public CredentialManager {
GetPublicCredentialsResultCallback callback) override;
// Blocking version of `GetPublicCredentials`.
::nearby::ExceptionOr<std::vector<::nearby::internal::PublicCredential>>
::nearby::ExceptionOr<std::vector<::nearby::internal::SharedCredential>>
GetPublicCredentialsSync(const CredentialSelector& credential_selector,
PublicCredentialType public_credential_type,
absl::Duration timeout);
@@ -108,14 +108,14 @@ class CredentialManagerImpl : public CredentialManager {
absl::string_view authenticity_key,
absl::string_view device_metadata_string) override;
std::pair<nearby::internal::PrivateCredential,
nearby::internal::PublicCredential>
std::pair<nearby::internal::LocalCredential,
nearby::internal::SharedCredential>
CreatePrivateCredential(
const nearby::internal::DeviceMetadata& device_metadata,
IdentityType identity_type, uint64_t start_time_ms, uint64_t end_time_ms);
nearby::internal::PublicCredential CreatePublicCredential(
const nearby::internal::PrivateCredential& private_credential,
nearby::internal::SharedCredential CreatePublicCredential(
const nearby::internal::LocalCredential& private_credential,
const std::vector<uint8_t>& public_key);
virtual std::string EncryptDeviceMetadata(
@@ -150,7 +150,7 @@ class CredentialManagerImpl : public CredentialManager {
// Notifies the subscriber about fetched credentials.
void NotifyCredentialsFetched(
std::vector<::nearby::internal::PublicCredential>& credentials);
std::vector<::nearby::internal::SharedCredential>& credentials);
private:
GetPublicCredentialsResultCallback callback_;
@@ -167,7 +167,7 @@ class CredentialManagerImpl : public CredentialManager {
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*executor_);
void NotifySubscribers(
const SubscriberKey& key,
std::vector<::nearby::internal::PublicCredential> credentials)
std::vector<::nearby::internal::SharedCredential> credentials)
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*executor_);
void AddSubscriber(SubscriberKey key, SubscriberId id,
GetPublicCredentialsResultCallback callback)
@@ -40,8 +40,8 @@ using ::nearby::Crypto;
using ::nearby::MediumEnvironment;
using ::nearby::internal::DeviceMetadata;
using ::nearby::internal::IdentityType;
using ::nearby::internal::PrivateCredential;
using ::nearby::internal::PublicCredential;
using ::nearby::internal::LocalCredential;
using ::nearby::internal::SharedCredential;
using ::nearby::internal::IdentityType::IDENTITY_TYPE_PRIVATE;
using ::proto2::contrib::parse_proto::ParseTestProto;
using ::protobuf_matchers::EqualsProto;
@@ -77,9 +77,9 @@ class CredentialManagerImplTest : public ::testing::Test {
MOCK_METHOD(void, SaveCredentials,
(absl::string_view manager_app_id,
absl::string_view account_name,
const std::vector<::nearby::internal::PrivateCredential>&
const std::vector<LocalCredential>&
private_credentials,
const std::vector<::nearby::internal::PublicCredential>&
const std::vector<SharedCredential>&
public_credentials,
PublicCredentialType public_credential_type,
SaveCredentialsResultCallback callback),
@@ -127,7 +127,7 @@ class CredentialManagerImplTest : public ::testing::Test {
device_metadata, manager_app_id, {identity_type},
/*credential_life_cycle_days=*/1,
/*contigous_copy_of_credentials=*/1,
{[](absl::StatusOr<std::vector<PublicCredential>> credentials) {
{[](absl::StatusOr<std::vector<SharedCredential>> credentials) {
EXPECT_OK(credentials);
}});
}
@@ -145,7 +145,7 @@ TEST_F(CredentialManagerImplTest, CreateOneCredentialSuccessfully) {
device_metadata, IDENTITY_TYPE_PRIVATE, /* start_time_ms= */ 0,
/* end_time_ms= */ 1000);
PrivateCredential private_credential = credentials.first;
LocalCredential private_credential = credentials.first;
// Verify the private credential.
EXPECT_THAT(private_credential.device_metadata(),
@@ -160,7 +160,7 @@ TEST_F(CredentialManagerImplTest, CreateOneCredentialSuccessfully) {
EXPECT_EQ(private_credential.metadata_encryption_key().size(),
CredentialManagerImpl::kAuthenticityKeyByteSize);
PublicCredential public_credential = credentials.second;
SharedCredential public_credential = credentials.second;
// Verify the public credential.
EXPECT_EQ(public_credential.identity_type(), IDENTITY_TYPE_PRIVATE);
EXPECT_FALSE(public_credential.secret_id().empty());
@@ -187,14 +187,14 @@ TEST_F(CredentialManagerImplTest, CreateOneCredentialSuccessfully) {
TEST_F(CredentialManagerImplTest, GenerateCredentialsSuccessfully) {
DeviceMetadata device_metadata = CreateTestDeviceMetadata();
absl::StatusOr<std::vector<nearby::internal::PublicCredential>>
absl::StatusOr<std::vector<SharedCredential>>
public_credentials;
std::vector<IdentityType> identityTypes{IDENTITY_TYPE_PRIVATE};
credential_manager_.GenerateCredentials(
device_metadata, kManagerAppId, identityTypes, 1, 2,
{.credentials_generated_cb =
[&](absl::StatusOr<std::vector<nearby::internal::PublicCredential>>
[&](absl::StatusOr<std::vector<SharedCredential>>
credentials) {
public_credentials = std::move(credentials);
}});
@@ -213,8 +213,8 @@ TEST_F(CredentialManagerImplTest, GenerateCredentialsSuccessfully) {
TEST_F(CredentialManagerImplTest,
SubscribeCallsCallbackWithExistingCredentials) {
absl::StatusOr<std::vector<PublicCredential>> public_credentials1;
absl::StatusOr<std::vector<PublicCredential>> public_credentials2;
absl::StatusOr<std::vector<SharedCredential>> public_credentials1;
absl::StatusOr<std::vector<SharedCredential>> public_credentials2;
AddLocalIdentity(kManagerAppId, kAccountName, IDENTITY_TYPE_PRIVATE);
SubscriberId id1 = credential_manager_.SubscribeForPublicCredentials(
@@ -223,7 +223,7 @@ TEST_F(CredentialManagerImplTest,
.identity_type = IDENTITY_TYPE_PRIVATE},
PublicCredentialType::kLocalPublicCredential,
{.credentials_fetched_cb =
[&](absl::StatusOr<std::vector<PublicCredential>> credentials) {
[&](absl::StatusOr<std::vector<SharedCredential>> credentials) {
public_credentials1 = std::move(credentials);
}});
SubscriberId id2 = credential_manager_.SubscribeForPublicCredentials(
@@ -232,7 +232,7 @@ TEST_F(CredentialManagerImplTest,
.identity_type = IDENTITY_TYPE_PRIVATE},
PublicCredentialType::kLocalPublicCredential,
{.credentials_fetched_cb =
[&](absl::StatusOr<std::vector<PublicCredential>> credentials) {
[&](absl::StatusOr<std::vector<SharedCredential>> credentials) {
public_credentials2 = std::move(credentials);
}});
@@ -249,7 +249,7 @@ TEST_F(CredentialManagerImplTest,
TEST_F(CredentialManagerImplTest,
SubscribeCallsCallbackWithUpdatedCredentials) {
absl::StatusOr<std::vector<PublicCredential>> public_credentials;
absl::StatusOr<std::vector<SharedCredential>> public_credentials;
SubscriberId id = credential_manager_.SubscribeForPublicCredentials(
CredentialSelector{.manager_app_id = std::string(kManagerAppId),
@@ -257,7 +257,7 @@ TEST_F(CredentialManagerImplTest,
.identity_type = IDENTITY_TYPE_PRIVATE},
PublicCredentialType::kLocalPublicCredential,
{.credentials_fetched_cb =
[&](absl::StatusOr<std::vector<PublicCredential>> credentials) {
[&](absl::StatusOr<std::vector<SharedCredential>> credentials) {
public_credentials = std::move(credentials);
}});
Fence();
@@ -274,14 +274,14 @@ TEST_F(CredentialManagerImplTest,
}
TEST_F(CredentialManagerImplTest, NoCallbacksAfterUnsubscribe) {
absl::StatusOr<std::vector<PublicCredential>> public_credentials;
absl::StatusOr<std::vector<SharedCredential>> public_credentials;
SubscriberId id = credential_manager_.SubscribeForPublicCredentials(
CredentialSelector{.manager_app_id = std::string(kManagerAppId),
.account_name = std::string(kAccountName),
.identity_type = IDENTITY_TYPE_PRIVATE},
PublicCredentialType::kLocalPublicCredential,
{.credentials_fetched_cb =
[&](absl::StatusOr<std::vector<PublicCredential>> credentials) {
[&](absl::StatusOr<std::vector<SharedCredential>> credentials) {
public_credentials = std::move(credentials);
}});
@@ -300,8 +300,8 @@ TEST_F(CredentialManagerImplTest,
EXPECT_CALL(*credential_storage_ptr, SaveCredentials)
.WillOnce(::testing::Invoke(
[](absl::string_view manager_app_id, absl::string_view account_name,
const std::vector<PrivateCredential>& private_credentials,
const std::vector<PublicCredential>& public_credentials,
const std::vector<LocalCredential>& private_credentials,
const std::vector<SharedCredential>& public_credentials,
PublicCredentialType public_credential_type,
SaveCredentialsResultCallback callback) {
callback.credentials_saved_cb(
@@ -309,14 +309,14 @@ TEST_F(CredentialManagerImplTest,
}));
credential_manager_ =
CredentialManagerImpl(&executor_, std::move(credential_storage_ptr));
absl::StatusOr<std::vector<nearby::internal::PublicCredential>>
absl::StatusOr<std::vector<SharedCredential>>
public_credentials;
std::vector<IdentityType> identityTypes{IDENTITY_TYPE_PRIVATE};
credential_manager_.GenerateCredentials(
device_metadata, kManagerAppId, identityTypes, 1, 2,
{.credentials_generated_cb =
[&](absl::StatusOr<std::vector<nearby::internal::PublicCredential>>
[&](absl::StatusOr<std::vector<SharedCredential>>
credentials) {
public_credentials = std::move(credentials);
}});
@@ -325,10 +325,10 @@ TEST_F(CredentialManagerImplTest,
}
TEST_F(CredentialManagerImplTest, UpdateRemotePublicCredentialsSuccessfully) {
nearby::internal::PublicCredential public_credential_for_test;
SharedCredential public_credential_for_test;
public_credential_for_test.set_identity_type(
nearby::internal::IdentityType::IDENTITY_TYPE_TRUSTED);
std::vector<nearby::internal::PublicCredential> public_credentials{
IdentityType::IDENTITY_TYPE_TRUSTED);
std::vector<SharedCredential> public_credentials{
{public_credential_for_test}};
nearby::CountDownLatch updated_latch(1);
@@ -350,11 +350,11 @@ TEST_F(CredentialManagerImplTest, UpdateRemotePublicCredentialsSuccessfully) {
TEST_F(CredentialManagerImplTest,
UpdateRemotePublicCredentialsNotifiesSubscribers) {
absl::StatusOr<std::vector<PublicCredential>> subscribed_credentials;
nearby::internal::PublicCredential public_credential_for_test;
absl::StatusOr<std::vector<SharedCredential>> subscribed_credentials;
SharedCredential public_credential_for_test;
public_credential_for_test.set_identity_type(
nearby::internal::IdentityType::IDENTITY_TYPE_PRIVATE);
std::vector<nearby::internal::PublicCredential> public_credentials{
IdentityType::IDENTITY_TYPE_PRIVATE);
std::vector<SharedCredential> public_credentials{
{public_credential_for_test}};
nearby::CountDownLatch updated_latch(1);
UpdateRemotePublicCredentialsCallback update_credentials_cb{
@@ -371,7 +371,7 @@ TEST_F(CredentialManagerImplTest,
.identity_type = internal::IDENTITY_TYPE_PRIVATE},
PublicCredentialType::kRemotePublicCredential,
{.credentials_fetched_cb =
[&](absl::StatusOr<std::vector<PublicCredential>> credentials) {
[&](absl::StatusOr<std::vector<SharedCredential>> credentials) {
subscribed_credentials = std::move(credentials);
}});
SubscriberId id2 = credential_manager_.SubscribeForPublicCredentials(
@@ -380,7 +380,7 @@ TEST_F(CredentialManagerImplTest,
.identity_type = internal::IDENTITY_TYPE_TRUSTED},
PublicCredentialType::kRemotePublicCredential,
{.credentials_fetched_cb =
[&](absl::StatusOr<std::vector<PublicCredential>> credentials) {
[&](absl::StatusOr<std::vector<SharedCredential>> credentials) {
// This callback should not be called because there are no Trusted
// credentials in this test.
GTEST_FAIL();
@@ -398,14 +398,14 @@ TEST_F(CredentialManagerImplTest,
credential_manager_.UnsubscribeFromPublicCredentials(id2);
}
TEST_F(CredentialManagerImplTest, GetPrivateCredentialsFailed) {
absl::StatusOr<std::vector<PrivateCredential>> private_credentials;
TEST_F(CredentialManagerImplTest, GetLocalCredentialsFailed) {
absl::StatusOr<std::vector<LocalCredential>> private_credentials;
CredentialSelector credential_selector = BuildDefaultCredentialSelector();
credential_manager_.GetPrivateCredentials(
credential_selector,
{.credentials_fetched_cb =
[&](absl::StatusOr<std::vector<PrivateCredential>> credentials) {
[&](absl::StatusOr<std::vector<LocalCredential>> credentials) {
private_credentials = std::move(credentials);
}});
@@ -413,13 +413,13 @@ TEST_F(CredentialManagerImplTest, GetPrivateCredentialsFailed) {
}
TEST_F(CredentialManagerImplTest, GetPublicCredentialsFailed) {
absl::StatusOr<std::vector<PublicCredential>> public_credentials;
absl::StatusOr<std::vector<SharedCredential>> public_credentials;
CredentialSelector credential_selector = BuildDefaultCredentialSelector();
credential_manager_.GetPublicCredentials(
credential_selector, PublicCredentialType::kLocalPublicCredential,
{.credentials_fetched_cb =
[&](absl::StatusOr<std::vector<PublicCredential>> credentials) {
[&](absl::StatusOr<std::vector<SharedCredential>> credentials) {
public_credentials = std::move(credentials);
}});
@@ -428,23 +428,23 @@ TEST_F(CredentialManagerImplTest, GetPublicCredentialsFailed) {
TEST_F(CredentialManagerImplTest, GetCredentialsSuccessfully) {
DeviceMetadata device_metadata = CreateTestDeviceMetadata();
absl::StatusOr<std::vector<nearby::internal::PublicCredential>>
absl::StatusOr<std::vector<SharedCredential>>
public_credentials;
std::vector<IdentityType> identity_types{IDENTITY_TYPE_PRIVATE};
absl::StatusOr<std::vector<PrivateCredential>> private_credentials;
absl::StatusOr<std::vector<LocalCredential>> private_credentials;
CredentialSelector credential_selector = BuildDefaultCredentialSelector();
credential_manager_.GenerateCredentials(
device_metadata, kManagerAppId, identity_types, 1, 1,
{.credentials_generated_cb =
[&](absl::StatusOr<std::vector<nearby::internal::PublicCredential>>
[&](absl::StatusOr<std::vector<SharedCredential>>
credentials) {
public_credentials = std::move(credentials);
}});
credential_manager_.GetPrivateCredentials(
credential_selector,
{.credentials_fetched_cb =
[&](absl::StatusOr<std::vector<PrivateCredential>> credentials) {
[&](absl::StatusOr<std::vector<LocalCredential>> credentials) {
private_credentials = std::move(credentials);
}});
@@ -456,7 +456,7 @@ TEST_F(CredentialManagerImplTest, GetCredentialsSuccessfully) {
TEST_F(CredentialManagerImplTest, PublicCredentialsFailEncryption) {
DeviceMetadata device_metadata = CreateTestDeviceMetadata();
absl::StatusOr<std::vector<nearby::internal::PublicCredential>>
absl::StatusOr<std::vector<SharedCredential>>
public_credentials;
auto credential_manager_ptr =
std::make_unique<CredentialManagerImplTest::MockCredentialManager>(
@@ -471,7 +471,7 @@ TEST_F(CredentialManagerImplTest, PublicCredentialsFailEncryption) {
credential_manager_ptr->GenerateCredentials(
device_metadata, kManagerAppId, identity_types, 1, 1,
{.credentials_generated_cb =
[&](absl::StatusOr<std::vector<nearby::internal::PublicCredential>>
[&](absl::StatusOr<std::vector<SharedCredential>>
credentials) {
public_credentials = std::move(credentials);
}});
+2 -2
View File
@@ -131,7 +131,7 @@ void ScanManager::FetchCredentials(ScanSessionId id,
{.credentials_fetched_cb =
[this, id, identity_type = selector.identity_type](
absl::StatusOr<
std::vector<::nearby::internal::PublicCredential>>
std::vector<::nearby::internal::SharedCredential>>
credentials) {
if (!credentials.ok()) {
NEARBY_LOGS(WARNING)
@@ -152,7 +152,7 @@ void ScanManager::FetchCredentials(ScanSessionId id,
void ScanManager::UpdateCredentials(ScanSessionId id,
IdentityType identity_type,
std::vector<PublicCredential> credentials) {
std::vector<SharedCredential> credentials) {
auto it = scan_sessions_.find(id);
if (it == scan_sessions_.end()) {
return;
+4 -3
View File
@@ -19,6 +19,7 @@
#include <memory>
#include <string>
#include <utility>
#include <vector>
#include "absl/container/flat_hash_map.h"
#include "internal/platform/single_thread_executor.h"
@@ -42,7 +43,7 @@ class ScanManager {
using ScanningSession = ::nearby::api::ble_v2::BleMedium::ScanningSession;
using Runnable = ::nearby::Runnable;
using BleAdvertisementData = ::nearby::api::ble_v2::BleAdvertisementData;
using PublicCredential = ::nearby::internal::PublicCredential;
using SharedCredential = ::nearby::internal::SharedCredential;
using IdentityType = ::nearby::internal::IdentityType;
ScanManager(Mediums& mediums, CredentialManager& credential_manager,
@@ -62,7 +63,7 @@ class ScanManager {
struct ScanSessionState {
ScanRequest request;
ScanCallback callback;
absl::flat_hash_map<IdentityType, std::vector<PublicCredential>>
absl::flat_hash_map<IdentityType, std::vector<SharedCredential>>
credentials;
AdvertisementDecoder decoder;
std::unique_ptr<ScanningSession> scanning_session;
@@ -73,7 +74,7 @@ class ScanManager {
void FetchCredentials(ScanSessionId id, const ScanRequest& scan_request)
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*executor_);
void UpdateCredentials(ScanSessionId id, IdentityType identity_type,
std::vector<PublicCredential> credentials)
std::vector<SharedCredential> credentials)
ABSL_EXCLUSIVE_LOCKS_REQUIRED(*executor_);
void RunOnServiceControllerThread(absl::string_view name, Runnable runnable) {
executor_->Execute(std::string(name), std::move(runnable));
+1 -1
View File
@@ -56,7 +56,7 @@ struct LegacyPresenceScanFilter {
// Android T needs clients to provide remote public credentials in scan
// requests.
std::vector<nearby::internal::PublicCredential> remote_public_credentials;
std::vector<nearby::internal::SharedCredential> remote_public_credentials;
// A list of presence actions for matching. Matching condition is met as
// long as theres one or more equal actions between Scan actions and