#!/bin/bash
# dependencies
# https://github.com/nicoboss/nsz
# https://github.com/SciresM/hactool
# prod.keys
# uncompress nsz
cp "Organ Trail [NSZ]/Organ Trail Complete Edition [0100F4C019836000][v0] (0.29 GB).nsz" tmp.nsz
python nsz.py -D --rm-source tmp.nsz &> /dev/null
# extract nsp
hactool -t pfs0 --outdir out tmp.nsp > /dev/null && rm tmp.nsp
# delete common certificate
rm out/0100f4c0198360000000000000000010.cert
# write keys
key_enc=$(xxd -s 0x180 -l 0x10 -ps -u out/0100f4c0198360000000000000000010.tik)
printf "$key_enc" | xxd -r -p > out/0100f4c0198360000000000000000010.enctitlekey.tik
key_dec=$(hactool -k prod.keys --titlekey "$key_enc" out/d128695f38e96d67ecada3a93be8984e.nca 2> /dev/null | sed '/Decrypted/!d;s/^.*\s//')
printf "$key_dec" | xxd -r -p > out/0100f4c0198360000000000000000010.dectitlekey.tik
# calculate hashes
sha256sum -b out/* | cut -c 1-65,71-
# 27d7cd47c15b7d0d4629372afe98638bc2470ca912fa936c43d6c2e667b1e577 0100f4c0198360000000000000000010.dectitlekey.tik
# c6dfde9171331fdf714f38f328a31c0a0e27b64c6a1b47ef39ef5c83612bcabd 0100f4c0198360000000000000000010.enctitlekey.tik
# 6829c4b06542f4089e22b0947e2cbdfd6833ffe2a44915b62fd442729d520257 0100f4c0198360000000000000000010.tik
# 2f75a202a1e2a8f3a301356f8c3ab3913d600f3b82124c140ea5b4d7603a9e07 2f75a202a1e2a8f3a301356f8c3ab391.nca
# 71104df185f63a3fc4d4ff5c3618aff79f58878d408fd46f8cdfa8519ef80a3c 71104df185f63a3fc4d4ff5c3618aff7.nca
# ba6321f6658f8484b15835131e6e55cf105436fe11a409f3a2919f06f43f4a94 ba6321f6658f8484b15835131e6e55cf.cnmt.nca
# d128695f38e96d67ecada3a93be8984e83f247bb6c9deb69de6ba75845362f43 d128695f38e96d67ecada3a93be8984e.nca
# rename directory
mv out "Organ Trail Complete Edition (Unknown)"