diff options
| author | J08nY | 2017-11-28 23:46:00 +0100 |
|---|---|---|
| committer | J08nY | 2017-11-28 23:46:00 +0100 |
| commit | 58271abb0977ef2179a8506bba41005bb2af2869 (patch) | |
| tree | 6000f98bc6e11a84a830da3eb80b79eee46a6021 | |
| parent | cd117b707bfae0271b86b5c647d2fbc72dd3676c (diff) | |
| download | ECTester-58271abb0977ef2179a8506bba41005bb2af2869.tar.gz ECTester-58271abb0977ef2179a8506bba41005bb2af2869.tar.zst ECTester-58271abb0977ef2179a8506bba41005bb2af2869.zip | |
| -rw-r--r-- | build-standalone.xml | 10 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/standalone/libs/NativeECLibrary.java | 2 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/standalone/libs/jni/NativeProvider.java | 9 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/standalone/libs/jni/TomCryptProvider.java | 11 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/standalone/libs/jni/native.h | 38 | ||||
| -rw-r--r-- | src/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c | 19 |
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; |
