core: crypto: key_manager: Add methods to reload & validate keys.
This commit is contained in:
		| @@ -569,6 +569,10 @@ std::optional<std::pair<Key128, Key128>> ParseTicket(const Ticket& ticket, | ||||
| } | ||||
|  | ||||
| KeyManager::KeyManager() { | ||||
|     ReloadKeys(); | ||||
| } | ||||
|  | ||||
| void KeyManager::ReloadKeys() { | ||||
|     // Initialize keys | ||||
|     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 { | ||||
|     const auto check_key_existence = [this](auto key_type, u64 index1 = 0, u64 index2 = 0) { | ||||
|         return !HasKey(key_type, index1, index2); | ||||
|   | ||||
| @@ -267,6 +267,9 @@ public: | ||||
|     bool AddTicketCommon(Ticket raw); | ||||
|     bool AddTicketPersonalized(Ticket raw); | ||||
|  | ||||
|     void ReloadKeys(); | ||||
|     bool IsKeysLoaded() const; | ||||
|  | ||||
| private: | ||||
|     KeyManager(); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user