Exemplo n.º 1
0
        private IMemoryOwner <byte> ProcessEntry(PakEntry entry)
        {
            var data = entry.Read(SourceStream);

            if (entry.IsEncrypted)
            {
                if (_aesProvider is null)
                {
                    throw new PakEncryptedException("Pak file contains encrypted entries. AES encryption key is necessary for reading this asset.");
                }

                // decrypts data inplace
                _aesProvider.Decrypt(data.Memory);
            }
            return(entry.IsCompressed ? UnrealCompression.Decompress(data, entry) : data);
        }