mirror of
https://github.com/kidfromjupiter/nearby.git
synced 2026-09-14 14:46:12 -04:00
CredentialManager: Allow saving/getting device metadata blobs
PiperOrigin-RevId: 525518359
This commit is contained in:
committed by
Copybara-Service
parent
f1a1a7510b
commit
7f227a5205
@@ -21,6 +21,7 @@
|
||||
#include "absl/strings/string_view.h"
|
||||
#include "internal/platform/implementation/credential_callbacks.h"
|
||||
#include "internal/proto/credential.pb.h"
|
||||
#include "internal/proto/local_credential.pb.h"
|
||||
|
||||
namespace nearby {
|
||||
namespace api {
|
||||
|
||||
@@ -95,6 +95,18 @@ class CredentialManager {
|
||||
virtual std::string DecryptMetadata(absl::string_view metadata_encryption_key,
|
||||
absl::string_view key_seed,
|
||||
absl::string_view metadata_string) = 0;
|
||||
|
||||
// Sets the NP service's device metadata, regenerating credentials if
|
||||
// `regen_credentials` is set to true.
|
||||
virtual void SetLocalDeviceMetadata(
|
||||
const ::nearby::internal::Metadata& metadata, bool regen_credentials,
|
||||
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;
|
||||
|
||||
// Gets the NP service's device metadata.
|
||||
virtual ::nearby::internal::Metadata GetLocalDeviceMetadata() = 0;
|
||||
};
|
||||
|
||||
} // namespace presence
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include "internal/platform/runnable.h"
|
||||
#include "internal/platform/single_thread_executor.h"
|
||||
#include "internal/proto/credential.pb.h"
|
||||
#include "internal/proto/metadata.proto.h"
|
||||
#include "presence/implementation/credential_manager.h"
|
||||
|
||||
namespace nearby {
|
||||
@@ -127,6 +128,24 @@ class CredentialManagerImpl : public CredentialManager {
|
||||
std::vector<uint8_t> ExtendMetadataEncryptionKey(
|
||||
absl::string_view metadata_encryption_key);
|
||||
|
||||
void SetLocalDeviceMetadata(
|
||||
const Metadata& metadata, bool regen_credentials,
|
||||
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 {
|
||||
metadata_ = metadata;
|
||||
if (regen_credentials) {
|
||||
GenerateCredentials(
|
||||
metadata, manager_app_id, identity_types, credential_life_cycle_days,
|
||||
contiguous_copy_of_credentials, std::move(credentials_generated_cb));
|
||||
}
|
||||
}
|
||||
|
||||
::nearby::internal::Metadata GetLocalDeviceMetadata() override {
|
||||
return metadata_;
|
||||
}
|
||||
|
||||
private:
|
||||
struct SubscriberKey {
|
||||
CredentialSelector credential_selector;
|
||||
@@ -185,6 +204,7 @@ class CredentialManagerImpl : public CredentialManager {
|
||||
ABSL_GUARDED_BY(*executor_);
|
||||
SingleThreadExecutor* executor_;
|
||||
std::unique_ptr<nearby::CredentialStorageImpl> credential_storage_ptr_;
|
||||
Metadata metadata_;
|
||||
};
|
||||
|
||||
} // namespace presence
|
||||
|
||||
Reference in New Issue
Block a user