diff --git a/build/gcdfirm/sdmc-launcher/ARM9/main.c b/build/gcdfirm/sdmc-launcher/ARM9/main.c index 50782802..f4abf957 100644 --- a/build/gcdfirm/sdmc-launcher/ARM9/main.c +++ b/build/gcdfirm/sdmc-launcher/ARM9/main.c @@ -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); diff --git a/build/libraries/aes/ARM7/aes_init.c b/build/libraries/aes/ARM7/aes_init.c index c48f3027..2111b9c7 100644 --- a/build/libraries/aes/ARM7/aes_init.c +++ b/build/libraries/aes/ARM7/aes_init.c @@ -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 ); } diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c index 6eab1360..0bbac236 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/title.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/title.c @@ -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]; diff --git a/build/libraries_sysmenu/sysmenu/common/src/decryptAES.c b/build/libraries_sysmenu/sysmenu/common/src/decryptAES.c index adca2c3a..89672213 100644 --- a/build/libraries_sysmenu/sysmenu/common/src/decryptAES.c +++ b/build/libraries_sysmenu/sysmenu/common/src/decryptAES.c @@ -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 diff --git a/build/nandfirm/menu-launcher/ARM9/main.c b/build/nandfirm/menu-launcher/ARM9/main.c index cbc84dc5..af977228 100644 --- a/build/nandfirm/menu-launcher/ARM9/main.c +++ b/build/nandfirm/menu-launcher/ARM9/main.c @@ -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); diff --git a/build/nandfirm/sdmc-launcher/ARM9/main.c b/build/nandfirm/sdmc-launcher/ARM9/main.c index 8e78fe6d..7948c609 100644 --- a/build/nandfirm/sdmc-launcher/ARM9/main.c +++ b/build/nandfirm/sdmc-launcher/ARM9/main.c @@ -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); diff --git a/build/tools/attach_dummyromheader/attach_dummyromheader.c b/build/tools/attach_dummyromheader/attach_dummyromheader.c index 84cbe659..382b2b69 100644 --- a/build/tools/attach_dummyromheader/attach_dummyromheader.c +++ b/build/tools/attach_dummyromheader/attach_dummyromheader.c @@ -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 diff --git a/docs/format_ROM_Header.xls b/docs/format_ROM_Header.xls index 99a4f217..a5abb8c5 100644 Binary files a/docs/format_ROM_Header.xls and b/docs/format_ROM_Header.xls differ