mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
SHA1コンテキストが非キャッシュに置かれていたのをスタック(DTCMまたはキャッシュ領域)へ移動。
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@751 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
06b09b735f
commit
6062f664fe
@ -968,13 +968,7 @@ static void UnlockHotSwRsc(OSLockWord* word)
|
|||||||
* ----------------------------------------------------------------- */
|
* ----------------------------------------------------------------- */
|
||||||
BOOL HOTSW_IsCardAccessible(void)
|
BOOL HOTSW_IsCardAccessible(void)
|
||||||
{
|
{
|
||||||
#ifndef DEBUG_USED_CARD_SLOT_B_
|
if( HOTSW_IsCardExist() && CmpMcSlotMode(SLOT_STATUS_MODE_10) == TRUE){
|
||||||
u32 mask = (u32)(REG_MI_MC_SL1_CDET_MASK << GetMcSlotShift());
|
|
||||||
#else
|
|
||||||
u32 mask = (u32)(REG_MI_MC_SL2_CDET_MASK >> GetMcSlotShift());
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if( !(reg_MI_MC1 & mask) && CmpMcSlotMode(SLOT_STATUS_MODE_10) == TRUE){
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
|||||||
@ -766,13 +766,16 @@ static AuthResult SYSMi_AuthenticateTWLHeader( TitleProperty *pBootTitle )
|
|||||||
// カードの場合のARM9_STATICハッシュチェック
|
// カードの場合のARM9_STATICハッシュチェック
|
||||||
// カード読み込み時、work2に暗号化オブジェクト部分のハッシュ計算済みのコンテキストが保存されるので
|
// カード読み込み時、work2に暗号化オブジェクト部分のハッシュ計算済みのコンテキストが保存されるので
|
||||||
// それを用いてARM9_STATIC残りの部分を計算
|
// それを用いてARM9_STATIC残りの部分を計算
|
||||||
SVCHMACSHA1Context tempcon;
|
SVCHMACSHA1Context ctx;
|
||||||
SVC_HMACSHA1Init( &tempcon, (void *)s_digestDefaultKey, DIGEST_HASH_BLOCK_SIZE_SHA1 );
|
SVC_HMACSHA1Init( &ctx, (void *)s_digestDefaultKey, DIGEST_HASH_BLOCK_SIZE_SHA1 );
|
||||||
SYSMi_GetWork2()->hmac_sha1_context.sha1_ctx.sha_block = tempcon.sha1_ctx.sha_block;// この関数ポインタだけARM7とARM9で変えないとダメ
|
// [TODO] ARM7とのhmac_sha1_contextの排他制御開始
|
||||||
SVC_HMACSHA1Update( &(SYSMi_GetWork2()->hmac_sha1_context),
|
SYSMi_GetWork2()->hmac_sha1_context.sha1_ctx.sha_block = ctx.sha1_ctx.sha_block;// この関数ポインタだけARM7とARM9で変えないとダメ
|
||||||
|
ctx = SYSMi_GetWork2()->hmac_sha1_context; // SYSMi_GetWork2は非キャッシュなのでスタック(DTCMまたはキャッシュ領域)へコピー
|
||||||
|
// [TODO] ARM7とのhmac_sha1_contextの排他制御終了
|
||||||
|
SVC_HMACSHA1Update( &ctx,
|
||||||
(const void*)((u32)module_addr[l] + ARM9_ENCRYPT_DEF_SIZE),
|
(const void*)((u32)module_addr[l] + ARM9_ENCRYPT_DEF_SIZE),
|
||||||
(module_size[l] - ARM9_ENCRYPT_DEF_SIZE) );
|
(module_size[l] - ARM9_ENCRYPT_DEF_SIZE) );
|
||||||
SVC_HMACSHA1GetHash( &(SYSMi_GetWork2()->hmac_sha1_context), calculated_hash );
|
SVC_HMACSHA1GetHash( &ctx, calculated_hash );
|
||||||
}else
|
}else
|
||||||
{
|
{
|
||||||
SVC_CalcHMACSHA1( calculated_hash, (const void*)module_addr[l], module_size[l],
|
SVC_CalcHMACSHA1( calculated_hash, (const void*)module_addr[l], module_size[l],
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user