/** * public static native int BN_mod_exp(int, int, int, int, int) */ static jboolean NativeBN_BN_mod_exp(JNIEnv* env, jclass cls, BIGNUM* r, BIGNUM* a, BIGNUM* p, BIGNUM* m, BN_CTX* ctx) { if (!fourValidHandles(env, r, a, p, m)) return FALSE; return BN_mod_exp(r, a, p, m, ctx); }
/** * public static native boolean BN_div(int, int, int, int, int) */ static jboolean NativeBN_BN_div(JNIEnv* env, jclass cls, BIGNUM* dv, BIGNUM* rem, BIGNUM* m, BIGNUM* d, BN_CTX* ctx) { if (!fourValidHandles(env, (rem ? rem : dv), (dv ? dv : rem), m, d)) return FALSE; return BN_div(dv, rem, m, d, ctx); }
static jboolean NativeBN_BN_mod_exp(JNIEnv* env, jclass, BIGNUM* r, BIGNUM* a, BIGNUM* p, BIGNUM* m) { if (!fourValidHandles(env, r, a, p, m)) return JNI_FALSE; Unique_BN_CTX ctx(BN_CTX_new()); return BN_mod_exp(r, a, p, m, ctx.get()); }
static jboolean NativeBN_BN_div(JNIEnv* env, jclass, BIGNUM* dv, BIGNUM* rem, BIGNUM* m, BIGNUM* d) { if (!fourValidHandles(env, (rem ? rem : dv), (dv ? dv : rem), m, d)) return JNI_FALSE; Unique_BN_CTX ctx(BN_CTX_new()); return BN_div(dv, rem, m, d, ctx.get()); }
extern "C" void Java_java_math_NativeBN_BN_1mod_1exp(JNIEnv* env, jclass, jlong r, jlong a, jlong p, jlong m) { if (!fourValidHandles(env, r, a, p, m)) return; Unique_BN_CTX ctx(BN_CTX_new()); BN_mod_exp(toBigNum(r), toBigNum(a), toBigNum(p), toBigNum(m), ctx.get()); throwExceptionIfNecessary(env); }
extern "C" void Java_java_math_NativeBN_BN_1div(JNIEnv* env, jclass, jlong dv, jlong rem, jlong m, jlong d) { if (!fourValidHandles(env, (rem ? rem : dv), (dv ? dv : rem), m, d)) return; Unique_BN_CTX ctx(BN_CTX_new()); BN_div(toBigNum(dv), toBigNum(rem), toBigNum(m), toBigNum(d), ctx.get()); throwExceptionIfNecessary(env); }