// Copyright 2013 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COMPONENTS_POLICY_CORE_COMMON_CLOUD_USER_CLOUD_POLICY_STORE_H_ #define COMPONENTS_POLICY_CORE_COMMON_CLOUD_USER_CLOUD_POLICY_STORE_H_ #include <string> #include "base/files/file_path.h" #include "base/memory/weak_ptr.h" #include "components/account_id/account_id.h" #include "components/policy/core/common/cloud/user_cloud_policy_store_base.h" #include "components/policy/policy_export.h" #include "components/policy/proto/device_management_backend.pb.h" #include "components/policy/proto/policy_signing_key.pb.h" namespace base { class SequencedTaskRunner; } namespace policy { // This enum is used to define the buckets for an enumerated UMA histogram. // Hence, // (a) existing enumerated constants should never be deleted or reordered, and // (b) new constants should only be appended at the end of the enumeration. // // Keep this in sync with EnterprisePolicyLoadStatus in histograms.xml. enum PolicyLoadStatusForUma { … }; // Struct containing the result of a policy load - if |status| == // LOAD_RESULT_SUCCESS, |policy| is initialized from the policy file on disk. // |key| is initialized from the signing key file on disk. // |doing_key_rotation| is true if we need to re-download the key again when key // loaded from external place is different than the local one. struct PolicyLoadResult { … }; // Function that takes in a PolicyLoadResult and returns a PolicyLoadResult with // filtered policies. PolicyLoadFilter; // Implements a cloud policy store that stores policy on desktop. This is used // on (non-chromeos) platforms that do not have a secure storage // implementation. class POLICY_EXPORT DesktopCloudPolicyStore : public UserCloudPolicyStoreBase { … }; // Implements a cloud policy store that is stored in a simple file in the user's // profile directory. This is used on (non-chromeos) platforms that do not have // a secure storage implementation. // // The public key, which is used to verify signatures of policy, is also // persisted in a file. During the load operation, the key is loaded from the // file and is itself verified against the verification public key before using // it to verify the policy signature. During the store operation, the key cache // file is updated whenever the key rotation happens. class POLICY_EXPORT UserCloudPolicyStore : public DesktopCloudPolicyStore { … }; } // namespace policy #endif // COMPONENTS_POLICY_CORE_COMMON_CLOUD_USER_CLOUD_POLICY_STORE_H_