aboutsummaryrefslogtreecommitdiff
path: root/src/core/crypto/key_manager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/crypto/key_manager.cpp')
-rw-r--r--src/core/crypto/key_manager.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/core/crypto/key_manager.cpp b/src/core/crypto/key_manager.cpp
index 9a1b9d7a50..fc0ee064cc 100644
--- a/src/core/crypto/key_manager.cpp
+++ b/src/core/crypto/key_manager.cpp
@@ -21,6 +21,7 @@
#include "common/fs/path_util.h"
#include "common/hex_util.h"
#include "common/logging/log.h"
+#include "common/settings.h"
#include "common/string_util.h"
#include "core/crypto/aes_util.h"
#include "core/crypto/key_manager.h"
@@ -642,8 +643,15 @@ void KeyManager::ReloadKeys() {
const auto keys_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::KeysDir);
if (!Common::FS::CreateDir(keys_dir))
LOG_ERROR(Core, "Failed to create the keys directory.");
- LoadFromFile(keys_dir / "prod.keys_autogenerated", false);
- LoadFromFile(keys_dir / "prod.keys", false);
+ if (Settings::values.use_dev_keys.GetValue()) {
+ dev_mode = true;
+ LoadFromFile(keys_dir / "dev.keys_autogenerated", false);
+ LoadFromFile(keys_dir / "dev.keys", false);
+ } else {
+ dev_mode = false;
+ LoadFromFile(keys_dir / "prod.keys_autogenerated", false);
+ LoadFromFile(keys_dir / "prod.keys", false);
+ }
LoadFromFile(keys_dir / "title.keys_autogenerated", true);
LoadFromFile(keys_dir / "title.keys", true);
LoadFromFile(keys_dir / "console.keys_autogenerated", false);
@@ -838,7 +846,7 @@ void KeyManager::WriteKeyToFile(KeyCategory category, std::string_view keyname,
std::string filename = "title.keys_autogenerated";
if (category == KeyCategory::Standard) {
- filename = "prod.keys_autogenerated";
+ filename = dev_mode ? "dev.keys_autogenerated" : "prod.keys_autogenerated";
} else if (category == KeyCategory::Console) {
filename = "console.keys_autogenerated";
}
@@ -936,6 +944,8 @@ bool KeyManager::KeyFileExists(bool title) {
const auto keys_dir = Common::FS::GetEdenPath(Common::FS::EdenPath::KeysDir);
if (title)
return Common::FS::Exists(keys_dir / "title.keys");
+ if (Settings::values.use_dev_keys.GetValue())
+ return Common::FS::Exists(keys_dir / "dev.keys");
return Common::FS::Exists(keys_dir / "prod.keys");
}