Add Fr.setLittleEndianMod to JNI

update-fork
Johannes Gallmann 4 years ago
parent 081db6d229
commit 5ea94c2f51
  1. 2
      ffi/java/MclTest.java
  2. 4
      ffi/java/com/herumi/mcl/Fr.java
  3. 1
      ffi/java/com/herumi/mcl/MclJNI.java
  4. 10
      ffi/java/mcl_impl.hpp
  5. 31
      ffi/java/mcl_wrap.cxx

@ -51,6 +51,8 @@ public class MclTest {
Fr t = new Fr();
t.deserialize(b);
assertBool("serialize", x.equals(t));
t.setLittleEndianMod(b);
assertBool("setLittleEndianMod", x.equals(t));
}
G1 P = new G1();
System.out.println("P=" + P);

@ -96,6 +96,10 @@ public class Fr {
MclJNI.Fr_deserialize(swigCPtr, this, cbuf);
}
public void setLittleEndianMod(byte[] cbuf) {
MclJNI.Fr_setLittleEndianMod(swigCPtr, this, cbuf);
}
public byte[] serialize() { return MclJNI.Fr_serialize(swigCPtr, this); }
}

@ -33,6 +33,7 @@ public class MclJNI {
public final static native String Fr_toString__SWIG_0(long jarg1, Fr jarg1_, int jarg2);
public final static native String Fr_toString__SWIG_1(long jarg1, Fr jarg1_);
public final static native void Fr_deserialize(long jarg1, Fr jarg1_, byte[] jarg2);
public final static native void Fr_setLittleEndianMod(long jarg1, Fr jarg1_, byte[] jarg2);
public final static native byte[] Fr_serialize(long jarg1, Fr jarg1_);
public final static native void delete_Fr(long jarg1);
public final static native void neg__SWIG_1(long jarg1, Fp jarg1_, long jarg2, Fp jarg2_);

@ -28,6 +28,12 @@ void deserializeT(T& x, const char *cbuf, size_t bufSize)
}
}
template<class T>
void setLittleEndianModT(T& x, const char *cbuf, size_t bufSize)
{
x.setLittleEndianMod(cbuf, bufSize);
}
template<class T>
void serializeT(std::string& out, const T& x)
{
@ -88,6 +94,10 @@ public:
{
deserializeT(self_, cbuf, bufSize);
}
void setLittleEndianMod(const char *cbuf, size_t bufSize) throw(std::exception)
{
setLittleEndianModT(self_, cbuf, bufSize);
}
void serialize(std::string& out) const throw(std::exception)
{
serializeT(out, self_);

@ -789,6 +789,37 @@ SWIGEXPORT void JNICALL Java_com_herumi_mcl_MclJNI_Fr_1deserialize(JNIEnv *jenv,
}
SWIGEXPORT void JNICALL Java_com_herumi_mcl_MclJNI_Fr_1setLittleEndianMod(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jbyteArray jarg2) {
Fr *arg1 = (Fr *) 0 ;
char *arg2 = (char *) 0 ;
size_t arg3 ;
(void)jenv;
(void)jcls;
(void)jarg1_;
arg1 = *(Fr **)&jarg1;
{
if (jarg2) {
arg2 = (char *) jenv->GetByteArrayElements(jarg2, 0);
arg3 = (size_t) jenv->GetArrayLength(jarg2);
} else {
arg2 = 0;
arg3 = 0;
}
}
try {
(arg1)->setLittleEndianMod((char const *)arg2,arg3);
} catch(std::exception &_e) {
SWIG_JavaThrowException(jenv, SWIG_JavaRuntimeException, (&_e)->what());
return ;
}
{
if (jarg2) jenv->ReleaseByteArrayElements(jarg2, (jbyte *)arg2, 0);
}
}
SWIGEXPORT jbyteArray JNICALL Java_com_herumi_mcl_MclJNI_Fr_1serialize(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_) {
jbyteArray jresult = 0 ;
Fr *arg1 = (Fr *) 0 ;

Loading…
Cancel
Save