mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
AES領域復号に使うカウンタの初期値セット忘れていたので追加
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1073 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
144871a860
commit
4db0d8c3d8
@ -115,6 +115,10 @@ void SYSM_StartDecryptAESRegion( ROM_Header_Short *hs )
|
|||||||
// Workに開発/製品情報を格納
|
// Workに開発/製品情報を格納
|
||||||
SYSMi_GetWork()->isDeveloperAESMode = ( hs->developer_encrypt ? TRUE : FALSE );
|
SYSMi_GetWork()->isDeveloperAESMode = ( hs->developer_encrypt ? TRUE : FALSE );
|
||||||
|
|
||||||
|
// Workにカウンタの初期値セット
|
||||||
|
MI_CpuCopy8( hs->main_static_digest, SYSMi_GetWork()->counterAES[0], AES_BLOCK_SIZE ); // 領域1初期値
|
||||||
|
MI_CpuCopy8( hs->sub_static_digest, SYSMi_GetWork()->counterAES[1], AES_BLOCK_SIZE ); // 領域2初期値
|
||||||
|
|
||||||
// Workに「鍵」or「シードとゲームコード」をセット
|
// Workに「鍵」or「シードとゲームコード」をセット
|
||||||
if( hs->developer_encrypt )
|
if( hs->developer_encrypt )
|
||||||
{
|
{
|
||||||
@ -147,7 +151,6 @@ void SYSM_StartDecryptAESRegion( ROM_Header_Short *hs )
|
|||||||
#include <twl/aes/ARM7/lo.h>
|
#include <twl/aes/ARM7/lo.h>
|
||||||
#include <firm/aes/ARM7/aes_init.h>
|
#include <firm/aes/ARM7/aes_init.h>
|
||||||
|
|
||||||
static BOOL aesFlag;
|
|
||||||
static AESCounter aesCounter;
|
static AESCounter aesCounter;
|
||||||
|
|
||||||
#define DMA_SEND 2
|
#define DMA_SEND 2
|
||||||
@ -208,6 +211,10 @@ static void SYSMi_CallbackDecryptAESRegion(PXIFifoTag tag, u32 data, BOOL err)
|
|||||||
OS_TPrintf( "SYSM_StartDecryptAESRegion:Region %d skip.\n", l );
|
OS_TPrintf( "SYSM_StartDecryptAESRegion:Region %d skip.\n", l );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// カウンタの初期値セット
|
||||||
|
MI_CpuCopy8( SYSMi_GetWork()->counterAES[l], &aesCounter, AES_BLOCK_SIZE );
|
||||||
|
|
||||||
// 鍵ロードして暗号化領域の復号開始
|
// 鍵ロードして暗号化領域の復号開始
|
||||||
ReplaceWithAes( SYSMi_GetWork()->addr_AESregion[l], SYSMi_GetWork()->size_AESregion[l] );
|
ReplaceWithAes( SYSMi_GetWork()->addr_AESregion[l], SYSMi_GetWork()->size_AESregion[l] );
|
||||||
// DMA転送なのでARM9のためのキャッシュフラッシュは不要のはず
|
// DMA転送なのでARM9のためのキャッシュフラッシュは不要のはず
|
||||||
|
|||||||
@ -126,6 +126,7 @@ typedef struct SYSM_work {
|
|||||||
u8 keyAES[AES_KEY_SIZE]; // 開発版AES暗号化領域の復号に使用するKEY(に使うタイトルネーム)
|
u8 keyAES[AES_KEY_SIZE]; // 開発版AES暗号化領域の復号に使用するKEY(に使うタイトルネーム)
|
||||||
u8 idAES[GAME_CODE_MAX]; // 製品版AES暗号化領域の復号に使用するID(に使うゲームコード)
|
u8 idAES[GAME_CODE_MAX]; // 製品版AES暗号化領域の復号に使用するID(に使うゲームコード)
|
||||||
u8 seedAES[AES_KEY_SIZE]; // 製品版AES暗号化領域の復号に使用するSEED
|
u8 seedAES[AES_KEY_SIZE]; // 製品版AES暗号化領域の復号に使用するSEED
|
||||||
|
u8 counterAES[2][AES_BLOCK_SIZE]; // AES暗号化領域の復号に使用するカウンタ初期値
|
||||||
|
|
||||||
// NTR-IPL2のレガシー 最終的には消すと思う
|
// NTR-IPL2のレガシー 最終的には消すと思う
|
||||||
BOOL enableCardNormalOnly;
|
BOOL enableCardNormalOnly;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user