Esempio n. 1
0
        public static double[] Run(ECDSAManaged ecdsa, int loop)
        {
            Stopwatch sw = new Stopwatch();

            byte[]   hash   = new byte[(ecdsa.KeySize >> 3)];
            double[] result = new double[2];
            _rng.GetBytes(hash);
            byte[] sign = ecdsa.SignHash(hash);
            sw.Reset(); sw.Start();
            for (int i = 0; i < loop; i++)
            {
                sign = ecdsa.SignHash(hash);
            }
            sw.Stop();
            result[0] = sw.Elapsed.TotalMilliseconds / (double)loop;

            bool signCheck = ecdsa.VerifyHash(hash, sign);

            sw.Reset(); sw.Start();
            for (int i = 0; i < loop; i++)
            {
                signCheck = ecdsa.VerifyHash(hash, sign);
            }
            sw.Stop();
            result[1] = sw.Elapsed.TotalMilliseconds / (double)loop;
            if (!signCheck)
            {
                result[1] = -result[1];
            }
            return(result);
        }
Esempio n. 2
0
		static double[] Run (ECDSAManaged ecdsa)
		{
			int loopA = 5, loopB = 5;
			double[] result = SpeedTest.Run (ecdsa, loopA);
			for (int i = 0; i < loopB; i++) {
				double[] temp = SpeedTest.Run (ecdsa, loopA);
				result[0] = Math.Min (result[0], temp[0]);
				result[1] = Math.Min (result[1], temp[1]);
			}
			return result;
		}
Esempio n. 3
0
        static double[] Run(ECDSAManaged ecdsa)
        {
            int loopA = 5, loopB = 5;

            double[] result = SpeedTest.Run(ecdsa, loopA);
            for (int i = 0; i < loopB; i++)
            {
                double[] temp = SpeedTest.Run(ecdsa, loopA);
                result[0] = Math.Min(result[0], temp[0]);
                result[1] = Math.Min(result[1], temp[1]);
            }
            return(result);
        }