mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
AES鍵のファームによる変更 (NAND暗号化鍵も変更されます!)
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@988 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
926b0278d0
commit
2521a7e48c
@ -15,6 +15,7 @@
|
||||
$Author$
|
||||
*---------------------------------------------------------------------------*/
|
||||
|
||||
#include <firm/os.h>
|
||||
#include <firm/aes.h>
|
||||
#include <firm/pxi.h>
|
||||
|
||||
@ -23,6 +24,25 @@
|
||||
#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))
|
||||
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: AESi_PreInitKeys
|
||||
|
||||
Description: reset IDs preset by bootrom.
|
||||
you SHOULD NOT touch any ID registers after this call.
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: None
|
||||
*---------------------------------------------------------------------------*/
|
||||
void AESi_PreInitKeys( void )
|
||||
{
|
||||
AES_WaitKey();
|
||||
|
||||
reg_AES_AES_ID_B2 = reg_OS_CHIP_ID1 ^ *(const u32*)&OSi_GetFromFirmAddr()->aes_key[2][0];
|
||||
reg_AES_AES_ID_D1 = reg_OS_CHIP_ID0 ^ *(const u32*)&OSi_GetFromFirmAddr()->aes_key[2][8];
|
||||
reg_AES_AES_ID_D2 = reg_OS_CHIP_ID1 ^ *(const u32*)&OSi_GetFromFirmAddr()->aes_key[2][4];
|
||||
}
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: AESi_InitKeysForApp
|
||||
|
||||
|
||||
@ -79,7 +79,8 @@ void OS_BootWithRomHeaderFromFIRM( ROM_Header* rom_header )
|
||||
mem_list[i++] = stack_bottom - code_buf_end;
|
||||
}
|
||||
/* 一部鍵バッファのクリア (鍵管理.xls参照) */
|
||||
// 該当無し
|
||||
mem_list[i++] = (u32)OSi_GetFromFirmAddr()->aes_key[2];
|
||||
mem_list[i++] = ACS_AES_LEN;
|
||||
#endif // SDK_ARM7
|
||||
mem_list[i++] = NULL;
|
||||
// copy forward
|
||||
|
||||
@ -122,6 +122,15 @@ static void PreInit(void)
|
||||
{
|
||||
OS_Terminate();
|
||||
}
|
||||
/*
|
||||
AES関連 (NAND暗号化の鍵変更を含む)
|
||||
*/
|
||||
#ifndef SDK_FINALROM
|
||||
if ( !*(u8*)HW_TWL_RED_LAUNCHER_VER )
|
||||
#endif
|
||||
{
|
||||
AESi_PreInitKeys();
|
||||
}
|
||||
/*
|
||||
リセットパラメータ(1バイト)を共有領域(1バイト)にコピー
|
||||
*/
|
||||
|
||||
@ -122,6 +122,15 @@ static void PreInit(void)
|
||||
{
|
||||
OS_Terminate();
|
||||
}
|
||||
/*
|
||||
AES関連 (NAND暗号化の鍵変更を含む)
|
||||
*/
|
||||
#ifndef SDK_FINALROM
|
||||
if ( !*(u8*)HW_TWL_RED_LAUNCHER_VER )
|
||||
#endif
|
||||
{
|
||||
AESi_PreInitKeys();
|
||||
}
|
||||
/*
|
||||
リセットパラメータ(1バイト)を共有領域(1バイト)にコピー
|
||||
*/
|
||||
|
||||
BIN
docs/鍵管理.xls
BIN
docs/鍵管理.xls
Binary file not shown.
@ -27,6 +27,18 @@ extern "C" {
|
||||
/*---------------------------------------------------------------------------*
|
||||
ŠÖ<EFBFBD>”’è‹`
|
||||
*---------------------------------------------------------------------------*/
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: AESi_PreInitKeys
|
||||
|
||||
Description: reset IDs preset by bootrom.
|
||||
you SHOULD NOT touch any ID registers after this call.
|
||||
|
||||
Arguments: None
|
||||
|
||||
Returns: None
|
||||
*---------------------------------------------------------------------------*/
|
||||
void AESi_PreInitKeys( void );
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
Name: AESi_InitKeysForApp
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user