From 2a9e5944bd3f444b4866bdf5830d444020799c18 Mon Sep 17 00:00:00 2001 From: J08nY Date: Mon, 19 Aug 2024 20:39:21 +0200 Subject: Allow for no-preload option and correctly handle PRNG support. --- .../java/cz/crcs/ectester/standalone/ECTesterStandalone.java | 9 ++++++++- .../main/java/cz/crcs/ectester/standalone/libs/BoringsslLib.java | 5 ----- .../main/java/cz/crcs/ectester/standalone/libs/GcryptLib.java | 8 +------- .../main/java/cz/crcs/ectester/standalone/libs/LibresslLib.java | 5 ----- .../java/cz/crcs/ectester/standalone/libs/NativeECLibrary.java | 3 +++ 5 files changed, 12 insertions(+), 18 deletions(-) (limited to 'standalone/src/main/java') 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 1b56ec6..603a301 100644 --- a/standalone/src/main/java/cz/crcs/ectester/standalone/ECTesterStandalone.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/ECTesterStandalone.java @@ -107,6 +107,7 @@ public class ECTesterStandalone { FileUtil.write(LIB_RESOURCE_DIR + "lib_timing.so", reqs.resolve("lib_timing.so")); FileUtil.write(LIB_RESOURCE_DIR + "lib_preload.so", reqs.resolve("lib_preload.so")); FileUtil.write(LIB_RESOURCE_DIR + "lib_prng.so", reqs.resolve("lib_prng.so")); + FileUtil.write(LIB_RESOURCE_DIR + "lib_prng_dummy.so", reqs.resolve("lib_prng_dummy.so")); FileUtil.write(LIB_RESOURCE_DIR + "lib_csignals.so", reqs.resolve("lib_csignals.so")); FileUtil.write(LIB_RESOURCE_DIR + "lib_cppsignals.so", reqs.resolve("lib_cppsignals.so")); @@ -146,7 +147,13 @@ public class ECTesterStandalone { System.exit(result); } else { // Load the utility libs. - System.load(reqs.resolve("lib_prng.so").toString()); + if (cli.hasOption("no-preload")) { + System.err.println("Loading dummy"); + System.load(reqs.resolve("lib_prng_dummy.so").toString()); + } else { + System.err.println("Loading right"); + System.load(reqs.resolve("lib_prng.so").toString()); + } System.load(reqs.resolve("lib_timing.so").toString()); System.load(reqs.resolve("lib_csignals.so").toString()); System.load(reqs.resolve("lib_cppsignals.so").toString()); diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/BoringsslLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/BoringsslLib.java index 06e6b4a..4f253e6 100644 --- a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/BoringsslLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/BoringsslLib.java @@ -17,9 +17,4 @@ public class BoringsslLib extends NativeECLibrary { @Override public native Set getCurves(); - @Override - public boolean supportsDeterministicPRNG() { - // This is provided by the native preload that hooks all randomness sources. - return true; - } } diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/GcryptLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/GcryptLib.java index 3647ab9..49cdc7c 100644 --- a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/GcryptLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/GcryptLib.java @@ -9,7 +9,7 @@ import java.util.Set; public class GcryptLib extends NativeECLibrary { public GcryptLib() { - super("libgcrypt","gcrypt_provider"); + super("libgcrypt", "gcrypt_provider"); } @Override @@ -17,10 +17,4 @@ public class GcryptLib extends NativeECLibrary { @Override public native Set getCurves(); - - @Override - public boolean supportsDeterministicPRNG() { - // This is provided by the native preload that hooks all randomness sources. - return true; - } } diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/LibresslLib.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/LibresslLib.java index e53399c..b06bfaf 100644 --- a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/LibresslLib.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/LibresslLib.java @@ -17,9 +17,4 @@ public class LibresslLib extends NativeECLibrary { @Override public native Set getCurves(); - @Override - public boolean supportsDeterministicPRNG() { - // This is provided by the native preload that hooks all randomness sources. - return true; - } } diff --git a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/NativeECLibrary.java b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/NativeECLibrary.java index 210a6e9..82ec115 100644 --- a/standalone/src/main/java/cz/crcs/ectester/standalone/libs/NativeECLibrary.java +++ b/standalone/src/main/java/cz/crcs/ectester/standalone/libs/NativeECLibrary.java @@ -74,6 +74,9 @@ public abstract class NativeECLibrary extends ProviderECLibrary { @Override public native long getLastNativeTiming(); + @Override + public native boolean supportsDeterministicPRNG(); + @Override public native boolean setupDeterministicPRNG(byte[] seed); -- cgit v1.2.3-70-g09d2