internal void ApplyKey(HwAes aes, byte[] key) { for (int i = 0; i < aes.Key.Length + (key.Length * 3); i++) { aes.Key[i % aes.Key.Length] += key[i % key.Length]; aes.IV[i % aes.IV.Length] += key[(i + 2) % key.Length]; } }
static void Main(string[] args) { Test lel = new Test(); ulong um = lel.CalculateULong(1); if (um == 0) { return; } byte[] Key = new byte[] { 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5 }; byte[] Salt = new byte[] { 5, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1 }; byte[] encCode = new byte[0]; byte[] decCode = new byte[0]; WopEx.GenerateCryptoCode(123456, 100, ref encCode, ref decCode); WopEx wopEx = new WopEx(TestKey, TestSalt, TestIV, encCode, decCode, SecureSocketProtocol3.WopEncMode.GenerateNewAlgorithm, 1, true); Random rnd = new Random(12345678); long TotalData = (1000 * 1000) * 100; long TotalDone = 0; byte[] DataChunk = new byte[65535]; //rnd.NextBytes(DataChunk); Stopwatch SW = Stopwatch.StartNew(); //simple AES test HwAes AES = new HwAes(Key, new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, 256, CipherMode.CBC, PaddingMode.PKCS7); HwAes AES2 = new HwAes(Key, new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, 256, CipherMode.CBC, PaddingMode.PKCS7); while (true) { byte[] enc = AES.Encrypt(DataChunk, 0, DataChunk.Length); TotalDone += DataChunk.Length; if (SW.ElapsedMilliseconds >= 1000) { double speed = Math.Round((TotalDone / 1000D) / 1000D, 2); Console.WriteLine("Speed: " + speed + "MBps (" + Math.Round((((double)speed * 8F) / 1000), 2) + " Gbps)"); TotalDone = 0; SW = Stopwatch.StartNew(); } } Stopwatch TotalTimeSW = Stopwatch.StartNew(); double TempSpeed = 0; while (TotalDone < TotalData) { wopEx.Encrypt(DataChunk, 0, DataChunk.Length); //wopEx.Decrypt(DataChunk, 0, DataChunk.Length); TotalDone += DataChunk.Length; TempSpeed += DataChunk.Length; if (SW.ElapsedMilliseconds >= 1000) { double speed = Math.Round((TempSpeed / 1000D) / 1000D, 2); Console.WriteLine("Speed: " + speed + "MBps"); TempSpeed = 0; SW = Stopwatch.StartNew(); } } SW.Stop(); TotalTimeSW.Stop(); if (TempSpeed > 0) { double speeds = Math.Round((TempSpeed / 1000D) / 1000D, 2); Console.WriteLine("Speed: " + speeds + "MBps"); } Console.WriteLine("Done encrypting 100MB in " + TotalTimeSW.Elapsed.Seconds + " second(s)"); Console.ReadLine(); }