blob: dd5e73f532ef76ac0b0d0430d1b0e1bf685d44d4 [file] [log] [blame]
// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/os_crypt/sync/os_crypt_mocker.h"
#include <memory>
#include "build/build_config.h"
#include "components/os_crypt/sync/os_crypt.h"
#if defined(USE_LIBSECRET) || defined(USE_KWALLET)
#include "components/os_crypt/sync/os_crypt_mocker_linux.h"
#endif
// static
void OSCryptMocker::SetUp() {
#if BUILDFLAG(IS_APPLE)
OSCrypt::SetKeychainForTesting(
std::make_unique<crypto::apple::MockKeychain>());
#elif defined(USE_LIBSECRET) || defined(USE_KWALLET)
OSCryptMockerLinux::SetUp();
#elif BUILDFLAG(IS_WIN)
OSCrypt::UseMockKeyForTesting(true);
#endif
}
// static
std::string OSCryptMocker::GetRawEncryptionKey() {
return OSCrypt::GetRawEncryptionKey();
}
#if BUILDFLAG(IS_APPLE)
// static
void OSCryptMocker::SetBackendLocked(bool locked) {
if (locked) {
OSCrypt::SetKeychainForTesting(OSCrypt::MockLockedKeychain());
} else {
OSCrypt::SetKeychainForTesting(
std::make_unique<crypto::apple::MockKeychain>());
}
}
#endif
#if BUILDFLAG(IS_WIN)
// static
void OSCryptMocker::SetLegacyEncryption(bool legacy) {
OSCrypt::SetLegacyEncryptionForTesting(legacy);
}
void OSCryptMocker::ResetState() {
OSCrypt::ResetStateForTesting();
}
#endif
// static
void OSCryptMocker::TearDown() {
#if BUILDFLAG(IS_APPLE)
OSCrypt::SetKeychainForTesting(nullptr);
#elif defined(USE_LIBSECRET) || defined(USE_KWALLET)
OSCryptMockerLinux::TearDown();
#elif BUILDFLAG(IS_WIN)
OSCrypt::UseMockKeyForTesting(false);
#endif
}