Skip to content

Commit

Permalink
Allow the user to ignore signature issues during WAD import
Browse files Browse the repository at this point in the history
Improves usability with signature checks.
  • Loading branch information
leoetlino committed Jun 15, 2017
1 parent f092954 commit e5023d4
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions Source/Core/UICommon/WiiUtils.cpp
Expand Up @@ -5,6 +5,7 @@
#include "UICommon/WiiUtils.h"
#include "Common/CommonTypes.h"
#include "Common/MsgHandler.h"
#include "Core/ConfigManager.h"
#include "Core/IOS/ES/ES.h"
#include "Core/IOS/ES/Formats.h"
#include "Core/IOS/IOS.h"
Expand All @@ -27,12 +28,23 @@ bool InstallWAD(const std::string& wad_path)
const auto es = ios.GetES();

IOS::HLE::Device::ES::Context context;
if (es->ImportTicket(wad.GetTicket().GetBytes(), wad.GetCertificateChain()) < 0 ||
es->ImportTitleInit(context, tmd.GetBytes(), wad.GetCertificateChain()) < 0)
IOS::HLE::ReturnCode ret;
const bool checks_enabled = SConfig::GetInstance().m_enable_signature_checks;
while ((ret = es->ImportTicket(wad.GetTicket().GetBytes(), wad.GetCertificateChain())) < 0 ||
(ret = es->ImportTitleInit(context, tmd.GetBytes(), wad.GetCertificateChain())) < 0)
{
if (checks_enabled && ret == IOS::HLE::IOSC_FAIL_CHECKVALUE &&
AskYesNoT("This WAD has not been signed by Nintendo. Continue to import?"))
{
SConfig::GetInstance().m_enable_signature_checks = false;
continue;
}

SConfig::GetInstance().m_enable_signature_checks = checks_enabled;
PanicAlertT("WAD installation failed: Could not initialise title import.");
return false;
}
SConfig::GetInstance().m_enable_signature_checks = checks_enabled;

const bool contents_imported = [&]() {
const u64 title_id = tmd.GetTitleId();
Expand Down

0 comments on commit e5023d4

Please sign in to comment.