ホワイトリストチェック処理実装の準備

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1422 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yoshida_teruhisa 2008-05-20 07:14:00 +00:00
parent df127afa02
commit ae78f232be
2 changed files with 47 additions and 10 deletions

View File

@ -803,8 +803,8 @@ BOOL SYSM_IsLoadTitleFinished( void )
//
// ============================================================================
// TWLアプリおよびNTR拡張NANDアプリ共通のヘッダ認証処理
static AuthResult SYSMi_AuthenticateTWLHeader( TitleProperty *pBootTitle, ROM_Header *head )
// 署名つきアプリ≠DSダウンロードアプリ署名共通のヘッダ認証処理
static AuthResult SYSMi_AuthenticateHeaderWithSign( TitleProperty *pBootTitle, ROM_Header *head )
{
// 署名処理
const u8 *key;
@ -818,6 +818,7 @@ static AuthResult SYSMi_AuthenticateTWLHeader( TitleProperty *pBootTitle, ROM_He
start = OS_GetTick();
// pBootTitle->titleIDとROMヘッダのtitleIDの一致確認をする。
// [TODO:]ホワイトリストマスタリングされたNTRアプリで行わない場合はSYSMi_AuthenticateTWLHeaderへ移動
if( pBootTitle->titleID != head->s.titleID )
{
//TWL対応ROMで、ヘッダのtitleIDが起動指定されたIDと違う
@ -907,7 +908,21 @@ static AuthResult SYSMi_AuthenticateTWLHeader( TitleProperty *pBootTitle, ROM_He
return AUTH_RESULT_SUCCEEDED;
}
// TWLアプリおよびNTR拡張NANDアプリ共通の認証
// TWLアプリ、NTR拡張NANDアプリ 共通のヘッダ認証処理
static AuthResult SYSMi_AuthenticateTWLHeader( TitleProperty *pBootTitle, ROM_Header *head )
{
if( head->s.enable_signature )
{
return SYSMi_AuthenticateHeaderWithSign( pBootTitle, head );
}else
{
// 署名有効フラグが立っていなければFAILED
OS_TPrintf("Authenticate_Header failed: Sign check flag is OFF.\n");
return AUTH_RESULT_AUTHENTICATE_FAILED;
}
}
// TWLアプリ、NTR拡張NANDアプリ 共通の認証
static AuthResult SYSMi_AuthenticateTWLTitle( TitleProperty *pBootTitle )
{
ROM_Header *head;
@ -1084,16 +1099,40 @@ static AuthResult SYSMi_AuthenticateNTRDownloadTitle( TitleProperty *pBootTitle)
// NTR版カードアプリのヘッダ認証処理
static AuthResult SYSMi_AuthenticateNTRCardAppHeader( TitleProperty *pBootTitle, ROM_Header *head )
{
#pragma unused(pBootTitle,head)
// [TODO:]NTRカード ホワイトリストorホワイトリスト署名チェック
return AUTH_RESULT_SUCCEEDED;
AuthResult ret;
if( head->s.enable_nitro_whitelist_signature )
{
// マスタリング済みNTRカードアプリの署名チェック実はTWLアプリと同じ
ret = SYSMi_AuthenticateHeaderWithSign( pBootTitle, head );
if( ret == AUTH_RESULT_SUCCEEDED )
{
#ifdef DHT_TEST
// [TODO:]retを捕まえてOKならhash値をstatic変数に保存しておき、DHTのphase1とphase2で使う
#endif
}
}else
{
// [TODO:]NTRカード ホワイトリスト検索
// ホワイトリスト検索
ret = AUTH_RESULT_SUCCEEDED;
if( ret == AUTH_RESULT_SUCCEEDED )
{
#ifdef DHT_TEST
// [TODO:]retを捕まえてOKならhash値をstatic変数に保存しておき、DHTのphase1とphase2で使う
#endif
}
}
return ret;
}
// NTR版カードアプリの認証
static AuthResult SYSMi_AuthenticateNTRCardTitle( TitleProperty *pBootTitle)
{
#pragma unused(pBootTitle)
// [TODO:]DHTチェック
// [TODO:]DHTチェックphase2phase1はstaticの読み込み時に平行処理
#ifdef DHT_TEST
#endif
return AUTH_RESULT_SUCCEEDED;
}
@ -1102,7 +1141,6 @@ static AuthResult SYSMi_AuthenticateHeader( TitleProperty *pBootTitle, ROM_Heade
{
ROM_Header_Short *hs = ( ROM_Header_Short *)head;
// [TODO:]認証結果はどこかワークに保存しておく?
// [TODO:]署名チェックを行う場合、ヘッダに署名ビットがあるはずなので、それを確認して署名チェックを行う
if( hs->platform_code & PLATFORM_CODE_FLAG_TWL )
{
// TWLアプリ
@ -1163,7 +1201,6 @@ static AuthResult SYSMi_AuthenticateTitleCore( TitleProperty *pBootTitle)
{
ROM_Header_Short *hs = ( ROM_Header_Short *)SYSM_APP_ROM_HEADER_BUF;
// [TODO:]認証結果はどこかワークに保存しておく?
// [TODO:]署名チェックを行う場合、ヘッダに署名ビットがあるはずなので、それを確認して署名チェックを行う
if( hs->platform_code & PLATFORM_CODE_FLAG_TWL )
{
// TWLアプリ

View File

@ -32,7 +32,7 @@ TARGET_FOB = ARM9FLX.fob
FBDSIZE_ARM9FLX = 1810720
TARGET_FOB += ARM9LTD.fob
#ARM9_LTD_addsize
FBDSIZE_ARM9LTD = 3097152
FBDSIZE_ARM9LTD = 2597152
TARGET_NUMBER = 1
TARGET_NAME = RelocateChecker$(TARGET_NUMBER)