|
|
@ -569,6 +569,10 @@ std::optional<std::pair<Key128, Key128>> ParseTicket(const Ticket& ticket,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
KeyManager::KeyManager() {
|
|
|
|
KeyManager::KeyManager() {
|
|
|
|
|
|
|
|
ReloadKeys();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void KeyManager::ReloadKeys() {
|
|
|
|
// Initialize keys
|
|
|
|
// Initialize keys
|
|
|
|
const auto yuzu_keys_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::KeysDir);
|
|
|
|
const auto yuzu_keys_dir = Common::FS::GetYuzuPath(Common::FS::YuzuPath::KeysDir);
|
|
|
|
|
|
|
|
|
|
|
@ -702,6 +706,10 @@ void KeyManager::LoadFromFile(const std::filesystem::path& file_path, bool is_ti
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
bool KeyManager::IsKeysLoaded() const {
|
|
|
|
|
|
|
|
return !s128_keys.empty() && !s256_keys.empty();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
bool KeyManager::BaseDeriveNecessary() const {
|
|
|
|
bool KeyManager::BaseDeriveNecessary() const {
|
|
|
|
const auto check_key_existence = [this](auto key_type, u64 index1 = 0, u64 index2 = 0) {
|
|
|
|
const auto check_key_existence = [this](auto key_type, u64 index1 = 0, u64 index2 = 0) {
|
|
|
|
return !HasKey(key_type, index1, index2);
|
|
|
|
return !HasKey(key_type, index1, index2);
|
|
|
|