core: crypto: key_manager: Add methods to reload & validate keys.
This commit is contained in:
parent
f33776af67
commit
93bad47edb
2 changed files with 11 additions and 0 deletions
|
@ -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);
|
||||||
|
|
|
@ -267,6 +267,9 @@ public:
|
||||||
bool AddTicketCommon(Ticket raw);
|
bool AddTicketCommon(Ticket raw);
|
||||||
bool AddTicketPersonalized(Ticket raw);
|
bool AddTicketPersonalized(Ticket raw);
|
||||||
|
|
||||||
|
void ReloadKeys();
|
||||||
|
bool IsKeysLoaded() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
KeyManager();
|
KeyManager();
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue