just wanted to report a small, very minor error with the NCSD decryptor:
When decrypting an NCSD file, and it has an ExeFS that uses the 7x encryption method (type 0x01 or 0x0A)
the size of the file in the exefs doesn't get rounded up to the next 0x200 byte block boundary.
(it gets aligned to a 16 byte boundary by the AES engine as it works with multiples of 16 bytes)
This just leaves a small amount of still encrypted data after the end of the file
(which is harmless) which continues until the end of the 0x200 byte sector.
it probably should all be 00's like it is when decrypting exeFS that use the 'standard' crypto-type 0x00.
In the file: /source/decryptor/game.c @ line #379 and line #1082.
https://github.com/d0k3/Decrypt9WIP/blob/master/source/decryptor/game.c#L379
https://github.com/d0k3/Decrypt9WIP/blob/master/source/decryptor/game.c#L1082
On these lines above - the value needs to get rounded up to the next 0x200 bytes to fill the sector.
Code:
u32 size_exefs_file = getle32(buffer + (i*0x10) + 0xC);