aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ08nY2017-11-28 23:46:00 +0100
committerJ08nY2017-11-28 23:46:00 +0100
commit58271abb0977ef2179a8506bba41005bb2af2869 (patch)
tree6000f98bc6e11a84a830da3eb80b79eee46a6021
parentcd117b707bfae0271b86b5c647d2fbc72dd3676c (diff)
downloadECTester-58271abb0977ef2179a8506bba41005bb2af2869.tar.gz
ECTester-58271abb0977ef2179a8506bba41005bb2af2869.tar.zst
ECTester-58271abb0977ef2179a8506bba41005bb2af2869.zip
-rw-r--r--build-standalone.xml10
-rw-r--r--src/cz/crcs/ectester/standalone/libs/NativeECLibrary.java2
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/NativeProvider.java9
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/TomCryptProvider.java11
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/native.h38
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c19
6 files changed, 54 insertions, 35 deletions
diff --git a/build-standalone.xml b/build-standalone.xml
index 447b9b1..300eec8 100644
--- a/build-standalone.xml
+++ b/build-standalone.xml
@@ -71,14 +71,20 @@
nbproject/build-impl.xml file.
-->
- <target name="package" depends="jar">
+ <target name="package" depends="jar,libs">
<property name="store.jar.name" value="ECTesterStandalone-dist"/>
<antcall target="dist-build.package"/>
</target>
+ <target name="libs">
+ <exec dir="src/cz/crcs/ectester/standalone/libs/jni" executable="make" osfamily="unix"/>
+ </target>
+ <target name="-post-clean">
+ <exec dir="src/cz/crcs/ectester/standalone/libs/jni" executable="make clean" osfamily="unix"/>
+ </target>
<target name="headers" depends="compile">
<javah classpath="${build.classes.dir}" outputfile="src/cz/crcs/ectester/standalone/libs/jni/native.h">
<class name="cz.crcs.ectester.standalone.libs.TomcryptLib"/>
- <class name="cz.crcs.ectester.standalone.libs.jni.TomCryptProvider"/>
+ <class name="cz.crcs.ectester.standalone.libs.jni.NativeProvider$TomCrypt"/>
</javah>
</target>
</project>
diff --git a/src/cz/crcs/ectester/standalone/libs/NativeECLibrary.java b/src/cz/crcs/ectester/standalone/libs/NativeECLibrary.java
index 5d1b9d7..e059c19 100644
--- a/src/cz/crcs/ectester/standalone/libs/NativeECLibrary.java
+++ b/src/cz/crcs/ectester/standalone/libs/NativeECLibrary.java
@@ -83,7 +83,7 @@ public abstract class NativeECLibrary extends ProviderECLibrary {
provider = createProvider();
return super.initialize();
- } catch (IOException ignored) {
+ } catch (IOException | UnsatisfiedLinkError ignored) {
}
return false;
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/NativeProvider.java b/src/cz/crcs/ectester/standalone/libs/jni/NativeProvider.java
index 43b7827..53f8b3c 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/NativeProvider.java
+++ b/src/cz/crcs/ectester/standalone/libs/jni/NativeProvider.java
@@ -22,4 +22,13 @@ public abstract class NativeProvider extends Provider {
abstract void setup();
+ public static class TomCrypt extends NativeProvider {
+
+ public TomCrypt(String name, double version, String info) {
+ super(name, version, info);
+ }
+
+ @Override
+ native void setup();
+ }
}
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/TomCryptProvider.java b/src/cz/crcs/ectester/standalone/libs/jni/TomCryptProvider.java
deleted file mode 100644
index 01e4c17..0000000
--- a/src/cz/crcs/ectester/standalone/libs/jni/TomCryptProvider.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package cz.crcs.ectester.standalone.libs.jni;
-
-public class TomCryptProvider extends NativeProvider {
-
- public TomCryptProvider(String name, double version, String info) {
- super(name, version, info);
- }
-
- @Override
- native void setup();
-}
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/native.h b/src/cz/crcs/ectester/standalone/libs/jni/native.h
index 83ef841..e4e5009 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/native.h
+++ b/src/cz/crcs/ectester/standalone/libs/jni/native.h
@@ -19,33 +19,33 @@ JNIEXPORT jobject JNICALL Java_cz_crcs_ectester_standalone_libs_TomcryptLib_crea
}
#endif
#endif
-/* Header for class cz_crcs_ectester_standalone_libs_jni_TomCryptProvider */
+/* Header for class cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt */
-#ifndef _Included_cz_crcs_ectester_standalone_libs_jni_TomCryptProvider
-#define _Included_cz_crcs_ectester_standalone_libs_jni_TomCryptProvider
+#ifndef _Included_cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt
+#define _Included_cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt
#ifdef __cplusplus
extern "C" {
#endif
-#undef cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_serialVersionUID
-#define cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_serialVersionUID 1421746759512286392LL
-#undef cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_MAX_ARRAY_SIZE
-#define cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_MAX_ARRAY_SIZE 2147483639L
-#undef cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_KEYS
-#define cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_KEYS 0L
-#undef cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_VALUES
-#define cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_VALUES 1L
-#undef cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_ENTRIES
-#define cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_ENTRIES 2L
-#undef cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_serialVersionUID
-#define cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_serialVersionUID 4112578634029874840LL
-#undef cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_serialVersionUID
-#define cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_serialVersionUID -4298000515446427739LL
+#undef cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt_serialVersionUID
+#define cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt_serialVersionUID 1421746759512286392LL
+#undef cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt_MAX_ARRAY_SIZE
+#define cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt_MAX_ARRAY_SIZE 2147483639L
+#undef cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt_KEYS
+#define cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt_KEYS 0L
+#undef cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt_VALUES
+#define cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt_VALUES 1L
+#undef cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt_ENTRIES
+#define cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt_ENTRIES 2L
+#undef cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt_serialVersionUID
+#define cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt_serialVersionUID 4112578634029874840LL
+#undef cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt_serialVersionUID
+#define cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt_serialVersionUID -4298000515446427739LL
/*
- * Class: cz_crcs_ectester_standalone_libs_jni_TomCryptProvider
+ * Class: cz_crcs_ectester_standalone_libs_jni_NativeProvider_TomCrypt
* Method: setup
* Signature: ()V
*/
-JNIEXPORT void JNICALL Java_cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_setup
+JNIEXPORT void JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeProvider_00024TomCrypt_setup
(JNIEnv *, jobject);
#ifdef __cplusplus
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c b/src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c
index 43ae06b..db1de88 100644
--- a/src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c
+++ b/src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c
@@ -4,7 +4,7 @@
#include <tomcrypt.h>
JNIEXPORT jobject JNICALL Java_cz_crcs_ectester_standalone_libs_TomcryptLib_createProvider(JNIEnv *env, jobject this) {
- jclass provider_class = (*env)->FindClass(env, "cz/crcs/ectester/standalone/libs/jni/TomCryptProvider");
+ jclass provider_class = (*env)->FindClass(env, "cz/crcs/ectester/standalone/libs/jni/NativeProvider$TomCrypt");
jmethodID init = (*env)->GetMethodID(env, provider_class, "<init>", "(Ljava/lang/String;DLjava/lang/String;)V");
if (init == NULL) {
@@ -15,8 +15,23 @@ JNIEXPORT jobject JNICALL Java_cz_crcs_ectester_standalone_libs_TomcryptLib_crea
return (*env)->NewObject(env, provider_class, init, name, version, name);
}
-JNIEXPORT void JNICALL Java_cz_crcs_ectester_standalone_libs_jni_TomCryptProvider_setup(JNIEnv *env, jobject this) {
+JNIEXPORT void JNICALL Java_cz_crcs_ectester_standalone_libs_jni_NativeProvider_00024TomCrypt_setup(JNIEnv *env, jobject this) {
+
+ /* Initialize libtommath as the math lib. */
ltc_mp = ltm_desc;
+
+ jclass provider_class = (*env)->FindClass(env, "cz/crcs/ectester/standalone/libs/jni/NativeProvider$TomCrypt");
+
+ jmethodID put = (*env)->GetMethodID(env, provider_class, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
+ if (put == NULL) {
+ return;
+ }
+ const ltc_ecc_set_type * curve = ltc_ecc_sets;
+ while (curve->name != NULL) {
+ printf("%s\n", curve->name);
+ curve++;
+ }
+
/* Just test ecc key generation at this time. */
ecc_key mykey;
prng_state prng;