mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
ヘッダのハッシュ計算タイミングを、プラットフォーム取得後に変更
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1691 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
9d4cf12452
commit
d869e8cb7d
@ -780,23 +780,19 @@ OS_TPrintf("RebootSystem failed: cant seek file(0)\n");
|
|||||||
goto ERROR;
|
goto ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
//ヘッダ読み込みと同時に各種ハッシュ計算
|
//ヘッダ読み込みと同時に各種ハッシュ計算……できない(NTRかTWLか判別できないため)ので読み込みのみ
|
||||||
{
|
{
|
||||||
BOOL result;
|
BOOL result;
|
||||||
u32 len = MATH_ROUNDUP( (s32)sizeof(header), SYSM_ALIGNMENT_LOAD_MODULE );
|
u32 len = MATH_ROUNDUP( (s32)sizeof(header), SYSM_ALIGNMENT_LOAD_MODULE );
|
||||||
CalcSHA1CallbackArg arg;
|
|
||||||
SVC_SHA1Init( &arg.ctx );
|
|
||||||
arg.hash_length = (u32)( isTwlApp ? TWL_ROM_HEADER_HASH_CALC_DATA_LEN : NTR_ROM_HEADER_HASH_CALC_DATA_LEN );
|
|
||||||
if(!isCardApp)
|
if(!isCardApp)
|
||||||
{
|
{
|
||||||
result = FS_ReadFileViaWram(file, (void *)header, (s32)len, MI_WRAM_C,
|
result = FS_ReadFileViaWram(file, (void *)header, (s32)len, MI_WRAM_C,
|
||||||
WRAM_SLOT_FOR_FS, WRAM_SIZE_FOR_FS, SYSMi_CalcSHA1Callback, &arg );
|
WRAM_SLOT_FOR_FS, WRAM_SIZE_FOR_FS, NULL, NULL );
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
result = HOTSW_ReadCardViaWram((void*) 0, (void*)header, (s32)len, MI_WRAM_C,
|
result = HOTSW_ReadCardViaWram((void*) 0, (void*)header, (s32)len, MI_WRAM_C,
|
||||||
WRAM_SLOT_FOR_FS, WRAM_SIZE_FOR_FS, SYSMi_CalcSHA1Callback, &arg );
|
WRAM_SLOT_FOR_FS, WRAM_SIZE_FOR_FS, NULL, NULL );
|
||||||
}
|
}
|
||||||
SVC_SHA1GetHash( &arg.ctx, &s_calc_hash[0] );
|
|
||||||
if ( !result )
|
if ( !result )
|
||||||
{
|
{
|
||||||
OS_TPrintf("RebootSystem failed: cant read file(%d, %d)\n", 0, len);
|
OS_TPrintf("RebootSystem failed: cant read file(%d, %d)\n", 0, len);
|
||||||
@ -844,6 +840,9 @@ OS_TPrintf("RebootSystem failed: cant read file(%p, %d, %d, %d)\n", &s_authcode,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ヘッダのハッシュ計算
|
||||||
|
SVC_CalcSHA1( s_calc_hash, header, (u32)( isTwlApp ? TWL_ROM_HEADER_HASH_CALC_DATA_LEN : NTR_ROM_HEADER_HASH_CALC_DATA_LEN ));
|
||||||
|
|
||||||
//この時点でヘッダの正当性検証
|
//この時点でヘッダの正当性検証
|
||||||
// ※ROMヘッダ認証
|
// ※ROMヘッダ認証
|
||||||
s_headerAuthResult = SYSMi_AuthenticateHeader( pBootTitle, head );
|
s_headerAuthResult = SYSMi_AuthenticateHeader( pBootTitle, head );
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user