core: crypto: key_manager: Add methods to reload & validate keys.

This commit is contained in:
bunnei 2023-02-04 00:44:33 -08:00
parent f33776af67
commit 93bad47edb
2 changed files with 11 additions and 0 deletions

View file

@ -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);

View file

@ -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();