• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2024 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef CRYPTO_SCOPED_FAKE_USER_VERIFYING_KEY_PROVIDER_H_
6 #define CRYPTO_SCOPED_FAKE_USER_VERIFYING_KEY_PROVIDER_H_
7 
8 namespace crypto {
9 
10 // ScopedFakeUserVerifyingKeyProvider causes `GetUserVerifyingKeyProvider` to
11 // return a mock implementation of `UserVerifyingKeyProvider`, that does not use
12 // system APIs, while it is in scope.
13 class ScopedFakeUserVerifyingKeyProvider {
14  public:
15   ScopedFakeUserVerifyingKeyProvider();
16   ~ScopedFakeUserVerifyingKeyProvider();
17 };
18 
19 // `ScopedNullUserVerifyingKeyProvider` causes `GetUserVerifyingKeyProvider` to
20 // return a nullptr, emulating the key provider not being supported, while it
21 // is in scope.
22 class ScopedNullUserVerifyingKeyProvider {
23  public:
24   ScopedNullUserVerifyingKeyProvider();
25   ~ScopedNullUserVerifyingKeyProvider();
26 };
27 
28 // ScopedFailingUserVerifyingKeyProvider causes `GetUserVerifyingKeyProvider` to
29 // return a mock implementation of `UserVerifyingKeyProvider` that fails all
30 // signing requests.
31 class ScopedFailingUserVerifyingKeyProvider {
32  public:
33   ScopedFailingUserVerifyingKeyProvider();
34   ~ScopedFailingUserVerifyingKeyProvider();
35 };
36 
37 }  // namespace crypto
38 
39 #endif  // CRYPTO_SCOPED_FAKE_USER_VERIFYING_KEY_PROVIDER_H_
40