From 93bad47edb38484be11e77c5c447270badc6fb37 Mon Sep 17 00:00:00 2001 From: bunnei Date: Sat, 4 Feb 2023 00:44:33 -0800 Subject: core: crypto: key_manager: Add methods to reload & validate keys. --- src/core/crypto/key_manager.cpp | 8 ++++++++ src/core/crypto/key_manager.h | 3 +++ 2 files changed, 11 insertions(+) (limited to 'src/core/crypto') diff --git a/src/core/crypto/key_manager.cpp b/src/core/crypto/key_manager.cpp index 65a9fe802..0bd5859d0 100644 --- a/src/core/crypto/key_manager.cpp +++ b/src/core/crypto/key_manager.cpp @@ -569,6 +569,10 @@ std::optional> 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); diff --git a/src/core/crypto/key_manager.h b/src/core/crypto/key_manager.h index 673cec463..fb991ae54 100644 --- a/src/core/crypto/key_manager.h +++ b/src/core/crypto/key_manager.h @@ -267,6 +267,9 @@ public: bool AddTicketCommon(Ticket raw); bool AddTicketPersonalized(Ticket raw); + void ReloadKeys(); + bool IsKeysLoaded() const; + private: KeyManager(); -- cgit v1.2.3 From 93cf8c3090889e1228b94df4d171601d8f7dd7f0 Mon Sep 17 00:00:00 2001 From: bunnei Date: Sat, 4 Feb 2023 00:55:02 -0800 Subject: android: frontend: Integrate key installation for SAF. --- src/core/crypto/key_manager.cpp | 2 +- src/core/crypto/key_manager.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'src/core/crypto') diff --git a/src/core/crypto/key_manager.cpp b/src/core/crypto/key_manager.cpp index 0bd5859d0..4ff2c50e5 100644 --- a/src/core/crypto/key_manager.cpp +++ b/src/core/crypto/key_manager.cpp @@ -706,7 +706,7 @@ void KeyManager::LoadFromFile(const std::filesystem::path& file_path, bool is_ti } } -bool KeyManager::IsKeysLoaded() const { +bool KeyManager::AreKeysLoaded() const { return !s128_keys.empty() && !s256_keys.empty(); } diff --git a/src/core/crypto/key_manager.h b/src/core/crypto/key_manager.h index fb991ae54..8c864503b 100644 --- a/src/core/crypto/key_manager.h +++ b/src/core/crypto/key_manager.h @@ -268,7 +268,7 @@ public: bool AddTicketPersonalized(Ticket raw); void ReloadKeys(); - bool IsKeysLoaded() const; + bool AreKeysLoaded() const; private: KeyManager(); -- cgit v1.2.3