Fix for handling ids33 in JNI
This commit is contained in:
@@ -301,13 +301,13 @@ public interface Secp256k1 {
|
||||
*
|
||||
* threshold can be deduced from the size of the pubnonces array.
|
||||
*/
|
||||
public fun frostNonceProcess(publicNonces: Array<ByteArray>, msg32: ByteArray, publicKey: ByteArray, id33: ByteArray, ids33: Array<ByteArray>, tweakCache: ByteArray?, adaptor: ByteArray?): ByteArray
|
||||
public fun frostNonceProcess(publicNonces: Array<ByteArray>, threshold: Int, msg32: ByteArray, publicKey: ByteArray, id33: ByteArray, ids33: Array<ByteArray>, tweakCache: ByteArray?, adaptor: ByteArray?): ByteArray
|
||||
|
||||
public fun frostPartialSign(secnonce: ByteArray, share: ByteArray, session: ByteArray, tweakCache: ByteArray?): ByteArray
|
||||
|
||||
public fun frostPartialSignatureVerify(partialSig: ByteArray, publicNonce: ByteArray, publicShare: ByteArray, session: ByteArray, tweakCache: ByteArray?): Int
|
||||
|
||||
public fun frostPartialSignatureAggregate(session: ByteArray, partialSignatures: Array<ByteArray>): ByteArray
|
||||
public fun frostPartialSignatureAggregate(session: ByteArray, partialSignatures: Array<ByteArray>, threshold: Int): ByteArray
|
||||
|
||||
/**
|
||||
* Delete the secp256k1 context from dynamic memory.
|
||||
|
||||
@@ -788,6 +788,7 @@ public object Secp256k1Native : Secp256k1 {
|
||||
|
||||
override fun frostNonceProcess(
|
||||
publicNonces: Array<ByteArray>,
|
||||
threshold: Int,
|
||||
msg32: ByteArray,
|
||||
publicKey: ByteArray,
|
||||
id33: ByteArray,
|
||||
@@ -800,6 +801,7 @@ public object Secp256k1Native : Secp256k1 {
|
||||
}
|
||||
require(msg32.size == 32) { "msg32 (${msg32.size}) size should be 32" }
|
||||
require(publicKey.size == Secp256k1.SERIALIZED_X_ONLY_PUBKEY_SIZE) { "publicKey size (${publicKey.size}) size should be ${Secp256k1.SERIALIZED_X_ONLY_PUBKEY_SIZE}" }
|
||||
require(ids33.size == threshold) { "ids33 array size much match public nonces array size"}
|
||||
ids33.forEach {
|
||||
require(it.size == 33) { "id33 (${it.size}) size should be 33" }
|
||||
}
|
||||
@@ -939,10 +941,16 @@ public object Secp256k1Native : Secp256k1 {
|
||||
}
|
||||
}
|
||||
|
||||
override fun frostPartialSignatureAggregate(session: ByteArray, partialSignatures: Array<ByteArray>): ByteArray {
|
||||
require(session.size == Secp256k1.FROST_SESSION_SIZE)
|
||||
override fun frostPartialSignatureAggregate(
|
||||
session: ByteArray,
|
||||
partialSignatures: Array<ByteArray>,
|
||||
threshold: Int
|
||||
): ByteArray {
|
||||
require(threshold > 1) { "threshold must be greater then 1" }
|
||||
require(session.size == Secp256k1.FROST_SESSION_SIZE) { "session size (${session.size}) should be ${Secp256k1.FROST_SESSION_SIZE}" }
|
||||
require(partialSignatures.size == threshold) { "partialSignatures array size should match the threshold size" }
|
||||
partialSignatures.forEach { partialSig ->
|
||||
require(partialSig.size == 32)
|
||||
require(partialSig.size == 32) { "partialSignatures size (${partialSig.size}) should be 32" }
|
||||
}
|
||||
|
||||
memScoped {
|
||||
@@ -957,7 +965,7 @@ public object Secp256k1Native : Secp256k1 {
|
||||
toNat(sig64),
|
||||
nSession.ptr,
|
||||
nPartialSignatures.toCValues(),
|
||||
partialSignatures.size.convert()
|
||||
threshold.convert()
|
||||
)
|
||||
|
||||
return sig64
|
||||
|
||||
Reference in New Issue
Block a user