private static async Task PiecewiseDecryptionAsync(string inFile, string outFile, IUbiqCredentials ubiqCredentials) { using (var cipherStream = new FileStream(inFile, FileMode.Open)) { using (var plainStream = new FileStream(outFile, FileMode.Create)) { using (var ubiqDecrypt = new UbiqDecrypt(ubiqCredentials)) { var plainBytes = ubiqDecrypt.Begin(); plainStream.Write(plainBytes, 0, plainBytes.Length); var cipherBytes = new byte[0x20000]; int bytesRead = 0; while ((bytesRead = cipherStream.Read(cipherBytes, 0, cipherBytes.Length)) > 0) { plainBytes = await ubiqDecrypt.UpdateAsync(cipherBytes, 0, bytesRead); plainStream.Write(plainBytes, 0, plainBytes.Length); } plainBytes = ubiqDecrypt.End(); plainStream.Write(plainBytes, 0, plainBytes.Length); } } } }
private static async Task SimpleDecryptionAsync(string inFile, string outFile, IUbiqCredentials ubiqCredentials) { var cipherBytes = File.ReadAllBytes(inFile); var plainBytes = await UbiqDecrypt.DecryptAsync(ubiqCredentials, cipherBytes); File.WriteAllBytes(outFile, plainBytes); }