ランチャーからカードブート時のARM9staticモジュールのハッシュチェック処理を実装

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@685 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yoshida_teruhisa 2008-02-18 02:26:31 +00:00
parent 8f898dfedc
commit 985a378d2c

View File

@ -706,12 +706,14 @@ static AuthResult SYSMi_AuthenticateHeader( TitleProperty *pBootTitle )
// ハッシュ計算
if( pBootTitle->flags.bootType == LAUNCHER_BOOTTYPE_ROM && l == 0)
{
// [TODO:]カードの場合のARM9_STATICハッシュチェック
// カードの場合のARM9_STATICハッシュチェック
// カード読み込み時、work2に暗号化オブジェクト部分のハッシュ計算済みのコンテキストが保存されるので
// それを用いてARM9_STATIC残りの部分を計算
continue;
SVCHMACSHA1Context tempcon;
SVC_HMACSHA1Init( &tempcon, (void *)s_digestDefaultKey, DIGEST_HASH_BLOCK_SIZE_SHA1 );
SYSMi_GetWork2()->hmac_sha1_context.sha1_ctx.sha_block = tempcon.sha1_ctx.sha_block;// この関数ポインタだけARM7とARM9で変えないとダメ
SVC_HMACSHA1Update( &(SYSMi_GetWork2()->hmac_sha1_context),
(const void*)(module_addr[l] + ARM9_ENCRYPT_DEF_SIZE),
(const void*)((u32)module_addr[l] + ARM9_ENCRYPT_DEF_SIZE),
(module_size[l] - ARM9_ENCRYPT_DEF_SIZE) );
SVC_HMACSHA1GetHash( &(SYSMi_GetWork2()->hmac_sha1_context), &calculated_hash );
}else