aboutsummaryrefslogtreecommitdiff
path: root/src/DSi_AES.cpp
diff options
context:
space:
mode:
authorArisotura <thetotalworm@gmail.com>2021-08-30 20:26:49 +0200
committerArisotura <thetotalworm@gmail.com>2021-08-30 20:26:49 +0200
commit523552a92d16fb1f3a367cd2f7ee382bb09a0772 (patch)
tree8e7ed32de0eb6bf9c8e741be431556cf736378d0 /src/DSi_AES.cpp
parentb84155e8913b837a5b82688165a4029b38c8c055 (diff)
actually make DSi-mode direct boot work to some extent
Diffstat (limited to 'src/DSi_AES.cpp')
-rw-r--r--src/DSi_AES.cpp59
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);
-}
-
}