blob: d0a7552aeb5dc27b272f676bdca448af78ff9a4c [file] [log] [blame]
// Copyright 2023 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_UNEXPORTABLE_KEYS_FEATURES_H_
#define COMPONENTS_UNEXPORTABLE_KEYS_FEATURES_H_
#include "base/component_export.h"
#include "base/feature_list.h"
namespace unexportable_keys {
// If enabled, DBSC-related code will switch `UnexportableKeyProvider` to a mock
// software-backed implementation.
// This feature flag is expected to never be shipped to end users.
COMPONENT_EXPORT(UNEXPORTABLE_KEYS)
BASE_DECLARE_FEATURE(
kEnableBoundSessionCredentialsSoftwareKeysForManualTesting);
// It enables the garbage collection and deletion of obsolete unexportable keys
// managed by the `UnexportableKeyService`. This feature is primarily
// implemented for macOS to remove orphaned keys from the Keychain,
// particularly those created for Device Bound Session Credentials (DBSC).
// On other platforms, the deletion logic may be a no-op.
COMPONENT_EXPORT(UNEXPORTABLE_KEYS)
BASE_DECLARE_FEATURE(kUnexportableKeyDeletion);
} // namespace unexportable_keys
#endif // COMPONENTS_UNEXPORTABLE_KEYS_FEATURES_H_