aboutsummaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/standalone/libs/jni
diff options
context:
space:
mode:
Diffstat (limited to 'src/cz/crcs/ectester/standalone/libs/jni')
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/.gitignore5
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/Makefile83
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/boringssl.c12
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/botan.cpp14
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/c_timing.c174
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/c_timing.h19
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/cryptopp.cpp12
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/gcrypt.c12
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/ippcp.c14
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/matrixssl.c13
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/mbedtls.c12
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/mscng.c12
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/native.h284
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/openssl.c12
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c12
15 files changed, 276 insertions, 414 deletions
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/.gitignore b/src/cz/crcs/ectester/standalone/libs/jni/.gitignore
index dc3463f..7e8075a 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/.gitignore
+++ b/src/cz/crcs/ectester/standalone/libs/jni/.gitignore
@@ -1,3 +1,6 @@
libcore_s.a
libcrypt_s.a
-matrixssl/ \ No newline at end of file
+matrixssl/
+
+CMakeLists.txt
+cmake-build-debug \ No newline at end of file
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/Makefile b/src/cz/crcs/ectester/standalone/libs/jni/Makefile
index f686b0e..c884dc5 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/Makefile
+++ b/src/cz/crcs/ectester/standalone/libs/jni/Makefile
@@ -58,87 +58,108 @@ JNI_PLATFORMINCLUDEDIR ?= $(JNI_INCLUDEDIR)/$(JNI_PLATFORM)
###############################################################################
## Targets.
-all: tomcrypt_provider.so botan_provider.so cryptopp_provider.so openssl_provider.so boringssl_provider.so gcrypt_provider.so mbedtls_provider.so ippcp_provider.so matrixssl_provider.so
+all: tomcrypt botan cryptopp openssl boringssl gcrypt mbedtls ippcp matrixssl
# Common utils
c_utils.o: c_utils.c
$(CC) $(CFLAGS) -c $<
-c_timing.o: c_timing.c
- $(CC) $(CFLAGS) -c $<
+lib_timing.so: c_timing.c
+ $(CC) -o $@ -shared $(CFLAGS) -Wl,-soname,lib_timing.so $<
cpp_utils.o: cpp_utils.cpp
$(CXX) $(CXXFLAGS) -c $<
# OpenSSL shim
-openssl_provider.so: openssl.o c_utils.o c_timing.o
- $(CC) $(LFLAGS) -o $@ $^ -L. $(shell pkg-config --libs openssl)
+openssl: openssl_provider.so
+
+openssl_provider.so: openssl.o c_utils.o | lib_timing.so
+ $(CC) $(LFLAGS) -o $@ -Wl,-rpath,'$$ORIGIN/lib' $^ -L. $(shell pkg-config --libs openssl) -l:lib_timing.so
openssl.o: openssl.c
$(CC) $(shell pkg-config --cflags openssl) $(CFLAGS) -c $<
# BoringSSL shim
-boringssl_provider.so: boringssl.o c_utils.o c_timing.o
- $(CC) $(LFLAGS) -o $@ $^ -L. ../../../../../../../ext/boringssl/build/crypto/libcrypto.so
+boringssl: boringssl_provider.so
+
+lib_boringssl.so:
cp ../../../../../../../ext/boringssl/build/crypto/libcrypto.so lib_boringssl.so
+boringssl_provider.so: boringssl.o c_utils.o | lib_timing.so lib_boringssl.so
+ $(CC) $(LFLAGS) -o $@ -Wl,-rpath,'$$ORIGIN/lib' $^ -L. lib_boringssl.so -l:lib_timing.so
+
+
boringssl.o: boringssl.c
$(CC) -I../../../../../../../ext/boringssl/include/ $(CFLAGS) -c $<
# libgcrypt shim
-gcrypt_provider.so: gcrypt.o c_utils.o c_timing.o
- $(CC) $(LFLAGS) -o $@ $^ -L. $(shell libgcrypt-config --libs)
+gcrypt: gcrypt_provider.so
+
+gcrypt_provider.so: gcrypt.o c_utils.o | lib_timing.so
+ $(CC) $(LFLAGS) -o $@ -Wl,-rpath,'$$ORIGIN/lib' $^ -L. $(shell libgcrypt-config --libs) -l:lib_timing.so
gcrypt.o: gcrypt.c
$(CC) $(shell libgcrypt-config --cflags) $(CFLAGS) -c $<
# Libtomcrypt shim
-tomcrypt_provider.so: tomcrypt.o c_utils.o c_timing.o
- $(CC) $(LFLAGS) -o $@ $^ -L. -ltommath $(shell pkg-config --libs libtomcrypt)
+tomcrypt: tomcrypt_provider.so
+
+tomcrypt_provider.so: tomcrypt.o c_utils.o | lib_timing.so
+ $(CC) $(LFLAGS) -o $@ -Wl,-rpath,'$$ORIGIN/lib' $^ -L. -ltommath $(shell pkg-config --libs libtomcrypt) -l:lib_timing.so
tomcrypt.o: tomcrypt.c
$(CC) -DLTM_DESC $(shell pkg-config --cflags libtomcrypt) $(CFLAGS) -c $<
# Botan-2 shim
-botan_provider.so: botan.o cpp_utils.o c_timing.o
- $(CXX) $(LFLAGS) -o $@ $^ -L. $(shell pkg-config --libs botan-2)
+botan: botan_provider.so
+
+botan_provider.so: botan.o cpp_utils.o | lib_timing.so
+ $(CXX) $(LFLAGS) -o $@ -Wl,-rpath,'$$ORIGIN/lib' $^ -L. $(shell pkg-config --libs botan-2) -l:lib_timing.so
botan.o: botan.cpp
$(CXX) $(shell pkg-config --cflags botan-2) $(CXXFLAGS) -c $<
# Crypto++ shim
-cryptopp_provider.so: cryptopp.o cpp_utils.o c_timing.o
- $(CXX) $(LFLAGS) -o $@ $^ -L. $(shell pkg-config --libs libcrypto++)
+cryptopp: cryptopp_provider.so
+
+cryptopp_provider.so: cryptopp.o cpp_utils.o | lib_timing.so
+ $(CXX) $(LFLAGS) -o $@ -Wl,-rpath,'$$ORIGIN/lib' $^ -L. $(shell pkg-config --libs libcrypto++) -l:lib_timing.so
cryptopp.o: cryptopp.cpp
$(CXX) $(shell pkg-config --cflags libcrypto++) $(CXXFLAGS) -c $<
# mbedTLS shim
-mbedtls_provider.so: mbedtls.o c_utils.o c_timing.o
- $(CC) $(LFLAGS) -o $@ $^ -L. -lmbedcrypto
+mbedtls: mbedtls_provider.so
+
+mbedtls_provider.so: mbedtls.o c_utils.o | lib_timing.so
+ $(CC) $(LFLAGS) -o $@ -Wl,-rpath,'$$ORIGIN/lib' $^ -L. -lmbedcrypto -l:lib_timing.so
mbedtls.o: mbedtls.c
$(CC) $(CFLAGS) -c $<
# Intel Performance Primitives crypto shim
-ippcp_provider.so: ippcp.o c_utils.o c_timing.o
- $(CC) $(LFLAGS) -o $@ $^ -L. -lippcp
+ippcp: ippcp_provider.so
+
+ippcp_provider.so: ippcp.o c_utils.o
+ $(CC) $(LFLAGS) -o $@ -Wl,-rpath,'$$ORIGIN/lib' $^ -L. -lippcp -l:lib_timing.so
ippcp.o: ippcp.c
$(CC) $(CFLAGS) -c $<
# MatrixSSL shim
-matrixssl_provider.so: matrixssl.o c_utils.o c_timing.o
- $(CC) $(LFLAGS) -o $@ -L. $^ libcrypt_s.a libcore_s.a
+matrixssl: matrixssl_provider.so
+
+matrixssl_provider.so: matrixssl.o c_utils.o | lib_timing.so
+ $(CC) $(LFLAGS) -o $@ -Wl,-rpath,'$$ORIGIN/lib' -L. $^ libcrypt_s.a libcore_s.a -l:lib_timing.so
matrixssl.o: matrixssl.c
$(CC) $(CFLAGS) -Imatrixssl/ -c $<
@@ -147,18 +168,18 @@ matrixssl.o: matrixssl.c
help:
@echo "# This makefile builds the JNI shims necessary to test native libraries."
@echo "# Targets:"
- @echo " - openssl_provider.so"
- @echo " - boringssl_provider.so"
- @echo " - gcrypt_provider.so"
- @echo " - tomcrypt_provider.so"
- @echo " - botan_provider.so"
- @echo " - cryptopp_provider.so"
- @echo " - mbedtls_provider.so"
- @echo " - ippcp_provider.so"
- @echo " - matrixssl_provider.so"
+ @echo " - openssl"
+ @echo " - boringssl"
+ @echo " - gcrypt"
+ @echo " - tomcrypt"
+ @echo " - botan"
+ @echo " - cryptopp"
+ @echo " - mbedtls"
+ @echo " - ippcp"
+ @echo " - matrixssl"
clean:
rm -rf *.o
rm -rf *.so
-.PHONY: all help clean \ No newline at end of file
+.PHONY: all help clean openssl boringssl gcrypt tomcrypt botan cryptopp mbedtls ippcp matrixssl \ No newline at end of file
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/boringssl.c b/src/cz/crcs/ectester/standalone/libs/jni/boringssl.c
index 0484d28..bca2ead 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/boringssl.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/boringssl.c
@@ -513,16 +513,4 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
EC_KEY_free(pub);
EC_GROUP_free(curve);
return (result == 1) ? JNI_TRUE : JNI_FALSE;
-}
-
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_BoringsslLib_supportsNativeTiming(JNIEnv *env, jobject this) {
- return native_timing_supported();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_BoringsslLib_getNativeTimingResolution(JNIEnv *env, jobject this) {
- return native_timing_resolution();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_BoringsslLib_getLastNativeTiming(JNIEnv *env, jobject this) {
- return native_timing_last();
} \ No newline at end of file
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/botan.cpp b/src/cz/crcs/ectester/standalone/libs/jni/botan.cpp
index 813b9f8..8781f72 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/botan.cpp
+++ b/src/cz/crcs/ectester/standalone/libs/jni/botan.cpp
@@ -1,10 +1,8 @@
#include "native.h"
#include <string>
-#include <botan/lookup.h>
#include <botan/version.h>
#include <botan/parsing.h>
-#include <botan/init.h>
#include <botan/rng.h>
#include <botan/secmem.h>
#include <botan/auto_rng.h>
@@ -528,16 +526,4 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
return JNI_TRUE;
}
return JNI_FALSE;
-}
-
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_BotanLib_supportsNativeTiming(JNIEnv *env, jobject self) {
- return native_timing_supported();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_BotanLib_getNativeTimingResolution(JNIEnv *env, jobject self) {
- return native_timing_resolution();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_BotanLib_getLastNativeTiming(JNIEnv *env, jobject self) {
- return native_timing_last();
} \ No newline at end of file
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/c_timing.c b/src/cz/crcs/ectester/standalone/libs/jni/c_timing.c
index 941cee6..018ceda 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/c_timing.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/c_timing.c
@@ -1,47 +1,84 @@
#include "c_timing.h"
#if __linux || __posix
-#include<unistd.h>
-#endif
-
-#if _POSIX_TIMERS > 0
+#include <unistd.h>
#include <time.h>
+#include <string.h>
+static unsigned long long tsc_start = 0;
+static unsigned long long tsc_end = 0;
+static unsigned long long tsc_partial = 0;
+static const char *rdtsc_unit = "instr";
+
+static inline unsigned long long rdtsc(void) {
+ unsigned long long int x;
+ __asm__ volatile ("rdtsc" : "=A" (x));
+ return x;
+}
+
+static jlong rdtsc_timing_resolution() {
+ return 1;
+}
+
+static void rdtsc_timing_start() {
+ tsc_partial = 0;
+ tsc_start = rdtsc();
+}
+
+static void rdtsc_timing_pause() {
+ tsc_end = rdtsc();
+ tsc_partial += tsc_end - tsc_start;
+}
+
+static void rdtsc_timing_restart() {
+ tsc_start = rdtsc();
+}
+
+static void rdtsc_timing_stop() {
+ tsc_end = rdtsc();
+}
+
+static jlong rdtsc_timing_last() {
+ jlong res = (jlong) ((tsc_end - tsc_start) + tsc_partial);
+ if (res < 0) {
+ return 0;
+ } else {
+ return res;
+ }
+}
static struct timespec start = {0};
static struct timespec end = {0};
static jlong partial = 0;
+static clockid_t clk_id = CLOCK_MONOTONIC_RAW;
+static const char *clock_unit = "nano";
-jboolean native_timing_supported() {
- return JNI_TRUE;
-}
-
-jlong native_timing_resolution() {
+static jlong clock_timing_resolution() {
struct timespec timeval;
- clock_getres(CLOCK_MONOTONIC, &timeval);
+ clock_getres(clk_id, &timeval);
return timeval.tv_nsec;
}
-void native_timing_start() {
+static void clock_timing_start() {
partial = 0;
- clock_gettime(CLOCK_MONOTONIC, &start);
+ clock_gettime(clk_id, &start);
}
-void native_timing_pause() {
- clock_gettime(CLOCK_MONOTONIC, &end);
+static void clock_timing_pause() {
+ clock_gettime(clk_id, &end);
partial += (end.tv_sec - start.tv_sec) * 1000000000 + (end.tv_nsec - start.tv_nsec);
}
-void native_timing_restart() {
- clock_gettime(CLOCK_MONOTONIC, &start);
+static void clock_timing_restart() {
+ clock_gettime(clk_id, (struct timespec *)&start);
}
-void native_timing_stop() {
- clock_gettime(CLOCK_MONOTONIC, &end);
+static void clock_timing_stop() {
+ clock_gettime(clk_id, (struct timespec *)&end);
}
-jlong native_timing_last() {
+static jlong clock_timing_last() {
jlong res = (end.tv_sec - start.tv_sec) * 1000000000 + (end.tv_nsec - start.tv_nsec) + partial;
if (res < 0) {
return 0;
@@ -50,9 +87,105 @@ jlong native_timing_last() {
}
}
+static jlong (*func_timing_resolution)() = &clock_timing_resolution;
+static void (*func_timing_start)() = &clock_timing_start;
+static void (*func_timing_pause)() = &clock_timing_pause;
+static void (*func_timing_restart)() = &clock_timing_restart;
+static void (*func_timing_stop)() = &clock_timing_stop;
+static jlong (*func_timing_last)() = &clock_timing_last;
+static const char *unit = "nano";
+
+JNIEXPORT jobject JNICALL Java_cz_crcs_ectester_standalone_libs_NativeECLibrary_getNativeTimingSupport(JNIEnv *env, jobject self) {
+ jclass set_class = (*env)->FindClass(env, "java/util/TreeSet");
+
+ jmethodID set_ctr = (*env)->GetMethodID(env, set_class, "<init>", "()V");
+ jmethodID set_add = (*env)->GetMethodID(env, set_class, "add", "(Ljava/lang/Object;)Z");
+
+ jobject result = (*env)->NewObject(env, set_class, set_ctr);
+ (*env)->CallBooleanMethod(env, result, set_add, (*env)->NewStringUTF(env, "rdtsc"));
+ (*env)->CallBooleanMethod(env, result, set_add, (*env)->NewStringUTF(env, "monotonic"));
+ (*env)->CallBooleanMethod(env, result, set_add, (*env)->NewStringUTF(env, "monotonic-raw"));
+ (*env)->CallBooleanMethod(env, result, set_add, (*env)->NewStringUTF(env, "cputime-processor"));
+ (*env)->CallBooleanMethod(env, result, set_add, (*env)->NewStringUTF(env, "cputime-thread"));
+ return result;
+}
+
+JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_NativeECLibrary_setNativeTimingType(JNIEnv *env, jobject self, jstring type) {
+ const char *type_data = (*env)->GetStringUTFChars(env, type, NULL);
+
+ if (strcmp(type_data, "rdtsc") == 0) {
+ func_timing_resolution = &rdtsc_timing_resolution;
+ func_timing_start = &rdtsc_timing_start;
+ func_timing_pause = &rdtsc_timing_pause;
+ func_timing_restart = &rdtsc_timing_restart;
+ func_timing_stop = &rdtsc_timing_stop;
+ func_timing_last = &rdtsc_timing_last;
+ unit = rdtsc_unit;
+ return JNI_TRUE;
+ } else {
+ if (strcmp(type_data, "monotonic") == 0) {
+ clk_id = CLOCK_MONOTONIC;
+ } else if (strcmp(type_data, "monotonic-raw") == 0) {
+ clk_id = CLOCK_MONOTONIC_RAW;
+ } else if (strcmp(type_data, "cputime-processor") == 0) {
+ clk_id = CLOCK_PROCESS_CPUTIME_ID;
+ } else if (strcmp(type_data, "cputime-thread") == 0) {
+ clk_id = CLOCK_THREAD_CPUTIME_ID;
+ } else {
+ return JNI_FALSE;
+ }
+
+ func_timing_resolution = &clock_timing_resolution;
+ func_timing_start = &clock_timing_start;
+ func_timing_pause = &clock_timing_pause;
+ func_timing_restart = &clock_timing_restart;
+ func_timing_stop = &clock_timing_stop;
+ func_timing_last = &clock_timing_last;
+ unit = clock_unit;
+ return JNI_TRUE;
+ }
+}
+
+JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_NativeECLibrary_getNativeTimingResolution(JNIEnv *env, jobject self) {
+ return native_timing_resolution();
+}
+
+JNIEXPORT jstring JNICALL Java_cz_crcs_ectester_standalone_libs_NativeECLibrary_getNativeTimingUnit(JNIEnv *env, jobject self) {
+ return (*env)->NewStringUTF(env, unit);
+}
+
+JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_NativeECLibrary_getLastNativeTiming(JNIEnv *env, jobject self) {
+ return native_timing_last();
+}
+
+jlong native_timing_resolution() {
+ return func_timing_resolution();
+}
+
+void native_timing_start() {
+ func_timing_start();
+}
+
+void native_timing_pause() {
+ func_timing_pause();
+}
+
+void native_timing_restart() {
+ func_timing_restart();
+}
+
+void native_timing_stop() {
+ func_timing_stop();
+}
+
+jlong native_timing_last() {
+ return func_timing_last();
+}
+
#elif defined(__WIN32__) || defined(_MSC_VER)
#include <Windows.h>
+#error TODO
static LARGE_INTEGER start = {0};
static LARGE_INTEGER end = {0};
@@ -97,6 +230,7 @@ jlong native_timing_last() {
#else
+#error TODO
jboolean native_timing_supported() {
return JNI_FALSE;
}
@@ -117,4 +251,4 @@ jlong native_timing_last() {
return 0;
}
-#endif \ No newline at end of file
+#endif
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/c_timing.h b/src/cz/crcs/ectester/standalone/libs/jni/c_timing.h
index 3325c06..e12ccdd 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/c_timing.h
+++ b/src/cz/crcs/ectester/standalone/libs/jni/c_timing.h
@@ -10,38 +10,35 @@ extern "C"
/**
*
*/
-jboolean native_timing_supported();
+__attribute__((visibility("default"))) jlong native_timing_resolution();
/**
*
*/
-jlong native_timing_resolution();
+__attribute__((visibility("default"))) void native_timing_start();
/**
*
*/
-void native_timing_start();
+__attribute__((visibility("default"))) void native_timing_pause();
/**
*
*/
-void native_timing_pause();
+__attribute__((visibility("default"))) void native_timing_restart();
/**
*
*/
-void native_timing_restart();
+__attribute__((visibility("default"))) void native_timing_stop();
/**
*
*/
-void native_timing_stop();
+__attribute__((visibility("default"))) jlong native_timing_last();
+
-/**
- *
- */
-jlong native_timing_last();
#ifdef __cplusplus
}
-#endif \ No newline at end of file
+#endif
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/cryptopp.cpp b/src/cz/crcs/ectester/standalone/libs/jni/cryptopp.cpp
index 089724e..eb782b7 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/cryptopp.cpp
+++ b/src/cz/crcs/ectester/standalone/libs/jni/cryptopp.cpp
@@ -764,16 +764,4 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
}
// unreachable
return JNI_FALSE;
-}
-
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_CryptoppLib_supportsNativeTiming(JNIEnv *env, jobject self) {
- return native_timing_supported();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_CryptoppLib_getNativeTimingResolution(JNIEnv *env, jobject self) {
- return native_timing_resolution();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_CryptoppLib_getLastNativeTiming(JNIEnv *env, jobject self) {
- return native_timing_last();
} \ No newline at end of file
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/gcrypt.c b/src/cz/crcs/ectester/standalone/libs/jni/gcrypt.c
index 359d0f4..5d29d2c 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/gcrypt.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/gcrypt.c
@@ -620,16 +620,4 @@ release_init:
gcry_sexp_release(pub_sexp);
gcry_sexp_release(data_sexp);
return result;
-}
-
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_GcryptLib_supportsNativeTiming(JNIEnv *env, jobject this) {
- return native_timing_supported();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_GcryptLib_getNativeTimingResolution(JNIEnv *env, jobject this) {
- return native_timing_resolution();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_GcryptLib_getLastNativeTiming(JNIEnv *env, jobject this) {
- return native_timing_last();
} \ No newline at end of file
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/ippcp.c b/src/cz/crcs/ectester/standalone/libs/jni/ippcp.c
index fc27460..9846f71 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/ippcp.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/ippcp.c
@@ -694,16 +694,4 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
}
return JNI_FALSE;
-}
-
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_IppcpLib_supportsNativeTiming(JNIEnv *env, jobject this) {
- return native_timing_supported();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_IppcpLib_getNativeTimingResolution(JNIEnv *env, jobject this) {
- return native_timing_resolution();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_IppcpLib_getLastNativeTiming(JNIEnv *env, jobject this) {
- return native_timing_last();
-}
+} \ No newline at end of file
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/matrixssl.c b/src/cz/crcs/ectester/standalone/libs/jni/matrixssl.c
index 1e6936d..d336a4f 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/matrixssl.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/matrixssl.c
@@ -394,17 +394,4 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
}
return result < 0 ? JNI_FALSE : JNI_TRUE;
-}
-
-
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_MatrixsslLib_supportsNativeTiming(JNIEnv *env, jobject this) {
- return native_timing_supported();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_MatrixsslLib_getNativeTimingResolution(JNIEnv *env, jobject this) {
- return native_timing_resolution();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_MatrixsslLib_getLastNativeTiming(JNIEnv *env, jobject this) {
- return native_timing_last();
} \ No newline at end of file
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/mbedtls.c b/src/cz/crcs/ectester/standalone/libs/jni/mbedtls.c
index 0239bdb..05010cf 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/mbedtls.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/mbedtls.c
@@ -541,16 +541,4 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
}
return JNI_TRUE;
-}
-
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_MbedTLSLib_supportsNativeTiming(JNIEnv *env, jobject this) {
- return native_timing_supported();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_MbedTLSLib_getNativeTimingResolution(JNIEnv *env, jobject this) {
- return native_timing_resolution();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_MbedTLSLib_getLastNativeTiming(JNIEnv *env, jobject this) {
- return native_timing_last();
} \ No newline at end of file
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/mscng.c b/src/cz/crcs/ectester/standalone/libs/jni/mscng.c
index 7f3ff5d..a182b98 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/mscng.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/mscng.c
@@ -1270,16 +1270,4 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
throw_new_var(env, "java/security/GeneralSecurityException", "Error 0x%x returned by BCryptVerifySignature\n", status);
return JNI_FALSE;
}
-}
-
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_MscngLib_supportsNativeTiming(JNIEnv *env, jobject self) {
- return native_timing_supported();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_MscngLib_getNativeTimingResolution(JNIEnv *env, jobject self) {
- return native_timing_resolution();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_MscngLib_getLastNativeTiming(JNIEnv *env, jobject self) {
- return native_timing_last();
} \ No newline at end of file
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/native.h b/src/cz/crcs/ectester/standalone/libs/jni/native.h
index 7540ce8..f4a9052 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/native.h
+++ b/src/cz/crcs/ectester/standalone/libs/jni/native.h
@@ -1,36 +1,82 @@
/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
-/* Header for class cz_crcs_ectester_standalone_libs_TomcryptLib */
+/* Header for class cz_crcs_ectester_standalone_libs_jni_Loader */
-#ifndef _Included_cz_crcs_ectester_standalone_libs_TomcryptLib
-#define _Included_cz_crcs_ectester_standalone_libs_TomcryptLib
+#ifndef _Included_cz_crcs_ectester_standalone_libs_jni_Loader
+#define _Included_cz_crcs_ectester_standalone_libs_jni_Loader
#ifdef __cplusplus
extern "C" {
#endif
/*
- * Class: cz_crcs_ectester_standalone_libs_TomcryptLib
- * Method: supportsNativeTiming
- * Signature: ()Z
+ * Class: cz_crcs_ectester_standalone_libs_jni_Loader
+ * Method: setup
+ * Signature: (Ljava/lang/String;)V
+ */
+JNIEXPORT void JNICALL Java_cz_crcs_ectester_standalone_libs_jni_Loader_setup
+ (JNIEnv *, jclass, jstring);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
+/* Header for class cz_crcs_ectester_standalone_libs_NativeECLibrary */
+
+#ifndef _Included_cz_crcs_ectester_standalone_libs_NativeECLibrary
+#define _Included_cz_crcs_ectester_standalone_libs_NativeECLibrary
+#ifdef __cplusplus
+extern "C" {
+#endif
+/*
+ * Class: cz_crcs_ectester_standalone_libs_NativeECLibrary
+ * Method: getNativeTimingSupport
+ * Signature: ()Ljava/util/Set;
*/
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_TomcryptLib_supportsNativeTiming
+JNIEXPORT jobject JNICALL Java_cz_crcs_ectester_standalone_libs_NativeECLibrary_getNativeTimingSupport
(JNIEnv *, jobject);
/*
- * Class: cz_crcs_ectester_standalone_libs_TomcryptLib
+ * Class: cz_crcs_ectester_standalone_libs_NativeECLibrary
+ * Method: setNativeTimingType
+ * Signature: (Ljava/lang/String;)Z
+ */
+JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_NativeECLibrary_setNativeTimingType
+ (JNIEnv *, jobject, jstring);
+
+/*
+ * Class: cz_crcs_ectester_standalone_libs_NativeECLibrary
* Method: getNativeTimingResolution
* Signature: ()J
*/
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_TomcryptLib_getNativeTimingResolution
+JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_NativeECLibrary_getNativeTimingResolution
(JNIEnv *, jobject);
/*
- * Class: cz_crcs_ectester_standalone_libs_TomcryptLib
+ * Class: cz_crcs_ectester_standalone_libs_NativeECLibrary
+ * Method: getNativeTimingUnit
+ * Signature: ()Ljava/lang/String;
+ */
+JNIEXPORT jstring JNICALL Java_cz_crcs_ectester_standalone_libs_NativeECLibrary_getNativeTimingUnit
+ (JNIEnv *, jobject);
+
+/*
+ * Class: cz_crcs_ectester_standalone_libs_NativeECLibrary
* Method: getLastNativeTiming
* Signature: ()J
*/
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_TomcryptLib_getLastNativeTiming
+JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_NativeECLibrary_getLastNativeTiming
(JNIEnv *, jobject);
+#ifdef __cplusplus
+}
+#endif
+#endif
+/* Header for class cz_crcs_ectester_standalone_libs_TomcryptLib */
+
+#ifndef _Included_cz_crcs_ectester_standalone_libs_TomcryptLib
+#define _Included_cz_crcs_ectester_standalone_libs_TomcryptLib
+#ifdef __cplusplus
+extern "C" {
+#endif
/*
* Class: cz_crcs_ectester_standalone_libs_TomcryptLib
* Method: createProvider
@@ -214,30 +260,6 @@ extern "C" {
#endif
/*
* Class: cz_crcs_ectester_standalone_libs_BotanLib
- * Method: supportsNativeTiming
- * Signature: ()Z
- */
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_BotanLib_supportsNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_BotanLib
- * Method: getNativeTimingResolution
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_BotanLib_getNativeTimingResolution
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_BotanLib
- * Method: getLastNativeTiming
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_BotanLib_getLastNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_BotanLib
* Method: createProvider
* Signature: ()Ljava/security/Provider;
*/
@@ -419,30 +441,6 @@ extern "C" {
#endif
/*
* Class: cz_crcs_ectester_standalone_libs_CryptoppLib
- * Method: supportsNativeTiming
- * Signature: ()Z
- */
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_CryptoppLib_supportsNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_CryptoppLib
- * Method: getNativeTimingResolution
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_CryptoppLib_getNativeTimingResolution
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_CryptoppLib
- * Method: getLastNativeTiming
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_CryptoppLib_getLastNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_CryptoppLib
* Method: createProvider
* Signature: ()Ljava/security/Provider;
*/
@@ -624,30 +622,6 @@ extern "C" {
#endif
/*
* Class: cz_crcs_ectester_standalone_libs_OpensslLib
- * Method: supportsNativeTiming
- * Signature: ()Z
- */
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_OpensslLib_supportsNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_OpensslLib
- * Method: getNativeTimingResolution
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_OpensslLib_getNativeTimingResolution
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_OpensslLib
- * Method: getLastNativeTiming
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_OpensslLib_getLastNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_OpensslLib
* Method: createProvider
* Signature: ()Ljava/security/Provider;
*/
@@ -829,30 +803,6 @@ extern "C" {
#endif
/*
* Class: cz_crcs_ectester_standalone_libs_MscngLib
- * Method: supportsNativeTiming
- * Signature: ()Z
- */
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_MscngLib_supportsNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_MscngLib
- * Method: getNativeTimingResolution
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_MscngLib_getNativeTimingResolution
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_MscngLib
- * Method: getLastNativeTiming
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_MscngLib_getLastNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_MscngLib
* Method: createProvider
* Signature: ()Ljava/security/Provider;
*/
@@ -1034,30 +984,6 @@ extern "C" {
#endif
/*
* Class: cz_crcs_ectester_standalone_libs_BoringsslLib
- * Method: supportsNativeTiming
- * Signature: ()Z
- */
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_BoringsslLib_supportsNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_BoringsslLib
- * Method: getNativeTimingResolution
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_BoringsslLib_getNativeTimingResolution
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_BoringsslLib
- * Method: getLastNativeTiming
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_BoringsslLib_getLastNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_BoringsslLib
* Method: createProvider
* Signature: ()Ljava/security/Provider;
*/
@@ -1239,30 +1165,6 @@ extern "C" {
#endif
/*
* Class: cz_crcs_ectester_standalone_libs_GcryptLib
- * Method: supportsNativeTiming
- * Signature: ()Z
- */
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_GcryptLib_supportsNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_GcryptLib
- * Method: getNativeTimingResolution
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_GcryptLib_getNativeTimingResolution
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_GcryptLib
- * Method: getLastNativeTiming
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_GcryptLib_getLastNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_GcryptLib
* Method: createProvider
* Signature: ()Ljava/security/Provider;
*/
@@ -1444,30 +1346,6 @@ extern "C" {
#endif
/*
* Class: cz_crcs_ectester_standalone_libs_MbedTLSLib
- * Method: supportsNativeTiming
- * Signature: ()Z
- */
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_MbedTLSLib_supportsNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_MbedTLSLib
- * Method: getNativeTimingResolution
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_MbedTLSLib_getNativeTimingResolution
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_MbedTLSLib
- * Method: getLastNativeTiming
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_MbedTLSLib_getLastNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_MbedTLSLib
* Method: createProvider
* Signature: ()Ljava/security/Provider;
*/
@@ -1649,30 +1527,6 @@ extern "C" {
#endif
/*
* Class: cz_crcs_ectester_standalone_libs_IppcpLib
- * Method: supportsNativeTiming
- * Signature: ()Z
- */
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_IppcpLib_supportsNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_IppcpLib
- * Method: getNativeTimingResolution
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_IppcpLib_getNativeTimingResolution
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_IppcpLib
- * Method: getLastNativeTiming
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_IppcpLib_getLastNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_IppcpLib
* Method: createProvider
* Signature: ()Ljava/security/Provider;
*/
@@ -1854,30 +1708,6 @@ extern "C" {
#endif
/*
* Class: cz_crcs_ectester_standalone_libs_MatrixsslLib
- * Method: supportsNativeTiming
- * Signature: ()Z
- */
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_MatrixsslLib_supportsNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_MatrixsslLib
- * Method: getNativeTimingResolution
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_MatrixsslLib_getNativeTimingResolution
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_MatrixsslLib
- * Method: getLastNativeTiming
- * Signature: ()J
- */
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_MatrixsslLib_getLastNativeTiming
- (JNIEnv *, jobject);
-
-/*
- * Class: cz_crcs_ectester_standalone_libs_MatrixsslLib
* Method: createProvider
* Signature: ()Ljava/security/Provider;
*/
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/openssl.c b/src/cz/crcs/ectester/standalone/libs/jni/openssl.c
index 1e1ba02..103a9be 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/openssl.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/openssl.c
@@ -582,16 +582,4 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
EC_KEY_free(pub);
EC_GROUP_free(curve);
return (result == 1) ? JNI_TRUE : JNI_FALSE;
-}
-
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_OpensslLib_supportsNativeTiming(JNIEnv *env, jobject this) {
- return native_timing_supported();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_OpensslLib_getNativeTimingResolution(JNIEnv *env, jobject this) {
- return native_timing_resolution();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_OpensslLib_getLastNativeTiming(JNIEnv *env, jobject this) {
- return native_timing_last();
} \ No newline at end of file
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c b/src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c
index 6789ba8..82592f1 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c
@@ -462,16 +462,4 @@ JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeSigna
(*env)->ReleaseByteArrayElements(env, signature, sig_data, JNI_ABORT);
free_curve(curve);
return result;
-}
-
-JNIEXPORT jboolean JNICALL Java_cz_crcs_ectester_standalone_libs_TomcryptLib_supportsNativeTiming(JNIEnv *env, jobject this) {
- return native_timing_supported();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_TomcryptLib_getNativeTimingResolution(JNIEnv *env, jobject this) {
- return native_timing_resolution();
-}
-
-JNIEXPORT jlong JNICALL Java_cz_crcs_ectester_standalone_libs_TomcryptLib_getLastNativeTiming(JNIEnv *env, jobject this) {
- return native_timing_last();
} \ No newline at end of file