Пример #1
0
        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();
        }
Пример #2
0
 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];
     }
 }