From aacdba1bc71744ce6cbd269e1d9969a8b6ae7326 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Fri, 5 Dec 2014 15:32:34 +0000 Subject: [PATCH] KeyGenerator: main() test improvements Allow specification of sig types on command line --- .../java/src/net/i2p/crypto/KeyGenerator.java | 31 +++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/core/java/src/net/i2p/crypto/KeyGenerator.java b/core/java/src/net/i2p/crypto/KeyGenerator.java index 5e86e2719d..aa6164e305 100644 --- a/core/java/src/net/i2p/crypto/KeyGenerator.java +++ b/core/java/src/net/i2p/crypto/KeyGenerator.java @@ -26,6 +26,9 @@ import java.security.spec.ECPublicKeySpec; import java.security.spec.EllipticCurve; import java.security.spec.RSAKeyGenParameterSpec; import java.security.spec.RSAPublicKeySpec; +import java.util.Arrays; +import java.util.ArrayList; +import java.util.Collection; import net.i2p.I2PAppContext; import net.i2p.crypto.eddsa.EdDSAPrivateKey; @@ -334,6 +337,9 @@ public class KeyGenerator { } } + /** + * Usage: KeyGenerator [sigtype...] + */ public static void main(String args[]) { try { main2(args); @@ -342,14 +348,35 @@ public class KeyGenerator { } } - public static void main2(String args[]) { + /** + * Usage: KeyGenerator [sigtype...] + */ + private static void main2(String args[]) { RandomSource.getInstance().nextBoolean(); try { Thread.sleep(1000); } catch (InterruptedException ie) {} int runs = 200; // warmup + Collection<SigType> toTest; + if (args.length > 0) { + toTest = new ArrayList<SigType>(); + for (int i = 0; i < args.length; i++) { + SigType type = SigType.parseSigType(args[i]); + if (type != null) + toTest.add(type); + else + System.out.println("Unknown type: " + args[i]); + } + if (toTest.isEmpty()) { + System.out.println("No types to test"); + return; + } + } else { + toTest = Arrays.asList(SigType.values()); + } for (int j = 0; j < 2; j++) { - for (SigType type : SigType.values()) { + for (SigType type : toTest) { if (!type.isAvailable()) { System.out.println("Skipping unavailable: " + type); + continue; } try { System.out.println("Testing " + type); -- GitLab