ROMヘッダの「開発用暗号ビット」の位置移動に対応し、新旧どちらの場所のビットが立っているSRLでも

ブートできるようにしておく。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2213 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2008-08-21 03:08:11 +00:00
parent 0e886644c4
commit a20a3b0e39
8 changed files with 10 additions and 10 deletions

View File

@ -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);

View File

@ -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 );
}

View File

@ -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];

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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.