Improve JNI handling of frost share gen
This commit is contained in:
parent
08f0304d4c
commit
f5ab7fdeb7
@ -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;
|
||||
|
@ -145,18 +145,22 @@ public object NativeSecp256k1 : Secp256k1 {
|
||||
totalSigners,
|
||||
ids33
|
||||
)
|
||||
println(Hex.encode(result))
|
||||
|
||||
val shares = Array(totalSigners) { index ->
|
||||
val startIndex = 0 + (index*32);
|
||||
val endIndex = 32 + (index*32);
|
||||
val endIndex = 31 + (index*32);
|
||||
|
||||
result.sliceArray(
|
||||
startIndex..endIndex
|
||||
)
|
||||
}
|
||||
|
||||
val vssCommitment = Array(totalSigners) { index ->
|
||||
val startIndex = 0 + (index*65);
|
||||
val endIndex = 65 + (index*65);
|
||||
val sharesOffset = totalSigners*32;
|
||||
|
||||
val vssCommitment = Array(threshold) { index ->
|
||||
val startIndex = sharesOffset + (index*65);
|
||||
val endIndex = sharesOffset + 64 + (index*65);
|
||||
|
||||
result.sliceArray(
|
||||
startIndex..endIndex
|
||||
|
Loading…
x
Reference in New Issue
Block a user