From d11f38a82ca0e1d6bbcf8b72fea74d90d5e5edf4 Mon Sep 17 00:00:00 2001 From: "giantpune@gmail.com" Date: Sat, 18 Dec 2010 21:45:14 +0000 Subject: [PATCH] * fix missing case that let bad RSA slip through the cracks in the latest demo app git-svn-id: http://wiiqt.googlecode.com/svn/trunk@24 389f4c8b-5dfe-645f-db0e-df882bc27289 --- nandBinCheck/main.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/nandBinCheck/main.cpp b/nandBinCheck/main.cpp index cc375a3..d495dae 100644 --- a/nandBinCheck/main.cpp +++ b/nandBinCheck/main.cpp @@ -320,24 +320,26 @@ bool CheckTitleIntegrity( quint64 tid ) //remember the tmd for checking the actual contents for( quint8 i = 0; i < 2; i++ ) { + QString it = ( i ? "tmd" : "ticket" ); QByteArray ba = nand.GetData( i ? tmdp : tikp ); if( ba.isEmpty() ) { - if( i ) - qDebug() << "error getting tmd data"; - else - qDebug() << "error getting ticket data"; + qDebug() << "error getting" << it << "data"; return false; } switch( check_cert_chain( ba ) ) { case ERROR_SIG_TYPE: case ERROR_SUB_TYPE: + case ERROR_RSA_HASH: case ERROR_RSA_TYPE_UNKNOWN: case ERROR_RSA_TYPE_MISMATCH: case ERROR_CERT_NOT_FOUND: - qDebug() << "the RSA signature isn't even close"; - return false; + qDebug() << "\t" << it << "RSA signature isn't even close"; + //return false; //maye in the future this will be true, but for now, this doesnt mean it wont boot + break; + case ERROR_RSA_FAKESIGNED: + qDebug() << "\t" << it << "fakesigned"; break; default: break; @@ -631,7 +633,7 @@ int main( int argc, char *argv[] ) qDebug() << "found" << tids.size() << "titles installed"; BuildGoodIosList(); - qDebug() << "found" << validIoses.size() << "good IOS"; + qDebug() << "found" << validIoses.size() << "bootable IOS"; foreach( quint64 tid, tids ) { CheckTitleIntegrity( tid );