If someone wants to encrypt and decrypt a package file, the package file needs to be able to be loaded from memory, so there’s no need to save the decrypted version to a file first.
VectorBuffer could be used:
Open a file, use VectorBuffer::SetData(Deserializer&) to read it into a VectorBuffer, use VectorBuffer::GetModifiableData() to work on the VectorBuffer, and use the VectorBuffer to open a package from memory.
Protecting assets is required by the license of some asset sellers.