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() { | 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(); | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user