diff options
| author | J08nY | 2024-05-20 13:37:35 +0200 |
|---|---|---|
| committer | J08nY | 2024-05-20 13:37:35 +0200 |
| commit | 0bc459385a67f0a0f09abda7c1c768fc14e20a5f (patch) | |
| tree | 281cdd020b1bbad26c516a79d5c703f6d3720e49 /standalone/src | |
| parent | 025d1f9db13e8eb72f28b743e5a8884b6d259a24 (diff) | |
| download | ECTester-0bc459385a67f0a0f09abda7c1c768fc14e20a5f.tar.gz ECTester-0bc459385a67f0a0f09abda7c1c768fc14e20a5f.tar.zst ECTester-0bc459385a67f0a0f09abda7c1c768fc14e20a5f.zip | |
Diffstat (limited to 'standalone/src')
| -rw-r--r-- | standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c b/standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c index 9593e9b..23f28ca 100644 --- a/standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c +++ b/standalone/src/main/resources/cz/crcs/ectester/standalone/libs/jni/tomcrypt.c @@ -192,6 +192,22 @@ static ltc_ecc_set_type* create_curve(JNIEnv *env, jobject params) { jmethodID get_p = (*env)->GetMethodID(env, fp_field_class, "getP", "()Ljava/math/BigInteger;"); jobject p = (*env)->CallObjectMethod(env, field, get_p); + jmethodID biginteger_valueof = (*env)->GetStaticMethodID(env, biginteger_class, "valueOf", "(J)Ljava/math/BigInteger;"); + jobject three = (*env)->CallStaticObjectMethod(env, biginteger_class, biginteger_valueof, (jlong) 3); + + jmethodID get_a = (*env)->GetMethodID(env, elliptic_curve_class, "getA", "()Ljava/math/BigInteger;"); + jobject a = (*env)->CallObjectMethod(env, elliptic_curve, get_a); + + jmethodID biginteger_add = (*env)->GetMethodID(env, biginteger_class, "add", "(Ljava/math/BigInteger;)Ljava/math/BigInteger;"); + jobject a_3 = (*env)->CallObjectMethod(env, a, biginteger_add, three); + + jmethodID biginteger_equals = (*env)->GetMethodID(env, biginteger_class, "equals", "(Ljava/lang/Object;)Z"); + jboolean eq = (*env)->CallBooleanMethod(env, p, biginteger_equals, a_3); + + if (!eq) { + return NULL; + } + jmethodID get_g = (*env)->GetMethodID(env, ec_parameter_spec_class, "getGenerator", "()Ljava/security/spec/ECPoint;"); jobject g = (*env)->CallObjectMethod(env, params, get_g); |
