void LoadFromStreamImpl() { var path = SamplePathUtility.GetAssetBundlePath(CurrentCompressType, IsEncrypt); GC.Collect(); Profiler.BeginSample($" >>> LoadFromStream {CurrentCompressType}, {IsEncrypt}"); if (IsEncrypt) { using (var reader = new FileStream(path, FileMode.Open)) using (var cryptStream = new SeekableAesStream(reader, EncryptHelper.Password, EncryptHelper.UniqueSalt)) { var bundle = AssetBundle.LoadFromStream(cryptStream); ApplyImages(bundle); } } else { using (var reader = new FileStream(path, FileMode.Open)) { var bundle = AssetBundle.LoadFromStream(reader); ApplyImages(bundle); } } Profiler.EndSample(); }
public static void ExportEncryptBinary(byte[] bytes, string exportPath) { using (var baseStream = File.Create(exportPath)) using (var cryptStream = new SeekableAesStream(baseStream, Password, UniqueSalt)) { cryptStream.Write(bytes, 0, bytes.Length); } }
public static byte[] DecryptBinary(string decryptFilePath) { using (var baseStream = new FileStream(decryptFilePath, FileMode.Open, FileAccess.ReadWrite)) using (var cryptStream = new SeekableAesStream(baseStream, Password, UniqueSalt)) { var fileInfo = new FileInfo(decryptFilePath); var decryptedBuffer = new byte[fileInfo.Length]; cryptStream.Read(decryptedBuffer, 0, (int)fileInfo.Length); return(decryptedBuffer); } }