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); }
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; }
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); }