crypto/key_manager: Remove dependency on the global system accessor
We can supply the content provider as an argument instead of hardcoding a global accessor in the implementation.
This commit is contained in:
parent
1a9774f824
commit
e0dd440b1f
3 changed files with 12 additions and 7 deletions
|
@ -23,7 +23,6 @@
|
||||||
#include "common/hex_util.h"
|
#include "common/hex_util.h"
|
||||||
#include "common/logging/log.h"
|
#include "common/logging/log.h"
|
||||||
#include "common/string_util.h"
|
#include "common/string_util.h"
|
||||||
#include "core/core.h"
|
|
||||||
#include "core/crypto/aes_util.h"
|
#include "core/crypto/aes_util.h"
|
||||||
#include "core/crypto/key_manager.h"
|
#include "core/crypto/key_manager.h"
|
||||||
#include "core/crypto/partition_data_manager.h"
|
#include "core/crypto/partition_data_manager.h"
|
||||||
|
@ -1022,10 +1021,10 @@ void KeyManager::DeriveBase() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void KeyManager::DeriveETicket(PartitionDataManager& data) {
|
void KeyManager::DeriveETicket(PartitionDataManager& data,
|
||||||
|
const FileSys::ContentProvider& provider) {
|
||||||
// ETicket keys
|
// ETicket keys
|
||||||
const auto es = Core::System::GetInstance().GetContentProvider().GetEntry(
|
const auto es = provider.GetEntry(0x0100000000000033, FileSys::ContentRecordType::Program);
|
||||||
0x0100000000000033, FileSys::ContentRecordType::Program);
|
|
||||||
|
|
||||||
if (es == nullptr) {
|
if (es == nullptr) {
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -20,6 +20,10 @@ namespace Common::FS {
|
||||||
class IOFile;
|
class IOFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace FileSys {
|
||||||
|
class ContentProvider;
|
||||||
|
}
|
||||||
|
|
||||||
namespace Loader {
|
namespace Loader {
|
||||||
enum class ResultStatus : u16;
|
enum class ResultStatus : u16;
|
||||||
}
|
}
|
||||||
|
@ -252,7 +256,7 @@ public:
|
||||||
|
|
||||||
bool BaseDeriveNecessary() const;
|
bool BaseDeriveNecessary() const;
|
||||||
void DeriveBase();
|
void DeriveBase();
|
||||||
void DeriveETicket(PartitionDataManager& data);
|
void DeriveETicket(PartitionDataManager& data, const FileSys::ContentProvider& provider);
|
||||||
void PopulateTickets();
|
void PopulateTickets();
|
||||||
void SynthesizeTickets();
|
void SynthesizeTickets();
|
||||||
|
|
||||||
|
|
|
@ -2592,8 +2592,10 @@ void GMainWindow::OnReinitializeKeys(ReinitializeKeyBehavior behavior) {
|
||||||
|
|
||||||
const auto function = [this, &keys, &pdm] {
|
const auto function = [this, &keys, &pdm] {
|
||||||
keys.PopulateFromPartitionData(pdm);
|
keys.PopulateFromPartitionData(pdm);
|
||||||
Core::System::GetInstance().GetFileSystemController().CreateFactories(*vfs);
|
|
||||||
keys.DeriveETicket(pdm);
|
auto& system = Core::System::GetInstance();
|
||||||
|
system.GetFileSystemController().CreateFactories(*vfs);
|
||||||
|
keys.DeriveETicket(pdm, system.GetContentProvider());
|
||||||
};
|
};
|
||||||
|
|
||||||
QString errors;
|
QString errors;
|
||||||
|
|
Loading…
Reference in a new issue