Improve JNI handling of frost share gen

This commit is contained in:
kngako
2024-08-20 01:39:22 +02:00
parent 08f0304d4c
commit f5ab7fdeb7
2 changed files with 22 additions and 12 deletions

View File

@@ -1379,7 +1379,7 @@ JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256
jbyte *pubkeyBytes;
unsigned char seed32[32];
unsigned char *ids33[jn_participants];
const jbyte *ids33[jn_participants];
if (jctx == 0)
return NULL;
@@ -1399,17 +1399,23 @@ JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256
copy_bytes_from_java(penv, jseed32, size, seed32);
size = (*penv)->GetArrayLength(penv, jids33);
CHECKRESULT(size != jn_participants, "invalid ids33 size");
CHECKRESULT(size != jn_participants, "ids33 needs to be of size jn_participants");
CHECKRESULT((*penv)->GetArrayLength(penv, jpok64) != 64, "pok64 length must be 64 bytes");
// for (i = 0; i < jn_participants; i++)
// {
// jbyteArray jid33 = (jbyteArray)(*penv)->GetObjectArrayElement(penv, jids33, i);
// size = (*penv)->GetArrayLength(penv, jid33);
// CHECKRESULT(size != 33, "invalid id33 size");
// copy_bytes_from_java(penv, jid33, 33, ids33[i]);
// }
for (i = 0; i < jn_participants; i++)
{
jbyteArray jid33 = (jbyteArray)(*penv)->GetObjectArrayElement(penv, jids33, i);
size = (*penv)->GetArrayLength(penv, jid33);
CHECKRESULT(size != 33, "invalid id33 size");
copy_bytes_from_java(penv, jid33, 33, ids33[i]);
}
{
jbyteArray id33 = (jbyteArray)(*penv)->GetObjectArrayElement(penv, jids33, i);
// TODO: Check id33 size is 33...
ids33[i] = (*penv)->GetByteArrayElements(penv, id33, 0);
}
int sharesLength = jn_participants * 32;
int vssCommitmentLength = jthreshold * 65;