Encryption/.pak signing broken?

Haven’t had any issues with encryption/pak signing in 4.19, but as soon as I updated to 4.20 this issue arose.

Basically, despite the project settings being the same, it neither encrypts the .pak index or signs the .pak file. This results in the game not opening. When attempting to open it, I am greeted with the message box of:

LowLevelFatalError [File:Unknown] [Line: 46]
Couldn't find pak signature file

And indeed, the .sig file it’s talking about doesn’t exist. Despite the configurations matching up. Weird.

I decided to take a look into the build log, and two lines stood out to me:

ProjectParams.ValidateAndLog: ShortProjectName=DungeonsAndHeroes
ProjectParams.ValidateAndLog: SignedPak=False // <<<<<
ProjectParams.ValidateAndLog: SignPak=
ProjectParams.ValidateAndLog: SkipCook=False
ProjectParams.ValidateAndLog: SkipCookOnTheFly=False
ProjectParams.ValidateAndLog: SkipPak=False
ProcessResult.StdOut:   LogPakFile: Display: 20 files requested encryption, but no AES key was supplied! Encryption was skipped for these files

I double checked my DefaultCrypto.ini and even cleared & regenerated the keys, but to no avail. I’ve deleted all binary/build/intermediate/etc. folders, but nothing. Heck, I recompiled UE4 from source - twice - but nothing. Now, I seek help on here. Does anyone know what’s going on?

Manually rebuilding UnrealPak has done the trick!

For anyone else facing this issue and interested in finding out what exactly is happening:

In 4.20, UE4 apparently added a new way of transmitting the encryption keys from the .ini to UnrealPak. Basically, they get temporarily stored in a Crypto.json file, hidden in the depths of your “Saved” folder.

This is passed via command line to UnrealPak using the -cryptokeys= parameter, which the 4.19 UnrealPak didn’t understand (duh). Apparently, rebuilding the entire solution in Visual Studio, does in fact not rebuild the individual programs of UE4. The more you know!

At this point, I’d like to stress that I would’ve been completely lost and unable to fix this issue, had it not been for direct access to the engine’s source code. BIG kudos to Epic for allowing us to dabble in the engine’s inner workings!!

That did the trick for me too, thanks!