AESの鍵を直接利用する場合も鍵Aを使うように変更

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@399 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yutaka 2007-12-25 09:35:17 +00:00
parent 09f3649d7a
commit 8f82386277
8 changed files with 30 additions and 45 deletions

View File

@ -114,19 +114,18 @@ void AESi_ResetAesKey( void )
Returns: None
*---------------------------------------------------------------------------*/
void AESi_RecvSeed( void )
void AESi_RecvSeed( BOOL developer_encrypt )
{
AESKey seed;
// PXI_RecvDataByFifo( PXI_FIFO_TAG_DATA, &seed, AES_BLOCK_SIZE );
PXI_RecvStream( &seed, AES_BLOCK_SIZE );
AESi_WaitKey();
AESi_SetKeySeedA((AESKeySeed*)&seed); // APP
//AESi_WaitKey();
//AESi_SetKeySeedB((AESKeySeed*)&seed); // APP & HARD
//AESi_WaitKey();
//AESi_SetKeySeedC((AESKeySeed*)&seed); //
//AESi_WaitKey();
//AESi_SetKeySeedD((AESKeySeed*)&seed); // HARD
AESi_WaitKey();
AESi_SetKeyC(&seed); // Direct
if ( developer_encrypt )
{
AESi_SetKeyA(&seed); // Direct
}
else
{
AESi_SetKeySeedA((AESKeySeed*)&seed); // APP
}
}

View File

@ -379,7 +379,7 @@ BOOL FATFS_LoadHeader( void )
// set id depends on game_code and seed to use (or all?)
AESi_InitKeysForApp((u8*)rh->s.game_code);
AESi_RecvSeed();
AESi_RecvSeed( rh->s.developer_encrypt );
return TRUE;
}
@ -443,14 +443,7 @@ static u32 FATFSi_SetupAES( u32 offset, u32 size )
size = aes_end - offset;
}
AESi_WaitKey();
if (rh->s.developer_encrypt)
{
AESi_LoadKey( AES_KEY_SLOT_C );
}
else
{
AESi_LoadKey( AES_KEY_SLOT_A );
}
AESi_LoadKey( AES_KEY_SLOT_A );
FATFS_EnableAES( FATFSi_GetCounter( offset ) );
}
else

View File

@ -155,14 +155,7 @@ static u32 GetTransferSize( u32 offset, u32 size )
{
size = aes_end - offset;
}
if (rh->s.developer_encrypt)
{
AESi_LoadKey( AES_KEY_SLOT_C );
}
else
{
AESi_LoadKey( AES_KEY_SLOT_A );
}
AESi_LoadKey( AES_KEY_SLOT_A );
EnableAes( offset );
}
else

View File

