From 78cc74786110c656960a64d90a69bc2247e3e670 Mon Sep 17 00:00:00 2001 From: d0k3 Date: Sat, 9 Sep 2017 13:07:29 +0200 Subject: [PATCH] Fix: Also take over CIA meta data on en-/decryption ... thanks, Rai-chan! --- source/utils/gameutil.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/source/utils/gameutil.c b/source/utils/gameutil.c index 4763270..a845a5d 100644 --- a/source/utils/gameutil.c +++ b/source/utils/gameutil.c @@ -843,6 +843,14 @@ u32 CryptCiaFile(const char* orig, const char* dest, u16 crypto) { next_offset += size; } + // if not inplace: take over CIA metadata + if (!inplace && (info.size_meta == CIA_META_SIZE)) { + CiaMeta* meta = (CiaMeta*) (void*) (cia + 1); + if ((fvx_qread(orig, meta, info.offset_meta, CIA_META_SIZE, NULL) != FR_OK) || + (fvx_qwrite(dest, meta, info.offset_meta, CIA_META_SIZE, NULL) != FR_OK)) + return 1; + } + // fix TMD hashes, write CIA stub to destination if ((FixTmdHashes(&(cia->tmd)) != 0) || (WriteCiaStub(cia, dest) != 0)) return 1;