// Copyright 2024 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CRYPTO_SCOPED_FAKE_APPLE_KEYCHAIN_V2_H_ #define CRYPTO_SCOPED_FAKE_APPLE_KEYCHAIN_V2_H_ #include #include #include "crypto/crypto_export.h" namespace crypto { class FakeAppleKeychainV2; // ScopedFakeAppleKeychainV2 installs itself as testing override for // `AppleKeychainV2::GetInstance()`. class CRYPTO_EXPORT ScopedFakeAppleKeychainV2 { public: // Supported types of user verification, reported by // LAContextCanEvaluatePolicy. enum class UVMethod { kNone, kPasswordOnly, kBiometrics, }; explicit ScopedFakeAppleKeychainV2(const std::string& keychain_access_group); ~ScopedFakeAppleKeychainV2(); FakeAppleKeychainV2* keychain() { return keychain_.get(); } void SetUVMethod(UVMethod uv_method); private: std::unique_ptr keychain_; }; } // namespace crypto #endif // CRYPTO_SCOPED_FAKE_APPLE_KEYCHAIN_V2_H_