aboutsummaryrefslogtreecommitdiff
path: root/standalone/src/main/java/cz/crcs/ectester
diff options
context:
space:
mode:
authorJ08nY2024-08-05 17:50:11 +0200
committerJ08nY2024-08-05 17:50:11 +0200
commitabb89ea702d046e27ea457df31a7d69bab3b0802 (patch)
tree09a9bc75ec019f11f92566d9a25bc91a2440fc2b /standalone/src/main/java/cz/crcs/ectester
parent33a859073f34fab3843b80754de1a558d1b125f9 (diff)
downloadECTester-abb89ea702d046e27ea457df31a7d69bab3b0802.tar.gz
ECTester-abb89ea702d046e27ea457df31a7d69bab3b0802.tar.zst
ECTester-abb89ea702d046e27ea457df31a7d69bab3b0802.zip
Add deterministic PRNG to Botan.
Diffstat (limited to 'standalone/src/main/java/cz/crcs/ectester')
-rw-r--r--standalone/src/main/java/cz/crcs/ectester/standalone/ECTesterStandalone.java20
-rw-r--r--standalone/src/main/java/cz/crcs/ectester/standalone/libs/BotanLib.java6
-rw-r--r--standalone/src/main/java/cz/crcs/ectester/standalone/libs/OpensslLib.java2
-rw-r--r--standalone/src/main/java/cz/crcs/ectester/standalone/libs/ProviderECLibrary.java3
-rw-r--r--standalone/src/main/java/cz/crcs/ectester/standalone/libs/TomcryptLib.java2
5 files changed, 26 insertions, 7 deletions
diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/ECTesterStandalone.java b/standalone/src/main/java/cz/crcs/ectester/standalone/ECTesterStandalone.java
index 7967bcb..3194796 100644
--- a/standalone/src/main/java/cz/crcs/ectester/standalone/ECTesterStandalone.java
+++ b/standalone/src/main/java/cz/crcs/ectester/standalone/ECTesterStandalone.java
@@ -439,7 +439,10 @@ public class ECTesterStandalone {
if (cli.hasOption("ecdh.prng-seed")) {
String seedString = cli.getOptionValue("ecdh.prng-seed");
byte[] seed = ByteUtil.hexToBytes(seedString, true);
- lib.setupDeterministicPRNG(seed);
+ if (!lib.setupDeterministicPRNG(seed)) {
+ System.err.println("Couldn't set PRNG seed.");
+ return;
+ }
}
if (cli.hasOption("ecdh.time-source")) {
@@ -601,7 +604,10 @@ public class ECTesterStandalone {
if (cli.hasOption("ecdsa.prng-seed")) {
String seedString = cli.getOptionValue("ecdsa.prng-seed");
byte[] seed = ByteUtil.hexToBytes(seedString, true);
- lib.setupDeterministicPRNG(seed);
+ if (!lib.setupDeterministicPRNG(seed)) {
+ System.err.println("Couldn't set PRNG seed.");
+ return;
+ }
}
if (cli.hasOption("ecdsa.time-source")) {
@@ -743,7 +749,10 @@ public class ECTesterStandalone {
if (cli.hasOption("generate.prng-seed")) {
String seedString = cli.getOptionValue("generate.prng-seed");
byte[] seed = ByteUtil.hexToBytes(seedString, true);
- lib.setupDeterministicPRNG(seed);
+ if (!lib.setupDeterministicPRNG(seed)) {
+ System.err.println("Couldn't set PRNG seed.");
+ return;
+ }
}
if (cli.hasOption("generate.time-source")) {
@@ -846,7 +855,10 @@ public class ECTesterStandalone {
if (cli.hasOption("test.prng-seed")) {
String seedString = cli.getOptionValue("test.prng-seed");
byte[] seed = ByteUtil.hexToBytes(seedString, true);
- lib.setupDeterministicPRNG(seed);
+ if (!lib.setupDeterministicPRNG(seed)) {
+ System.err.println("Couldn't set PRNG seed.");
+ return;
+ }
}
switch (testSuite) {
diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/BotanLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/BotanLib.java
index e8f6e13..c072e84 100644
--- a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/BotanLib.java
+++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/BotanLib.java
@@ -17,4 +17,10 @@ public class BotanLib extends NativeECLibrary {
@Override
public native Set<String> getCurves();
+
+ @Override
+ public native boolean supportsDeterministicPRNG();
+
+ @Override
+ public native boolean setupDeterministicPRNG(byte[] seed);
}
diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/OpensslLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/OpensslLib.java
index 13490f9..69c84bc 100644
--- a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/OpensslLib.java
+++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/OpensslLib.java
@@ -21,5 +21,5 @@ public class OpensslLib extends NativeECLibrary {
public native boolean supportsDeterministicPRNG();
@Override
- public native void setupDeterministicPRNG(byte[] seed);
+ public native boolean setupDeterministicPRNG(byte[] seed);
}
diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/ProviderECLibrary.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/ProviderECLibrary.java
index 936120f..a9178f6 100644
--- a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/ProviderECLibrary.java
+++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/ProviderECLibrary.java
@@ -88,7 +88,8 @@ public abstract class ProviderECLibrary implements ECLibrary {
return false;
}
- public void setupDeterministicPRNG(byte[] seed) {
+ public boolean setupDeterministicPRNG(byte[] seed) {
+ return false;
}
@Override
diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/TomcryptLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/TomcryptLib.java
index 1897617..e499451 100644
--- a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/TomcryptLib.java
+++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/TomcryptLib.java
@@ -22,5 +22,5 @@ public class TomcryptLib extends NativeECLibrary {
public native boolean supportsDeterministicPRNG();
@Override
- public native void setupDeterministicPRNG(byte[] seed);
+ public native boolean setupDeterministicPRNG(byte[] seed);
}