@ -33,7 +33,7 @@
PRINT_MEMORY_ADDR SPrintfを行います()
FINALROM版でもコードが残るので注意してください
*/
#define PRINT_MEMORY_ADDR 0x02000400
#define PRINT_MEMORY_ADDR 0x02000600
#ifdef PROFILE_ENABLE
@ -57,9 +57,8 @@ static u8 step = 0x80;
#ifdef PRINT_MEMORY_ADDR
static char* debugPtr = (char*)PRINT_MEMORY_ADDR;
#undef OS_TPrintf
#define OS_TPrintf(...) (debugPtr = (char*)((u32)(debugPtr + STD_TSPrintf(debugPtr, __VA_ARGS__) + 0xf) & ~0xf))
#undef OS_Panic
#define OS_Panic(...) (OS_TPrintf(__VA_ARGS__), OS_Terminate())
//#define OS_TPrintf(...) (debugPtr = (char*)((u32)(debugPtr + STD_TSPrintf(debugPtr, __VA_ARGS__) + 0xf) & ~0xf))
#define OS_TPrintf(...) (debugPtr += STD_TSPrintf(debugPtr, __VA_ARGS__))
#endif
#define THREAD_PRIO_FATFS 8
@ -67,6 +66,8 @@ static char* debugPtr = (char*)PRINT_MEMORY_ADDR;
extern void* SDNandContext; /* NAND初期化パラメータ */
static ROM_Header* const rh= (ROM_Header*)HW_TWL_ROM_HEADER_BUF;
/***************************************************************
PreInit
@ -216,7 +217,7 @@ SetDebugLED(0x02);
PM_BackLightOn( FALSE );
AESi_InitKeysFIRM();
AESi_RecvSeed();
AESi_RecvSeed( rh->s.developer_encrypt );
// 8: after AESi_RecvSeed
PUSH_PROFILE();

View File

@ -53,7 +53,7 @@ static SVCSignHeapContext acPool;
PRINT_MEMORY_ADDR SPrintfを行います()
FINALROM版でもコードが残るので注意してください
*/
#define PRINT_MEMORY_ADDR 0x02000000
#define PRINT_MEMORY_ADDR 0x02000200
//#ifdef SDK_FINALROM // FINALROMで無効化
//#undef PROFILE_ENABLE
@ -71,10 +71,10 @@ u32 pf_cnt = 0;
#ifdef PRINT_MEMORY_ADDR
static char* debugPtr = (char*)PRINT_MEMORY_ADDR;
#undef OS_TPrintf
#define OS_TPrintf(...) (debugPtr = (char*)((u32)(debugPtr + STD_TSPrintf(debugPtr, __VA_ARGS__) + 0xf) & ~0xf))
#undef OS_Panic
#define OS_Panic(...) (OS_TPrintf(__VA_ARGS__), OS_Terminate())
//#define OS_TPrintf(...) (debugPtr = (char*)((u32)(debugPtr + STD_TSPrintf(debugPtr, __VA_ARGS__) + 0xf) & ~0xf))
#define OS_TPrintf(...) (debugPtr += STD_TSPrintf(debugPtr, __VA_ARGS__))
#endif
/***************************************************************
PreInit

View File

@ -34,7 +34,7 @@
PRINT_MEMORY_ADDR SPrintfを行います()
FINALROM版でもコードが残るので注意してください
*/
#define PRINT_MEMORY_ADDR 0x02000400
#define PRINT_MEMORY_ADDR 0x02000600
#ifdef PROFILE_ENABLE
@ -59,8 +59,6 @@ static u8 step = 0x80;
static char* debugPtr = (char*)PRINT_MEMORY_ADDR;
#undef OS_TPrintf
#define OS_TPrintf(...) (debugPtr = (char*)((u32)(debugPtr + STD_TSPrintf(debugPtr, __VA_ARGS__) + 0xf) & ~0xf))
#undef OS_Panic
#define OS_Panic(...) (OS_TPrintf(__VA_ARGS__), OS_Terminate())
#endif
#define THREAD_PRIO_FATFS 8
@ -68,6 +66,8 @@ static char* debugPtr = (char*)PRINT_MEMORY_ADDR;
extern void* SDNandContext; /* NAND初期化パラメータ */
static ROM_Header* const rh= (ROM_Header*)HW_TWL_ROM_HEADER_BUF;
/***************************************************************
PreInit
@ -194,7 +194,7 @@ SetDebugLED(0x02);
PM_BackLightOn( FALSE );
AESi_InitKeysFIRM();
AESi_RecvSeed();
AESi_RecvSeed( rh->s.developer_encrypt );
// 8: after AESi_RecvSeed
PUSH_PROFILE();

View File

@ -54,7 +54,7 @@ static SVCSignHeapContext acPool;
PRINT_MEMORY_ADDR SPrintfを行います()
FINALROM版でもコードが残るので注意してください
*/
#define PRINT_MEMORY_ADDR 0x02000000
#define PRINT_MEMORY_ADDR 0x02000200
//#ifdef SDK_FINALROM // FINALROMで無効化
//#undef PROFILE_ENABLE
@ -73,9 +73,8 @@ u32 pf_cnt = 0;
static char* debugPtr = (char*)PRINT_MEMORY_ADDR;
#undef OS_TPrintf
#define OS_TPrintf(...) (debugPtr = (char*)((u32)(debugPtr + STD_TSPrintf(debugPtr, __VA_ARGS__) + 0xf) & ~0xf))
#undef OS_Panic
#define OS_Panic(...) (OS_TPrintf(__VA_ARGS__), OS_Terminate())
#endif
/***************************************************************
PreInit

View File

@ -83,11 +83,11 @@ static inline void AESi_InitKeysFIRM( void )
Description: set SEED/KEY from ARM9 via PXI.
Arguments: None
Arguments: developer_encrypt set TRUE if received key is using as direct key
Returns: None
*---------------------------------------------------------------------------*/
void AESi_RecvSeed( void );
void AESi_RecvSeed( BOOL developer_encrypt );
#ifdef __cplusplus
} /* extern "C" */