diff options
author | Arisotura <thetotalworm@gmail.com> | 2021-08-30 20:26:49 +0200 |
---|---|---|
committer | Arisotura <thetotalworm@gmail.com> | 2021-08-30 20:26:49 +0200 |
commit | 523552a92d16fb1f3a367cd2f7ee382bb09a0772 (patch) | |
tree | 8e7ed32de0eb6bf9c8e741be431556cf736378d0 /src/DSi_AES.cpp | |
parent | b84155e8913b837a5b82688165a4029b38c8c055 (diff) |
actually make DSi-mode direct boot work to some extent
Diffstat (limited to 'src/DSi_AES.cpp')
-rw-r--r-- | src/DSi_AES.cpp | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/src/DSi_AES.cpp b/src/DSi_AES.cpp index c2312fa..02e4f1c 100644 --- a/src/DSi_AES.cpp +++ b/src/DSi_AES.cpp @@ -576,63 +576,4 @@ void WriteKeyY(u32 slot, u32 offset, u32 val, u32 mask) } } - -// utility - -void GetModcryptKey(u8* romheader, u8* key) -{ - if ((romheader[0x01C] & 0x04) || (romheader[0x1BF] & 0x80)) - { - // dev key - memcpy(key, &romheader[0x000], 16); - return; - } - - /*u8 oldkeys[16*3]; - memcpy(&oldkeys[16*0], KeyX[0], 16); - memcpy(&oldkeys[16*1], KeyY[0], 16); - memcpy(&oldkeys[16*2], KeyNormal[0], 16); - - KeyX[0][8] = romheader[0x00C]; - KeyX[0][9] = romheader[0x00D]; - KeyX[0][10] = romheader[0x00E]; - KeyX[0][11] = romheader[0x00F]; - KeyX[0][12] = romheader[0x00F]; - KeyX[0][13] = romheader[0x00E]; - KeyX[0][14] = romheader[0x00D]; - KeyX[0][15] = romheader[0x00C]; - - memcpy(KeyY[0], &romheader[0x350], 16); - - DeriveNormalKey(0); - memcpy(key, KeyNormal[0], 16); - - memcpy(KeyX[0], &oldkeys[16*0], 16); - memcpy(KeyY[0], &oldkeys[16*1], 16); - memcpy(KeyNormal[0], &oldkeys[16*2], 16);*/ -} - -void ApplyModcrypt(u8* data, u32 len, u8* key, u8* iv) -{ - u8 key_rev[16], iv_rev[16]; - u8 data_rev[16]; - u8 oldkeys[16*2]; - memcpy(&oldkeys[16*0], Ctx.RoundKey, 16); - memcpy(&oldkeys[16*1], Ctx.Iv, 16); - - Swap16(key_rev, key); - Swap16(iv_rev, iv); - AES_init_ctx_iv(&Ctx, key_rev, iv_rev); - - for (u32 i = 0; i < len; i += 16) - { - Swap16(data_rev, &data[i]); - AES_CTR_xcrypt_buffer(&Ctx, data_rev, 16); - Swap16(&data[i], data_rev); - } - - memcpy(Ctx.RoundKey, &oldkeys[16*0], 16); - memcpy(Ctx.Iv, &oldkeys[16*1], 16); -} - } |