From 81409369bc4b5401fb00954e9ed5d9c8b8e379ef Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Wed, 24 Sep 2014 13:46:38 +0000 Subject: [PATCH] measure keygen time in test --- .../java/src/net/i2p/crypto/KeyGenerator.java | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/core/java/src/net/i2p/crypto/KeyGenerator.java b/core/java/src/net/i2p/crypto/KeyGenerator.java index c23a215232..5e86e2719d 100644 --- a/core/java/src/net/i2p/crypto/KeyGenerator.java +++ b/core/java/src/net/i2p/crypto/KeyGenerator.java @@ -347,10 +347,10 @@ public class KeyGenerator { try { Thread.sleep(1000); } catch (InterruptedException ie) {} int runs = 200; // warmup for (int j = 0; j < 2; j++) { - for (int i = 0; i <= 100; i++) { - SigType type = SigType.getByCode(i); - if (type == null) - break; + for (SigType type : SigType.values()) { + if (!type.isAvailable()) { + System.out.println("Skipping unavailable: " + type); + } try { System.out.println("Testing " + type); testSig(type, runs); @@ -365,9 +365,19 @@ public class KeyGenerator { private static void testSig(SigType type, int runs) throws GeneralSecurityException { byte src[] = new byte[512]; + double gtime = 0; long stime = 0; long vtime = 0; - SimpleDataStructure keys[] = KeyGenerator.getInstance().generateSigningKeys(type); + SimpleDataStructure keys[] = null; + long st = System.nanoTime(); + // RSA super slow, limit to 5 + int genruns = (type.getBaseAlgorithm() == SigAlgo.RSA) ? Math.min(runs, 5) : runs; + for (int i = 0; i < genruns; i++) { + keys = KeyGenerator.getInstance().generateSigningKeys(type); + } + long en = System.nanoTime(); + gtime = ((en - st) / (1000*1000d)) / genruns; + System.out.println(type + " key gen " + genruns + " times: " + gtime + " ms each"); SigningPublicKey pubkey = (SigningPublicKey) keys[0]; SigningPrivateKey privkey = (SigningPrivateKey) keys[1]; SigningPublicKey pubkey2 = getSigningPublicKey(privkey); -- GitLab