#include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/key_loader_impl.h"
#include <optional>
#include <utility>
#include "base/check.h"
#include "base/functional/bind.h"
#include "base/metrics/histogram_functions.h"
#include "base/task/task_traits.h"
#include "base/task/thread_pool.h"
#include "chrome/browser/enterprise/connectors/device_trust/device_trust_features.h"
#include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/key_utils.h"
#include "chrome/browser/enterprise/connectors/device_trust/key_management/browser/metrics_utils.h"
#include "chrome/browser/enterprise/connectors/device_trust/key_management/core/network/key_upload_request.h"
#include "chrome/browser/enterprise/connectors/device_trust/key_management/core/network/util.h"
#include "components/enterprise/browser/controller/browser_dm_token_storage.h"
#include "components/enterprise/client_certificates/core/cloud_management_delegate.h"
#include "components/policy/core/common/cloud/device_management_service.h"
namespace enterprise_connectors {
namespace {
std::optional<const KeyUploadRequest> CreateRequest(
const GURL& dm_server_url,
const std::string& dm_token,
scoped_refptr<SigningKeyPair> key_pair) { … }
std::optional<const enterprise_management::DeviceManagementRequest>
BuildUploadPublicKeyRequest(scoped_refptr<SigningKeyPair> key_pair) { … }
void RecordUploadCode(int status_code) { … }
}
KeyLoaderImpl::KeyLoaderImpl(
policy::BrowserDMTokenStorage* dm_token_storage,
policy::DeviceManagementService* device_management_service,
std::unique_ptr<KeyNetworkDelegate> network_delegate)
: … { … }
KeyLoaderImpl::KeyLoaderImpl(
std::unique_ptr<enterprise_attestation::CloudManagementDelegate>
management_delegate)
: … { … }
KeyLoaderImpl::~KeyLoaderImpl() = default;
void KeyLoaderImpl::LoadKey(LoadKeyCallback callback) { … }
void KeyLoaderImpl::SynchronizePublicKey(LoadKeyCallback callback,
LoadedKey persisted_key) { … }
void KeyLoaderImpl::OnUploadPublicKeyRequestCreated(
scoped_refptr<SigningKeyPair> key_pair,
LoadKeyCallback callback,
std::optional<const enterprise_management::DeviceManagementRequest>
upload_request) { … }
void KeyLoaderImpl::OnKeyUploadRequestCreated(
scoped_refptr<SigningKeyPair> key_pair,
LoadKeyCallback callback,
std::optional<const KeyUploadRequest> upload_request) { … }
void KeyLoaderImpl::OnUploadPublicKeyCompleted(
scoped_refptr<SigningKeyPair> key_pair,
LoadKeyCallback callback,
const policy::DMServerJobResult result) { … }
void KeyLoaderImpl::OnKeyUploadCompleted(
scoped_refptr<enterprise_connectors::SigningKeyPair> key_pair,
LoadKeyCallback callback,
int status_code) { … }
}