mirror of
https://github.com/DarkMatterCore/nxdumptool.git
synced 2025-01-26 03:03:12 -03:00
f526d4e6f4
* Implemented RSA-2048-PSS + SHA256 signature verification. * Refactored RSA-2048-OAEP decryption steps to use mbedtls function calls. * Implemented NCA header main signature verification. * Replaced Björn Samuelsson's CRC32 algorithm with the hardware accelerated CRC32 checksum calculation from libnx (latest commit with support for calculation in blocks).
80 lines
3.4 KiB
Text
80 lines
3.4 KiB
Text
todo:
|
|
|
|
log: verbosity levels
|
|
log: nxlink output for advanced users
|
|
|
|
nca: support for compressed fs sections?
|
|
nca: support for sparse sections?
|
|
|
|
usb: improve usbIsReady
|
|
|
|
title: orphan system titles
|
|
title: come up with a better way to handle gamecard titles
|
|
title: more functions for title lookup? (filters, patches / aoc, etc.)
|
|
title: more functions for content lookup? (based on id)
|
|
title: parse the update partition from gamecards (if available) to generate ncmcontentinfo data for all update titles
|
|
|
|
gamecard: functions to display filelist
|
|
gamecard: check cardinfo's lafw version
|
|
|
|
pfs0: functions to display filelist
|
|
|
|
romfs: functions to display filelist
|
|
|
|
bktr: functions to display filelist (wrappers for romfs functions tbh)
|
|
|
|
others: config load/save using json
|
|
others: dump verification via nswdb / no-intro
|
|
others: update application feature
|
|
others: fatfs browser for emmc partitions
|
|
|
|
reminder:
|
|
|
|
list of top level functions designed to alter nca data in order of (possible) usage:
|
|
|
|
out of dump loop:
|
|
* ncaSetDownloadDistributionType (instead of always using it like legacy, offer it as an option)
|
|
|
|
* ncaRemoveTitlekeyCrypto (can be used with digital titles + game updates in gamecards)
|
|
|
|
* programInfoGenerateNcaPatch (Program)
|
|
* calls npdmGenerateNcaPatch
|
|
* calls pfsGenerateEntryPatch
|
|
* calls ncaGenerateHierarchicalSha256Patch
|
|
|
|
* nacpGenerateNcaPatch (Control)
|
|
* calls romfsGenerateFileEntryPatch
|
|
* calls ncaGenerateHierarchicalSha256Patch / ncaGenerateHierarchicalIntegrityPatch
|
|
|
|
* ncaEncryptHeader (doesn't modify anything per se, but it's used to generate new encrypted header data if needed)
|
|
|
|
inside dump loop:
|
|
* cnmtGenerateNcaPatch (Meta)
|
|
* calls pfsGenerateEntryPatch
|
|
* calls ncaGenerateHierarchicalSha256Patch
|
|
* returns true if cnmt needs no patching
|
|
* demands an immediate ncaEncryptHeader call
|
|
|
|
* ncaIsHeaderDirty (doesn't modify anything per se, but it's used to check if any of the functions above has been used, basically - and by extension, if the functions below need to be used)
|
|
|
|
* ncaWriteEncryptedHeaderDataToMemoryBuffer (write encrypted nca header data)
|
|
|
|
* cnmtWriteNcaPatch (writes cnmt patch)
|
|
* calls pfsWriteEntryPatchToMemoryBuffer
|
|
* calls ncaWriteHierarchicalSha256PatchToMemoryBuffer
|
|
|
|
* programInfoWriteNcaPatch (writes ndpm patch)
|
|
* calls npdmWriteNcaPatch
|
|
* calls pfsWriteEntryPatchToMemoryBuffer
|
|
* calls ncaWriteHierarchicalSha256PatchToMemoryBuffer
|
|
|
|
* nacpWriteNcaPatch (writes nacp patch)
|
|
* calls romfsWriteFileEntryPatchToMemoryBuffer
|
|
* calls ncaWriteHierarchicalSha256PatchToMemoryBuffer / ncaWriteHierarchicalIntegrityPatchToMemoryBuffer
|
|
|
|
* cnmtUpdateContentInfo (used to update content entry info in the raw cnmt copy after dumping each one - ignores the current content if its a meta nca)
|
|
|
|
minor steps to take into account:
|
|
|
|
* check if rights_id_available == true and titlekey_retrieved == false (preload handling)
|
|
* actually, just inform the user about it - this is being handled
|