xref: /aosp_15_r20/external/cronet/crypto/scoped_mock_unexportable_key_provider.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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 #include <vector>
6 
7 #include "crypto/scoped_mock_unexportable_key_provider.h"
8 #include "crypto/unexportable_key.h"
9 
10 namespace crypto {
11 
12 namespace {
13 
GetUnexportableKeyProviderMock()14 std::unique_ptr<UnexportableKeyProvider> GetUnexportableKeyProviderMock() {
15   return GetSoftwareUnsecureUnexportableKeyProvider();
16 }
17 
GetUnexportableKeyProviderNull()18 std::unique_ptr<UnexportableKeyProvider> GetUnexportableKeyProviderNull() {
19   return nullptr;
20 }
21 
22 }  // namespace
23 
ScopedMockUnexportableKeyProvider()24 ScopedMockUnexportableKeyProvider::ScopedMockUnexportableKeyProvider() {
25   internal::SetUnexportableKeyProviderForTesting(
26       GetUnexportableKeyProviderMock);
27 }
28 
~ScopedMockUnexportableKeyProvider()29 ScopedMockUnexportableKeyProvider::~ScopedMockUnexportableKeyProvider() {
30   internal::SetUnexportableKeyProviderForTesting(nullptr);
31 }
32 
ScopedNullUnexportableKeyProvider()33 ScopedNullUnexportableKeyProvider::ScopedNullUnexportableKeyProvider() {
34   internal::SetUnexportableKeyProviderForTesting(
35       GetUnexportableKeyProviderNull);
36 }
37 
~ScopedNullUnexportableKeyProvider()38 ScopedNullUnexportableKeyProvider::~ScopedNullUnexportableKeyProvider() {
39   internal::SetUnexportableKeyProviderForTesting(nullptr);
40 }
41 
42 }  // namespace crypto
43