mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-14 22:56:12 -04:00
Use CredentialSelector for GenerateCredentials()
PiperOrigin-RevId: 501951868
This commit is contained in:
committed by
Copybara-Service
parent
ac87d5cf50
commit
44fb63f498
@@ -45,7 +45,8 @@ class CredentialManager {
|
||||
// storage.
|
||||
virtual void GenerateCredentials(
|
||||
const nearby::internal::DeviceMetadata& device_metadata,
|
||||
const std::vector<CredentialSelector>& credential_selectors,
|
||||
absl::string_view manager_app_id,
|
||||
const std::vector<nearby::internal::IdentityType>& identity_types,
|
||||
int credential_life_cycle_days, int contiguous_copy_of_credentials,
|
||||
GenerateCredentialsResultCallback credentials_generated_cb) = 0;
|
||||
|
||||
|
||||
@@ -55,14 +55,14 @@ constexpr absl::Duration kTimeout = absl::Seconds(3);
|
||||
} // namespace
|
||||
|
||||
void CredentialManagerImpl::GenerateCredentials(
|
||||
const DeviceMetadata& device_metadata,
|
||||
const std::vector<CredentialSelector>& credential_selectors,
|
||||
const DeviceMetadata& device_metadata, absl::string_view manager_app_id,
|
||||
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;
|
||||
|
||||
for (const auto& credential_selector : credential_selectors) {
|
||||
for (auto identity_type : identity_types) {
|
||||
// TODO(b/241587906): Get linux time from the platform (like Android)
|
||||
uint64_t start_time_millis = 0;
|
||||
const uint64_t gap_millis = credential_life_cycle_days * 24 * 3600 * 1000;
|
||||
@@ -70,8 +70,7 @@ void CredentialManagerImpl::GenerateCredentials(
|
||||
|
||||
for (int index = 0; index < contiguous_copy_of_credentials; index++) {
|
||||
auto public_private_credentials = CreatePrivateCredential(
|
||||
device_metadata, credential_selector.identity_type, start_time_millis,
|
||||
end_time_millis);
|
||||
device_metadata, identity_type, start_time_millis, end_time_millis);
|
||||
if (public_private_credentials.second.identity_type() !=
|
||||
IdentityType::IDENTITY_TYPE_UNSPECIFIED) {
|
||||
private_credentials.push_back(public_private_credentials.first);
|
||||
@@ -83,11 +82,8 @@ void CredentialManagerImpl::GenerateCredentials(
|
||||
}
|
||||
|
||||
// Create credential_storage object and invoke SaveCredentials.
|
||||
// Assume that all credential selectors are for the same manager app and
|
||||
// account name
|
||||
credential_storage_ptr_->SaveCredentials(
|
||||
credential_selectors[0].manager_app_id,
|
||||
credential_selectors[0].account_name, private_credentials,
|
||||
manager_app_id, device_metadata.account_name(), private_credentials,
|
||||
public_credentials, PublicCredentialType::kLocalPublicCredential,
|
||||
SaveCredentialsResultCallback{
|
||||
.credentials_saved_cb =
|
||||
|
||||
@@ -53,7 +53,8 @@ class CredentialManagerImpl : public CredentialManager {
|
||||
|
||||
void GenerateCredentials(
|
||||
const nearby::internal::DeviceMetadata& device_metadata,
|
||||
const std::vector<CredentialSelector>& credential_selectors,
|
||||
absl::string_view manager_app_id,
|
||||
const std::vector<nearby::internal::IdentityType>& identity_types,
|
||||
int credential_life_cycle_days, int contiguous_copy_of_credentials,
|
||||
GenerateCredentialsResultCallback credentials_generated_cb) override;
|
||||
|
||||
|
||||
@@ -61,21 +61,6 @@ CredentialSelector BuildDefaultCredentialSelector() {
|
||||
return credential_selector;
|
||||
}
|
||||
|
||||
std::vector<CredentialSelector> BuildCredentialSelectors(
|
||||
absl::string_view manager_app_id,
|
||||
std::vector<IdentityType>& identity_types) {
|
||||
std::vector<CredentialSelector> selectors;
|
||||
for (auto& identity_type : identity_types) {
|
||||
CredentialSelector credential_selector{
|
||||
.manager_app_id = std::string(manager_app_id),
|
||||
.account_name = "test_account",
|
||||
.identity_type = identity_type,
|
||||
};
|
||||
selectors.push_back(credential_selector);
|
||||
}
|
||||
return selectors;
|
||||
}
|
||||
|
||||
class CredentialManagerImplTest : public ::testing::Test {
|
||||
public:
|
||||
class MockCredentialStorage : public nearby::CredentialStorageImpl {
|
||||
@@ -174,7 +159,7 @@ TEST(CredentialManagerImpl, GenerateCredentialsSuccessfully) {
|
||||
|
||||
credential_manager.GenerateCredentials(
|
||||
device_metadata,
|
||||
BuildCredentialSelectors("TEST_MANAGER_APP", identityTypes), 1, 2,
|
||||
/* manager_app_id= */ "TEST_MANAGER_APP", identityTypes, 1, 2,
|
||||
{.credentials_generated_cb =
|
||||
[&](absl::StatusOr<std::vector<nearby::internal::PublicCredential>>
|
||||
credentials) {
|
||||
@@ -214,7 +199,7 @@ TEST(CredentialManagerImpl, GenerateCredentialsSuccessfullyButStoreFailed) {
|
||||
|
||||
credential_manager.GenerateCredentials(
|
||||
device_metadata,
|
||||
BuildCredentialSelectors("TEST_MANAGER_APP", identityTypes), 1, 2,
|
||||
/* manager_app_id= */ "TEST_MANAGER_APP", identityTypes, 1, 2,
|
||||
{.credentials_generated_cb =
|
||||
[&](absl::StatusOr<std::vector<nearby::internal::PublicCredential>>
|
||||
credentials) {
|
||||
@@ -297,8 +282,7 @@ TEST(CredentialManagerImpl, GetCredentialsSuccessfully) {
|
||||
CredentialSelector credential_selector = BuildDefaultCredentialSelector();
|
||||
|
||||
credential_manager.GenerateCredentials(
|
||||
device_metadata,
|
||||
BuildCredentialSelectors("TEST_MANAGER_APP", identity_types), 1, 1,
|
||||
device_metadata, "TEST_MANAGER_APP", identity_types, 1, 1,
|
||||
{.credentials_generated_cb =
|
||||
[&](absl::StatusOr<std::vector<nearby::internal::PublicCredential>>
|
||||
credentials) {
|
||||
@@ -331,8 +315,7 @@ TEST(CredentialManagerImpl, PublicCredentialsFailEncryption) {
|
||||
std::vector<IdentityType> identity_types{IDENTITY_TYPE_PRIVATE};
|
||||
|
||||
credential_manager_ptr->GenerateCredentials(
|
||||
device_metadata,
|
||||
BuildCredentialSelectors("TEST_MANAGER_APP", identity_types), 1, 1,
|
||||
device_metadata, "TEST_MANAGER_APP", identity_types, 1, 1,
|
||||
{.credentials_generated_cb =
|
||||
[&](absl::StatusOr<std::vector<nearby::internal::PublicCredential>>
|
||||
credentials) {
|
||||
|
||||
Reference in New Issue
Block a user