aboutsummaryrefslogtreecommitdiff
path: root/src/cz/crcs/ectester/standalone/libs/jni/cpp_utils.cpp
blob: ed59d51b9338f71c91f91b2a477fafddf8d0aceb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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);
}