aboutsummaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/standalone/libs/jni/cpp_utils.cpp
diff options
context:
space:
mode:
authorJ08nY2017-12-12 12:32:25 +0100
committerJ08nY2017-12-12 12:32:25 +0100
commit4dbc748a207bcee2c8fbe22566646b27a9f61dc0 (patch)
treefdf069ac9a25ff82f9509826425bd4796c514da0 /src/cz/crcs/ectester/standalone/libs/jni/cpp_utils.cpp
parente329190e496ecf847cfd7afa886ac08cacb2fc92 (diff)
parent9e8fbbc907f4157988ac425af4dce541f7e42328 (diff)
downloadECTester-4dbc748a207bcee2c8fbe22566646b27a9f61dc0.tar.gz
ECTester-4dbc748a207bcee2c8fbe22566646b27a9f61dc0.tar.zst
ECTester-4dbc748a207bcee2c8fbe22566646b27a9f61dc0.zip
Merge branch 'feature/standalone-lib-testing' into devel
Diffstat (limited to 'src/cz/crcs/ectester/standalone/libs/jni/cpp_utils.cpp')
-rw-r--r--src/cz/crcs/ectester/standalone/libs/jni/cpp_utils.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/cz/crcs/ectester/standalone/libs/jni/cpp_utils.cpp b/src/cz/crcs/ectester/standalone/libs/jni/cpp_utils.cpp
new file mode 100644
index 0000000..ed59d51
--- /dev/null
+++ b/src/cz/crcs/ectester/standalone/libs/jni/cpp_utils.cpp
@@ -0,0 +1,54 @@
+#include "cpp_utils.hpp"
+
+jclass ec_parameter_spec_class;
+jclass ecgen_parameter_spec_class;
+jclass pubkey_class;
+jclass privkey_class;
+jclass keypair_class;
+jclass elliptic_curve_class;
+jclass fp_field_class;
+jclass f2m_field_class;
+jclass point_class;
+jclass biginteger_class;
+jclass illegal_state_exception_class;
+
+void init_classes(JNIEnv *env, std::string lib_name) {
+ jclass local_ec_parameter_spec_class = env->FindClass("java/security/spec/ECParameterSpec");
+ ec_parameter_spec_class = (jclass) env->NewGlobalRef(local_ec_parameter_spec_class);
+
+ jclass local_ecgen_parameter_spec_class = env->FindClass("java/security/spec/ECGenParameterSpec");
+ ecgen_parameter_spec_class = (jclass) env->NewGlobalRef(local_ecgen_parameter_spec_class);
+
+ std::string pubkey_class_name("cz/crcs/ectester/standalone/libs/jni/NativeECPublicKey$");
+ pubkey_class_name += lib_name;
+
+ jclass local_pubkey_class = env->FindClass(pubkey_class_name.c_str());
+ pubkey_class = (jclass) env->NewGlobalRef(local_pubkey_class);
+
+ std::string privkey_class_name("cz/crcs/ectester/standalone/libs/jni/NativeECPrivateKey$");
+ privkey_class_name += lib_name;
+
+ jclass local_privkey_class = env->FindClass(privkey_class_name.c_str());
+ privkey_class = (jclass) env->NewGlobalRef(local_privkey_class);
+
+ jclass local_keypair_class = env->FindClass("java/security/KeyPair");
+ keypair_class = (jclass) env->NewGlobalRef(local_keypair_class);
+
+ jclass local_elliptic_curve_class = env->FindClass("java/security/spec/EllipticCurve");
+ elliptic_curve_class = (jclass) env->NewGlobalRef(local_elliptic_curve_class);
+
+ jclass local_fp_field_class = env->FindClass("java/security/spec/ECFieldFp");
+ fp_field_class = (jclass) env->NewGlobalRef(local_fp_field_class);
+
+ jclass local_f2m_field_class = env->FindClass("java/security/spec/ECFieldF2m");
+ f2m_field_class = (jclass) env->NewGlobalRef(local_f2m_field_class);
+
+ jclass local_biginteger_class = env->FindClass("java/math/BigInteger");
+ biginteger_class = (jclass) env->NewGlobalRef(local_biginteger_class);
+
+ jclass local_point_class = env->FindClass("java/security/spec/ECPoint");
+ point_class = (jclass) env->NewGlobalRef(local_point_class);
+
+ jclass local_illegal_state_exception_class = env->FindClass("java/lang/IllegalStateException");
+ illegal_state_exception_class = (jclass) env->NewGlobalRef(local_illegal_state_exception_class);
+} \ No newline at end of file