citra-emu
/
citra-canary
Archived
1
0
Fork 0

qt: Add NCCH secure 1/2 to keys needed for system titles download. (#6586)

This commit is contained in:
Steveice10 2023-06-02 19:16:48 -07:00 committed by GitHub
parent f1ece7c56f
commit abd949fea1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 2 deletions

View File

@ -247,9 +247,10 @@ ConfigureSystem::ConfigureSystem(QWidget* parent)
ui->combo_download_set->setCurrentIndex(0); // set to Minimal ui->combo_download_set->setCurrentIndex(0); // set to Minimal
ui->combo_download_region->setCurrentIndex(0); // set to the base region ui->combo_download_region->setCurrentIndex(0); // set to the base region
bool keys_available = true;
HW::AES::InitKeys(true); HW::AES::InitKeys(true);
for (u8 i = 0; i < HW::AES::MaxCommonKeySlot; i++) { bool keys_available = HW::AES::IsKeyXAvailable(HW::AES::KeySlotID::NCCHSecure1) &&
HW::AES::IsKeyXAvailable(HW::AES::KeySlotID::NCCHSecure2);
for (u8 i = 0; i < HW::AES::MaxCommonKeySlot && keys_available; i++) {
HW::AES::SelectCommonKeyIndex(i); HW::AES::SelectCommonKeyIndex(i);
if (!HW::AES::IsNormalKeyAvailable(HW::AES::KeySlotID::TicketCommonKey)) { if (!HW::AES::IsNormalKeyAvailable(HW::AES::KeySlotID::TicketCommonKey)) {
keys_available = false; keys_available = false;

View File

@ -573,6 +573,10 @@ void SetNormalKey(std::size_t slot_id, const AESKey& key) {
key_slots.at(slot_id).SetNormalKey(key); key_slots.at(slot_id).SetNormalKey(key);
} }
bool IsKeyXAvailable(std::size_t slot_id) {
return key_slots.at(slot_id).x.has_value();
}
bool IsNormalKeyAvailable(std::size_t slot_id) { bool IsNormalKeyAvailable(std::size_t slot_id) {
return key_slots.at(slot_id).normal.has_value(); return key_slots.at(slot_id).normal.has_value();
} }

View File

@ -76,6 +76,7 @@ void SetKeyX(std::size_t slot_id, const AESKey& key);
void SetKeyY(std::size_t slot_id, const AESKey& key); void SetKeyY(std::size_t slot_id, const AESKey& key);
void SetNormalKey(std::size_t slot_id, const AESKey& key); void SetNormalKey(std::size_t slot_id, const AESKey& key);
bool IsKeyXAvailable(std::size_t slot_id);
bool IsNormalKeyAvailable(std::size_t slot_id); bool IsNormalKeyAvailable(std::size_t slot_id);
AESKey GetNormalKey(std::size_t slot_id); AESKey GetNormalKey(std::size_t slot_id);