From 63751319bfe4f9290527f0741cb8f5fb016b5244 Mon Sep 17 00:00:00 2001 From: yoshida_teruhisa Date: Fri, 18 Apr 2008 04:29:54 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=80=E3=82=A6=E3=83=B3=E3=83=AD=E3=83=BC?= =?UTF-8?q?=E3=83=89=E3=82=A2=E3=83=97=E3=83=AA=E3=81=AE=E5=A0=B4=E5=90=88?= =?UTF-8?q?=E3=81=AF=E3=83=AD=E3=83=BC=E3=83=89=E6=99=82=E3=81=ABHMACSHA1?= =?UTF-8?q?=E3=81=A7=E3=81=AF=E3=81=AA=E3=81=8F=E6=99=AE=E9=80=9A=E3=81=AE?= =?UTF-8?q?SHA1=E3=82=92=E8=A8=88=E7=AE=97=E3=81=99=E3=82=8B=E3=82=88?= =?UTF-8?q?=E3=81=86=E3=81=AB=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1181 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- build/libraries_sysmenu/sysmenu/ARM9/src/title.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c index f798fc8b..1f490a4e 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c @@ -573,16 +573,19 @@ OS_TPrintf("RebootSystem : Load VIA WRAM %d.\n", i); // 別スレッドで同じWRAM使おうとすると多分コケるので注意 // コールバック関数に与える引数を初期化してRead - if(region_header == i) + if(region_header == i || (!isTwlApp && pBootTitle->flags.bootType == LAUNCHER_BOOTTYPE_TEMP ) ) { + // ヘッダか、NTRダウンロードアプリのモジュール 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); + arg.hash_length = (u32)(region_header != i ? length[i] : + (isTwlApp ? TWL_ROM_HEADER_HASH_CALC_DATA_LEN : NTR_ROM_HEADER_HASH_CALC_DATA_LEN) ); result = FS_ReadFileViaWram(file, (void *)destaddr[i], (s32)len, MI_WRAM_C, WRAM_SLOT_FOR_FS, WRAM_SIZE_FOR_FS, SYSMi_CalcSHA1Callback, &arg ); SVC_SHA1GetHash( &arg.ctx, &s_calc_hash[i * SVC_SHA1_DIGEST_SIZE] ); }else { + // それ以外 CalcHMACSHA1CallbackArg arg; SVC_HMACSHA1Init( &arg.ctx, (void *)s_digestDefaultKey, DIGEST_HASH_BLOCK_SIZE_SHA1 ); arg.hash_length = length[i];