mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
AESの鍵を直接利用する場合も鍵Aを使うように変更
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@399 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
09f3649d7a
commit
8f82386277
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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" */
|
||||
|
||||
Loading…
Reference in New Issue
Block a user