• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2021 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_MOCK_UNEXPORTABLE_KEY_PROVIDER_H_
6 #define CRYPTO_SCOPED_MOCK_UNEXPORTABLE_KEY_PROVIDER_H_
7 
8 namespace crypto {
9 
10 // ScopedMockUnexportableKeyProvider causes
11 // |GetUnexportableKeyProvider| to return a mock, software-based
12 // implementation of |UnexportableKeyProvider| while it is in scope.
13 //
14 // This needs you to link against the test_support target.
15 class ScopedMockUnexportableKeyProvider {
16  public:
17   ScopedMockUnexportableKeyProvider();
18   ScopedMockUnexportableKeyProvider(const ScopedMockUnexportableKeyProvider&) =
19       delete;
20   ScopedMockUnexportableKeyProvider(ScopedMockUnexportableKeyProvider&&) =
21       delete;
22   ~ScopedMockUnexportableKeyProvider();
23 };
24 
25 // `ScopedNullUnexportableKeyProvider` causes `GetUnexportableKeyProvider` to
26 // return a nullptr, emulating the key provider not being supported.
27 class ScopedNullUnexportableKeyProvider {
28  public:
29   ScopedNullUnexportableKeyProvider();
30   ScopedNullUnexportableKeyProvider(const ScopedNullUnexportableKeyProvider&) =
31       delete;
32   ScopedNullUnexportableKeyProvider(ScopedNullUnexportableKeyProvider&&) =
33       delete;
34   ~ScopedNullUnexportableKeyProvider();
35 };
36 
37 }  // namespace crypto
38 
39 #endif  // CRYPTO_SCOPED_MOCK_UNEXPORTABLE_KEY_PROVIDER_H_
40