1
0
Fork 0
mirror of https://github.com/DarkMatterCore/nxdumptool.git synced 2024-11-26 04:02:11 +00:00
nxdumptool/source
Pablo Curiel f79680184d Runtime key derivation with hardcoded key sources
* aes: add aes128EcbCrypt() as a one-shot function to perform AES-128-ECB crypto. The rest of the codebase now calls this function whenever suitable.

* fs_ext: add const keyword to IPC input structs wherever suitable.

* key_sources: add hardcoded master key vectors (prod, dev); master KEK sources (Erista, Mariko); master key source; ticket common key source; SMC key type sources; SMC seal key masks; AES key generation source; NCA header KEK source; NCA header key source and NCA KAEK sources. Also fixed the hardcoded gamecard CardInfo key source for dev units (it was previously generated using retail keydata, my bad).

* keys: remove keysGetNcaMainSignatureModulus(); remove keysDecryptNcaKeyAreaEntry(); repurpose keyset struct to only hold keys that can actually be used for the current hardware type; remove KeysGameCardKeyset; remove keysIsXXModulusYYMandatory() helpers; remove keysRetrieveKeysFromProgramMemory(); remove keysDeriveSealedNcaKeyAreaEncryptionKeys(); add keysDeriveMasterKeys() and keysDerivePerGenerationKeys(); rename keysDeriveGameCardKeys() -> keysDeriveGcCardInfoKey(); add small reimplementations of GenerateAesKek, LoadAesKey and GenerateAesKey; add keysLoadAesKeyFromAesKek() and keysGenerateAesKeyFromAesKek() wrappers. Furthermore, master key derivation is now carried out manually using hardcoded key sources and the last known master key, which is loaded from the Lockpick_RCM keys file -- if the last known master key is unavailable, the key derivation algorithm will then fallback to TSEC root key / Mariko KEK based key derivation, depending on the hardware type.

* nca: add hardcoded NCA man signature moduli (prod, dev); merge ncaDecryptKeyArea() and ncaEncryptKeyArea() into ncaKeyAreaCrypt().

* nxdt_utils: add utilsIsMarikoUnit(); remove _utilsAppletModeCheck(); rename utilsAppletModeCheck() -> utilsIsAppletMode().

* services: remove spl:mig dependency (yay).

* smc: add SmcKeyType enum; add SmcSealKey enum; add SmcGenerateAesKekOption struct; add smcPrepareGenerateAesKekOption().
2023-04-08 13:38:28 +02:00
..
core Runtime key derivation with hardcoded key sources 2023-04-08 13:38:28 +02:00
fatfs Update dependencies. 2023-02-24 21:32:58 +01:00
about_tab.cpp Even (more) changes. 2022-07-28 04:13:48 +02:00
error_frame.cpp Codebase cleanup. 2022-07-05 03:04:28 +02:00
exception_handler.cpp More changes. 2022-07-28 00:53:52 +02:00
gamecard_tab.cpp Many small changes (sorry, I need to push these). 2022-09-12 20:19:10 +02:00
layered_error_frame.cpp More changes. 2022-07-28 00:53:52 +02:00
main.cpp Runtime key derivation with hardcoded key sources 2023-04-08 13:38:28 +02:00
options_tab.cpp Many small changes (sorry, I need to push these). 2022-09-12 20:19:10 +02:00
root_view.cpp Runtime key derivation with hardcoded key sources 2023-04-08 13:38:28 +02:00
tasks.cpp Many small changes (sorry, I need to push these). 2022-09-12 20:19:10 +02:00
titles_tab.cpp Many small changes (sorry, I need to push these). 2022-09-12 20:19:10 +02:00