mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
ROMヘッダの「開発用暗号ビット」の位置移動に対応し、新旧どちらの場所のビットが立っているSRLでも
ブートできるようにしておく。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2213 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
0e886644c4
commit
a20a3b0e39
@ -176,7 +176,7 @@ static BOOL CheckHeader(void)
|
||||
OS_TPrintf("AES Encryption : %s\n", rhs->enable_aes ? "AVAILABLE" : "NOT AVAILABLE");
|
||||
if ( rhs->enable_aes )
|
||||
{
|
||||
OS_TPrintf("AES Key Type : %s\n", rhs->developer_encrypt ? "FOR DEVELOPMENT" : "FOR PRODUCT");
|
||||
OS_TPrintf("AES Key Type : %s\n", rhs->developer_encrypt_old || rhs->exFlags.developer_encrypt ? "FOR DEVELOPMENT" : "FOR PRODUCT");
|
||||
}
|
||||
// エントリポイント
|
||||
OS_TPrintf("ARM9 Entry point : %08X\n", rhs->main_entry_address);
|
||||
|
||||
@ -102,7 +102,7 @@ void AESi_InitSeedWithRomHeader( ROM_Header* rom_header )
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ( rom_header->s.developer_encrypt )
|
||||
if ( rom_header->s.developer_encrypt_old || rom_header->s.exFlags.developer_encrypt )
|
||||
{
|
||||
AES_SetKeyA( (AESKey*)rom_header->s.title_name );
|
||||
}
|
||||
|
||||
@ -956,7 +956,7 @@ static BOOL SYSMi_AuthenticateHeaderWithSign( TitleProperty *pBootTitle, ROM_Hea
|
||||
{
|
||||
// 注:デバグ用コード。
|
||||
// 開発用TSボードで開発版ROMおよび製品版ROMの署名チェックとAESデクリプトをデバグするためのコード
|
||||
if( head->s.developer_encrypt )
|
||||
if( head->s.developer_encrypt_old || head->s.exFlags.developer_encrypt )
|
||||
{
|
||||
// 開発版鍵取得
|
||||
key = g_devPubKey[keynum];
|
||||
|
||||
@ -138,14 +138,14 @@ BOOL SYSM_InitDecryptAESRegion_W( ROM_Header_Short *hs )
|
||||
}
|
||||
|
||||
// Workに開発/製品情報を格納
|
||||
SYSMi_GetWork()->isDeveloperAESMode = ( hs->developer_encrypt ? TRUE : FALSE );
|
||||
SYSMi_GetWork()->isDeveloperAESMode = ( hs->developer_encrypt_old || hs->exFlags.developer_encrypt ) ? TRUE : FALSE;
|
||||
|
||||
// カウンタの初期値記録
|
||||
MI_CpuCopy8( hs->main_static_digest, s_initCounterAES[0], AES_BLOCK_SIZE ); // 領域1初期値
|
||||
MI_CpuCopy8( hs->sub_static_digest, s_initCounterAES[1], AES_BLOCK_SIZE ); // 領域2初期値
|
||||
|
||||
// Workに「鍵」or「シードとゲームコード」をセット
|
||||
if( hs->developer_encrypt )
|
||||
if( hs->developer_encrypt_old || hs->exFlags.developer_encrypt )
|
||||
{
|
||||
MI_CpuCopy8( hs->title_name, SYSMi_GetWork()->keyAES, AES_KEY_SIZE );
|
||||
}else
|
||||
@ -307,14 +307,14 @@ void SYSM_StartDecryptAESRegion( ROM_Header_Short *hs )
|
||||
}
|
||||
|
||||
// Workに開発/製品情報を格納
|
||||
SYSMi_GetWork()->isDeveloperAESMode = ( hs->developer_encrypt ? TRUE : FALSE );
|
||||
SYSMi_GetWork()->isDeveloperAESMode = ( hs->developer_encrypt_old || hs->exFlags.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「シードとゲームコード」をセット
|
||||
if( hs->developer_encrypt )
|
||||
if( hs->developer_encrypt_old || hs->exFlags.developer_encrypt )
|
||||
{
|
||||
MI_CpuCopy8( hs->title_name, SYSMi_GetWork()->keyAES, AES_KEY_SIZE );
|
||||
}else
|
||||
|
||||
@ -218,7 +218,7 @@ static BOOL CheckHeader(void)
|
||||
OS_TPrintf("AES Encryption : %s\n", rhs->enable_aes ? "AVAILABLE" : "NOT AVAILABLE");
|
||||
if ( rhs->enable_aes )
|
||||
{
|
||||
OS_TPrintf("AES Key Type : %s\n", rhs->developer_encrypt ? "FOR DEVELOPMENT" : "FOR PRODUCT");
|
||||
OS_TPrintf("AES Key Type : %s\n", ( rhs->developer_encrypt_old || rhs->exFlags.developer_encrypt ) ? "FOR DEVELOPMENT" : "FOR PRODUCT");
|
||||
if ( rhs->aes_target_size )
|
||||
{
|
||||
OS_TPrintf("AES address : %08X\n", rhs->aes_target_rom_offset);
|
||||
|
||||
@ -187,7 +187,7 @@ static BOOL CheckHeader(void)
|
||||
OS_TPrintf("AES Encryption : %s\n", rhs->enable_aes ? "AVAILABLE" : "NOT AVAILABLE");
|
||||
if ( rhs->enable_aes )
|
||||
{
|
||||
OS_TPrintf("AES Key Type : %s\n", rhs->developer_encrypt ? "FOR DEVELOPMENT" : "FOR PRODUCT");
|
||||
OS_TPrintf("AES Key Type : %s\n", ( rhs->developer_encrypt_old || rhs->exFlags.developer_encrypt ) ? "FOR DEVELOPMENT" : "FOR PRODUCT");
|
||||
}
|
||||
// エントリポイント
|
||||
OS_TPrintf("ARM9 Entry point : %08X\n", rhs->main_entry_address);
|
||||
|
||||
@ -135,7 +135,7 @@ int main(int argc, char *argv[])
|
||||
|
||||
// rom_header.s.enable_signature:1; // enable ROM Header signature
|
||||
// rom_header.s.enable_aes:1; // enable AES encryption
|
||||
// rom_header.s.developer_encrypt:1; // 開発用セキュリティがかかっている場合に"1"。製品版では"0"
|
||||
// rom_header.s.developer_encrypt_old:1; // 開発用セキュリティがかかっている場合に"1"。製品版では"0"
|
||||
|
||||
// u32 arm7_scfg_ext; // SCFG-EXT
|
||||
// u8 arm7_scfg_clk; // SCFG-CLK
|
||||
|
||||
Binary file not shown.
Loading…
Reference in New Issue
Block a user