public async Task WorkWithStreamTestSmallAsync()
{
var progressEncrypt = new Progress<StreamCryptorTaskAsyncProgress>();
var progressDecrypt = new Progress<StreamCryptorTaskAsyncProgress>();
progressEncrypt.ProgressChanged +=
(s, e) => { Console.WriteLine("Encrypting: " + e.ProgressPercentage + "%\n"); };
progressDecrypt.ProgressChanged +=
(s, e) => { Console.WriteLine("Decrypting: " + e.ProgressPercentage + "%\n"); };
const string privateKey = "31d9040b00a170532929b37db0afcb989e4175f96e5f9667ee8cbf5706679a71";
const string publicKey = "6d0deec730700f9f60687a4e6e8755157ca22ea2f3815b9bf14b1fe9ae6a0b4d";
var outputDirectory = Path.Combine(TestContext.CurrentContext.TestDirectory, "Testfiles", "decrypted");
var keyPair = new KeyPair(Utilities.HexToBinary(publicKey), Utilities.HexToBinary(privateKey));
var TESTFILE_RAW = Path.Combine(TestContext.CurrentContext.TestDirectory, "Testfiles", "verysmallfile.dat");
const long TESTFILE_SIZE_KB = 1;
Console.Write("Generating {0} KB testfile . . .\n", TESTFILE_SIZE_KB);
var fs = new FileStream(TESTFILE_RAW, FileMode.CreateNew);
fs.Seek(TESTFILE_SIZE_KB*1024, SeekOrigin.Begin);
fs.WriteByte(0);
fs.Close();
var data = File.ReadAllBytes(TESTFILE_RAW);
var stream = new MemoryStream(data);
Console.Write("Encrypting MemoryStream . . .\n");
var encryptedFile =
await
Cryptor.EncrypMemoryStreamAsync(keyPair.PrivateKey, keyPair.PublicKey,
Utilities.HexToBinary(publicKey), TESTFILE_RAW, stream, outputDirectory, ".test", true, progressEncrypt)
.ConfigureAwait(false);
Console.Write("Decrypting testfile (" + encryptedFile + ") . . .\n");
var decryptedFileObject =
await
Cryptor.DecryptFileWithStreamAsync(keyPair.PrivateKey, Path.Combine(outputDirectory, encryptedFile),
progressDecrypt).ConfigureAwait(false);
Console.Write("Get checksum of testfiles . . .\n");
Assert.AreEqual(Utils.GetChecksum(TESTFILE_RAW), Utils.GetChecksum(decryptedFileObject.FileData));
//clear garbage
File.Delete(Path.Combine(TestContext.CurrentContext.TestDirectory, outputDirectory, encryptedFile));
File.Delete(TESTFILE_RAW);
}