Commit Graph
24 Commits
Author SHA1 Message Date
kngako d74895079d Fix for handling ids33 in JNI 2024-08-21 21:35:27 +02:00
kngako f5ab7fdeb7 Improve JNI handling of frost share gen 2024-08-20 01:39:22 +02:00
kngako be7f11d657 Return outputs of frost_shares_gen on jni 2024-08-19 23:58:15 +02:00
kngako 6e578d43d7 More logic for the JNI stuff 2024-08-19 22:14:27 +02:00
kngako b1e96f329b Increase test and fix some compiler errors on the JNI side. 2024-08-19 21:40:56 +02:00
kngako 32ee077995 Improve pointer handling logic 2024-08-14 09:14:34 +02:00
kngako 41ddd40691 Return byteArray instead of array of byteArrays 2024-08-13 01:41:45 +02:00
kngako 3efca867e6 Fix NativeSecp256k1 call 2024-08-12 23:23:26 +02:00
kngako 28d255daca Knock out some todos 2024-08-12 02:55:41 +02:00
kngako 5c4186770f Fix comments on secp256k1_frost_partial_sig_agg 2024-08-07 03:09:20 +02:00
kngako 86d7d9835f Handle inputs/outputs and nulls correctly. 2024-08-07 02:48:25 +02:00
kngako 23739e13a8 Add comments to Secp256k1CFunctions.h 2024-08-07 02:30:43 +02:00
kngako eb71fd5ff4 Improve arguments 2024-08-06 02:11:57 +02:00
kngako b064c0bcf0 Check arguments to constraints 2024-08-06 00:19:55 +02:00
kngako 9e287feb26 Cinterop for arrays of pointers 2024-08-05 22:34:45 +02:00
kngako 3c01a2aad4 Use frost in Secp256k1 native logic 2024-08-04 23:53:28 +02:00
Fabrice Drouin 567f411e12 Verify musig2 secret nonces (#108)
* Verify musig2 secret nonces

Trying to generate a musig2 partial signature with a secret nonce that was generated with a public key that does not match the signing key's public key will trigger secp256k1's illegal callback (which calls abort()) and crash the application.

=> Here we verify that the secret nonce matches the signing key before we call secp256k1_musig_partial_sign().
The verification method is a bit hackish (we extract the public key from the secret nonce blob) because secp256k1 does not export the methods we need to do this cleanly.
2024-04-18 09:54:51 +02:00
Fabrice DrouinandBastien Teinturier 202b0c94b6 Add support for musig2 (#93)
* Use Jonas Nick's musig2 branch

* Reformat c code (no functional changes)

* Implement musig2

* Add documentation to musig2 functions (#97)

Usage of the Musig2 functions isn't intuitive at all, especially with
the key aggregation cache and session data. It's important to provide
accurate documentation to help users understand how to correctly produce
musig2 signatures.

We also change argument names to match Kotlin best practices instead of
using the same argument names as C functions.

* Add musig2 reference tests (no functional changes)

---------

Co-authored-by: Bastien Teinturier <31281497+t-bast@users.noreply.github.com>
2024-02-14 13:28:22 +01:00
Fabrice Drouin d4eba9fb96 Update to kotlin 1.6 (#63)
Use kotlin 1.6 (and gradle 7.5.1)
2022-09-21 16:00:19 +02:00
Fabrice Drouin ac7d4983d5 Export Schnorr signature API (#32)
Implement Schnorr signatures (BIP 340)
2021-11-23 17:38:46 +01:00
Bastien Teinturier f695e7453d Clean up and enrich tests (#35)
* Harmonize parameter names
* Document methods
* Replace pubKeyAdd with pubKeyCombine
* Clean-up tests
2021-10-26 17:16:36 +02:00
sstone 08d1692932 Add compact2der() method 2020-07-02 21:39:33 +02:00
Fabrice DrouinandSalomon BRYS 3ee2635d93 Upgrade JNI interface (#1)
* Upgrade JNI interface

* Input signatures can be DER or compact format, output signatures are always in compact format

* Input public keys can be compressed or uncompressed, output public keys are always uncompressed

* Name and parameters match libsecp256k1's

* JNI implementation is now straightforward

  No more ByteBuffers
  Exceptions are thrown in case of failures

* Update src/nativeMain/kotlin/fr/acinq/secp256k1/Secp256k1Native.kt

* Add public key compression method

Co-authored-by: Salomon BRYS <salomon.brys@gmail.com>
2020-07-02 17:52:21 +02:00
Salomon BRYS 6e4763e55b Using javac to generate header 2020-07-01 13:53:26 +02:00