AES鍵破壊APIのインライン化と鍵Dを触らないように修正

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@726 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yutaka 2008-02-25 01:46:25 +00:00
parent 4427f9a116
commit b6801335fb
3 changed files with 14 additions and 53 deletions

View File

@ -35,8 +35,6 @@ void AESi_InitKeysForApp( u8 game_code[4] )
reg_AES_AES_ID_A2 = AES_IDS_ID0_C(game_code);
reg_AES_AES_ID_A3 = AES_IDS_ID0_D(game_code);
reg_AES_AES_ID_B0 = AES_IDS_ID1_A(game_code);
reg_AES_AES_ID_B1 = AES_IDS_ID1_B(game_code);
AES_Unlock();
}
@ -62,53 +60,6 @@ void AESi_InitKeysForHard( u8 fuse[8] )
AES_Unlock();
}
/*---------------------------------------------------------------------------*
Name: AESi_ResetAesKey
Description: set SEED/KEYs filler data without seed[3]
Arguments: None
Returns: None
*---------------------------------------------------------------------------*/
void AESi_ResetAesKey( void )
{
AES_Lock();
AES_WaitKey();
// set dummy without seed[3]
reg_AES_AES_SEED_A0 = 1;
reg_AES_AES_SEED_A1 = 2;
reg_AES_AES_SEED_A2 = 3;
reg_AES_AES_SEED_B0 = 4;
reg_AES_AES_SEED_B1 = 5;
reg_AES_AES_SEED_B2 = 6;
reg_AES_AES_SEED_C0 = 7;
reg_AES_AES_SEED_C1 = 8;
reg_AES_AES_SEED_C2 = 9;
reg_AES_AES_SEED_D0 = 10;
reg_AES_AES_SEED_D1 = 11;
reg_AES_AES_SEED_D2 = 12;
reg_AES_AES_KEY_A0 = 1;
reg_AES_AES_KEY_A1 = 2;
reg_AES_AES_KEY_A2 = 3;
reg_AES_AES_KEY_A3 = 3;
reg_AES_AES_KEY_B0 = 4;
reg_AES_AES_KEY_B1 = 5;
reg_AES_AES_KEY_B2 = 6;
reg_AES_AES_KEY_B3 = 6;
reg_AES_AES_KEY_C0 = 7;
reg_AES_AES_KEY_C1 = 8;
reg_AES_AES_KEY_C2 = 9;
reg_AES_AES_KEY_C3 = 9;
reg_AES_AES_KEY_D0 = 10;
reg_AES_AES_KEY_D1 = 11;
reg_AES_AES_KEY_D2 = 12;
reg_AES_AES_KEY_D3 = 12;
AES_Unlock();
}
/*---------------------------------------------------------------------------*
Name: AESi_InitSeedWithRomHeader

View File

@ -20,9 +20,9 @@
#define AES_IDS_ID0_C(c) (((unsigned long)c[0] << 0) | ((unsigned long)c[1] << 8) | ((unsigned long)c[2] << 16) | ((unsigned long)c[3] << 24))
#define AES_IDS_ID0_D(c) (((unsigned long)c[3] << 0) | ((unsigned long)c[2] << 8) | ((unsigned long)c[1] << 16) | ((unsigned long)c[0] << 24))
#if 0 // not specialized for application
#define AES_IDS_ID1_A(c) (((unsigned long)c[3] << 0) | ((unsigned long)c[1] << 8) | ((unsigned long)c[2] << 16) | ((unsigned long)c[0] << 24))
#define AES_IDS_ID1_B(c) (((unsigned long)c[0] << 0) | ((unsigned long)c[2] << 8) | ((unsigned long)c[1] << 16) | ((unsigned long)c[3] << 24))
#endif
/* TWL_AES_AES_IDS_H_ */
#endif

View File

@ -54,13 +54,23 @@ void AESi_InitKeysForHard( u8 fuse[8] );
/*---------------------------------------------------------------------------*
Name: AESi_ResetAesKey
Description: set SEED/KEYs by dummy data without seed[3]
Description: set SEED/ID/KEYs filler data without slot-D
Arguments: None
Returns: None
*---------------------------------------------------------------------------*/
void AESi_ResetAesKey( void );
static inline void AESi_ResetAesKey( void )
{
AES_Lock();
AES_WaitKey();
MI_CpuCopy32( (u32*)AESi_ResetAesKey, (u32*)REG_AES_KEY_A0_ADDR+1, 40 );
MI_CpuCopy32( (u32*)AESi_ResetAesKey+10, (u32*)REG_AES_KEY_B0_ADDR+1, 40 );
MI_CpuCopy32( (u32*)AESi_ResetAesKey+20, (u32*)REG_AES_KEY_C0_ADDR+1, 40 );
AES_Unlock();
}
/*---------------------------------------------------------------------------*
Name: AESi_InitKeysFIRM