aboutsummaryrefslogtreecommitdiff
path: root/standalone/src
diff options
context:
space:
mode:
authorJ08nY2024-08-06 20:25:35 +0200
committerJ08nY2024-08-06 20:25:35 +0200
commit9b1b1a6f6da1e4c8429ba1632103d276f3cbdaad (patch)
tree6c052e5a7bbd6ac002639e8fcb351f47dd03da32 /standalone/src
parent231e33a8bfd352574ef999c4e91f28c5e8551bdf (diff)
downloadECTester-9b1b1a6f6da1e4c8429ba1632103d276f3cbdaad.tar.gz
ECTester-9b1b1a6f6da1e4c8429ba1632103d276f3cbdaad.tar.zst
ECTester-9b1b1a6f6da1e4c8429ba1632103d276f3cbdaad.zip
Diffstat (limited to 'standalone/src')
-rw-r--r--standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyGeneratorTestable.java68
-rw-r--r--standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneDefaultSuite.java12
-rw-r--r--standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneEdgeCasesSuite.java4
-rw-r--r--standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneForeignSuite.java6
-rw-r--r--standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneMiscSuite.java2
-rw-r--r--standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java12
-rw-r--r--standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneWrongSuite.java4
7 files changed, 86 insertions, 22 deletions
diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyGeneratorTestable.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyGeneratorTestable.java
index bc44eb8..8865576 100644
--- a/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyGeneratorTestable.java
+++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/base/KeyGeneratorTestable.java
@@ -3,6 +3,7 @@ package cz.crcs.ectester.standalone.test.base;
import java.security.InvalidAlgorithmParameterException;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
+import java.security.SecureRandom;
import java.security.spec.AlgorithmParameterSpec;
import java.security.spec.ECGenParameterSpec;
import java.security.spec.ECParameterSpec;
@@ -15,11 +16,23 @@ public class KeyGeneratorTestable extends StandaloneTestable<KeyGeneratorTestabl
private final KeyPairGenerator kpg;
private int keysize = 0;
private AlgorithmParameterSpec spec = null;
+ private SecureRandom random;
public KeyGeneratorTestable(KeyPairGenerator kpg) {
this.kpg = kpg;
}
+ KeyGeneratorTestable(Builder builder) {
+ this.kpg = builder.kpg;
+ this.keysize = builder.keysize;
+ this.spec = builder.spec;
+ this.random = builder.random;
+ }
+ /*
+ public KeyGeneratorTestable(KeyPairGenerator kpg) {
+ this.kpg = kpg;
+ }
+
public KeyGeneratorTestable(KeyPairGenerator kpg, int keysize) {
this.kpg = kpg;
this.keysize = keysize;
@@ -34,6 +47,7 @@ public class KeyGeneratorTestable extends StandaloneTestable<KeyGeneratorTestabl
this.kpg = kpg;
this.spec = spec;
}
+ */
public int getKeysize() {
return keysize;
@@ -57,9 +71,17 @@ public class KeyGeneratorTestable extends StandaloneTestable<KeyGeneratorTestabl
stage = KeyGeneratorStage.Init;
try {
if (spec != null) {
- kpg.initialize(spec);
+ if (random != null) {
+ kpg.initialize(spec, random);
+ } else {
+ kpg.initialize(spec);
+ }
} else if (keysize != 0) {
- kpg.initialize(keysize);
+ if (random != null) {
+ kpg.initialize(keysize, random);
+ } else {
+ kpg.initialize(keysize);
+ }
}
} catch (InvalidAlgorithmParameterException e) {
failOnException(e);
@@ -78,8 +100,50 @@ public class KeyGeneratorTestable extends StandaloneTestable<KeyGeneratorTestabl
hasRun = true;
}
+ public static Builder builder() {
+ return new Builder();
+ }
+
public enum KeyGeneratorStage {
Init,
GenKeyPair
}
+
+ public static class Builder {
+ private KeyPairGenerator kpg;
+ private int keysize = 0;
+ private AlgorithmParameterSpec spec = null;
+ private SecureRandom random;
+
+ public Builder() {}
+
+ public Builder keyPairGenerator(KeyPairGenerator kpg) {
+ this.kpg = kpg;
+ return this;
+ }
+
+ public Builder keysize(int keysize) {
+ this.keysize = keysize;
+ return this;
+ }
+
+ public Builder spec(ECGenParameterSpec spec) {
+ this.spec = spec;
+ return this;
+ }
+
+ public Builder spec(ECParameterSpec spec) {
+ this.spec = spec;
+ return this;
+ }
+
+ public Builder random(SecureRandom random) {
+ this.random = random;
+ return this;
+ }
+
+ public KeyGeneratorTestable build() {
+ return new KeyGeneratorTestable(this);
+ }
+ }
}
diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneDefaultSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneDefaultSuite.java
index 4e10a93..1ad1557 100644
--- a/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneDefaultSuite.java
+++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneDefaultSuite.java
@@ -44,8 +44,8 @@ public class StandaloneDefaultSuite extends StandaloneTestSuite {
ECParameterSpec spec = null;
if (cli.hasOption("test.bits")) {
int bits = Integer.parseInt(cli.getOptionValue("test.bits"));
- kgtOne = new KeyGeneratorTestable(kpg, bits);
- kgtOther = new KeyGeneratorTestable(kpg, bits);
+ kgtOne = KeyGeneratorTestable.builder().keyPairGenerator(kpg).keysize(bits).build();
+ kgtOther = KeyGeneratorTestable.builder().keyPairGenerator(kpg).keysize(bits).build();
} else if (cli.hasOption("test.named-curve")) {
String curveName = cli.getOptionValue("test.named-curve");
EC_Curve curve = EC_Store.getInstance().getObject(EC_Curve.class, curveName);
@@ -54,11 +54,11 @@ public class StandaloneDefaultSuite extends StandaloneTestSuite {
return;
}
spec = curve.toSpec();
- kgtOne = new KeyGeneratorTestable(kpg, spec);
- kgtOther = new KeyGeneratorTestable(kpg, spec);
+ kgtOne = KeyGeneratorTestable.builder().keyPairGenerator(kpg).spec(spec).build();
+ kgtOther = KeyGeneratorTestable.builder().keyPairGenerator(kpg).spec(spec).build();
} else {
- kgtOne = new KeyGeneratorTestable(kpg);
- kgtOther = new KeyGeneratorTestable(kpg);
+ kgtOne = KeyGeneratorTestable.builder().keyPairGenerator(kpg).build();
+ kgtOther = KeyGeneratorTestable.builder().keyPairGenerator(kpg).build();
}
doTest(KeyGeneratorTest.expect(kgtOne, Result.ExpectedValue.SUCCESS));
diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneEdgeCasesSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneEdgeCasesSuite.java
index bf2266d..c4954ba 100644
--- a/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneEdgeCasesSuite.java
+++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneEdgeCasesSuite.java
@@ -134,7 +134,7 @@ public class StandaloneEdgeCasesSuite extends StandaloneTestSuite {
ECParameterSpec spec = curve.toSpec();
//generate KeyPair
- KeyGeneratorTestable kgt = new KeyGeneratorTestable(kpg, spec);
+ KeyGeneratorTestable kgt = KeyGeneratorTestable.builder().keyPairGenerator(kpg).spec(spec).build();
Test generate = KeyGeneratorTest.expectError(kgt, Result.ExpectedValue.ANY);
//perform ECDH tests
@@ -213,7 +213,7 @@ public class StandaloneEdgeCasesSuite extends StandaloneTestSuite {
Arrays.sort(zeros);
//generate KeyPair
- KeyGeneratorTestable kgt = new KeyGeneratorTestable(kpg, spec);
+ KeyGeneratorTestable kgt = KeyGeneratorTestable.builder().keyPairGenerator(kpg).spec(spec).build();
Test generate = KeyGeneratorTest.expectError(kgt, Result.ExpectedValue.ANY);
//perform ECDH tests
diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneForeignSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneForeignSuite.java
index 2139233..5385fa2 100644
--- a/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneForeignSuite.java
+++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneForeignSuite.java
@@ -57,9 +57,9 @@ public abstract class StandaloneForeignSuite extends StandaloneTestSuite {
ECParameterSpec spec = curve.toSpec();
ECGenParameterSpec namedSpec = new ECGenParameterSpec(curve.getId());
- KeyGeneratorTestable kgt = new KeyGeneratorTestable(kpg, spec);
- KeyGeneratorTestable kgtOnNamedCurve = new KeyGeneratorTestable(kpg, namedSpec);
- KeyGeneratorTestable kgtOnDefaultCurve = new KeyGeneratorTestable(kpg, curve.getBits());
+ KeyGeneratorTestable kgt = KeyGeneratorTestable.builder().keyPairGenerator(kpg).spec(spec).build();
+ KeyGeneratorTestable kgtOnNamedCurve = KeyGeneratorTestable.builder().keyPairGenerator(kpg).spec(namedSpec).build();
+ KeyGeneratorTestable kgtOnDefaultCurve = KeyGeneratorTestable.builder().keyPairGenerator(kpg).keysize(curve.getBits()).build();
// This is some nasty hacking...
KeyGeneratorTestable theKgt = new KeyGeneratorTestable(kpg) {
diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneMiscSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneMiscSuite.java
index 801b2ca..c1c995b 100644
--- a/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneMiscSuite.java
+++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneMiscSuite.java
@@ -80,7 +80,7 @@ public class StandaloneMiscSuite extends StandaloneTestSuite {
private void testCurve(EC_Curve curve, String catName, KeyPairGenerator kpg, Result.ExpectedValue expected) throws NoSuchAlgorithmException {
//generate KeyPair
- KeyGeneratorTestable kgt = new KeyGeneratorTestable(kpg, curve.toSpec());
+ KeyGeneratorTestable kgt = KeyGeneratorTestable.builder().keyPairGenerator(kpg).spec(curve.toSpec()).build();
Test generate = KeyGeneratorTest.expectError(kgt, Result.ExpectedValue.ANY);
//perform KeyAgreement tests
diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java
index 8127e6d..bce9d39 100644
--- a/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java
+++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandalonePerformanceSuite.java
@@ -67,8 +67,8 @@ public class StandalonePerformanceSuite extends StandaloneTestSuite {
KeyPairGenerator kpg = kpgIdent.getInstance(cfg.selected.getProvider());
if (cli.hasOption("test.bits")) {
int bits = Integer.parseInt(cli.getOptionValue("test.bits"));
- kgtOne = new KeyGeneratorTestable(kpg, bits);
- kgtOther = new KeyGeneratorTestable(kpg, bits);
+ kgtOne = KeyGeneratorTestable.builder().keyPairGenerator(kpg).keysize(bits).build();
+ kgtOther = KeyGeneratorTestable.builder().keyPairGenerator(kpg).keysize(bits).build();
} else if (cli.hasOption("test.named-curve")) {
String curveName = cli.getOptionValue("test.named-curve");
EC_Curve curve = EC_Store.getInstance().getObject(EC_Curve.class, curveName);
@@ -77,11 +77,11 @@ public class StandalonePerformanceSuite extends StandaloneTestSuite {
return;
}
spec = curve.toSpec();
- kgtOne = new KeyGeneratorTestable(kpg, spec);
- kgtOther = new KeyGeneratorTestable(kpg, spec);
+ kgtOne = KeyGeneratorTestable.builder().keyPairGenerator(kpg).spec(spec).build();
+ kgtOther = KeyGeneratorTestable.builder().keyPairGenerator(kpg).spec(spec).build();
} else {
- kgtOne = new KeyGeneratorTestable(kpg);
- kgtOther = new KeyGeneratorTestable(kpg);
+ kgtOne = KeyGeneratorTestable.builder().keyPairGenerator(kpg).build();
+ kgtOther = KeyGeneratorTestable.builder().keyPairGenerator(kpg).build();
}
kpgTests.add(PerformanceTest.repeat(kgtOne, cfg.selected, kpgIdent.getName(), count));
kpgTests.add(PerformanceTest.repeat(kgtOther, cfg.selected, kpgIdent.getName(), count));
diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneWrongSuite.java b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneWrongSuite.java
index 1990f22..dacaa15 100644
--- a/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneWrongSuite.java
+++ b/standalone/src/main/java/cz/crcs/ectester/standalone/test/suites/StandaloneWrongSuite.java
@@ -73,7 +73,7 @@ public class StandaloneWrongSuite extends StandaloneTestSuite {
String type = curve.getField() == javacard.security.KeyPair.ALG_EC_FP ? "FP" : "F2M";
//try generating a keypair
- KeyGeneratorTestable kgt = new KeyGeneratorTestable(kpg, spec);
+ KeyGeneratorTestable kgt = KeyGeneratorTestable.builder().keyPairGenerator(kpg).spec(spec).build();
Test generate = KeyGeneratorTest.expectError(kgt, Result.ExpectedValue.ANY);
KeyAgreement ka = kaIdent.getInstance(cfg.selected.getProvider());
@@ -233,7 +233,7 @@ public class StandaloneWrongSuite extends StandaloneTestSuite {
private Test ecdhTest(ECParameterSpec spec, String desc) throws NoSuchAlgorithmException {
//generate KeyPair
- KeyGeneratorTestable kgt = new KeyGeneratorTestable(kpg, spec);
+ KeyGeneratorTestable kgt = KeyGeneratorTestable.builder().keyPairGenerator(kpg).spec(spec).build();
Test generate = KeyGeneratorTest.expectError(kgt, Result.ExpectedValue.FAILURE);
//perform ECDH