Commit Graph
136 Commits
Author SHA1 Message Date
kngako 5117507f25 Full tests on native 2024-08-21 17:28:07 +02:00
kngako c39590a859 Broke the JNI now 2024-08-20 22:29:29 +02:00
kngako 83141916e8 JVM Tests hacks 2024-08-20 02:19:43 +02:00
kngako f5ab7fdeb7 Improve JNI handling of frost share gen 2024-08-20 01:39:22 +02:00
kngako 08f0304d4c Most test cases on JNI 2024-08-20 01:05:29 +02:00
kngako af3f44f426 Tests JNI share aggregate 2024-08-20 00:09:56 +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 e7f074d36e Getting started with unit tests 2024-08-18 01:27:04 +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 45c713d56e Conditional checks 2024-08-12 23:02:56 +02:00
kngako 8b56662685 Correct use of whitespace 2024-08-12 22:15:17 +02:00
kngako 28d255daca Knock out some todos 2024-08-12 02:55:41 +02:00
kngako 1b29cfa2d7 JNI implementations continued 2024-08-12 02:16:54 +02:00
kngako b439181376 JNI implementations 2024-08-11 03:43:30 +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 e7ec7b7478 Update Secp256k1CFunctions.h 2024-08-06 02:13:12 +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
Kgothatso 4826863644 Update secp git submodule 2024-08-03 19:56:03 +02:00
Kgothatso 099dcccf49 Make use of libsecp256k1 for musig+frost functions 2024-08-01 02:45:16 +02:00
Kgothatso 600431caa1 Update gitignore 2024-08-01 00:32:13 +02:00
kngako 30d690ee6e Add libsecp256k1-zkp submodule for frost logic 2024-07-31 07:59:58 +02:00
kngako 4e1b38d163 Remove secp256k1 submodule 2024-07-31 07:58:35 +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 Drouin eb92fccbd6 Build a universal JNI binary for macos (#106)
Universal libraries embed both arm64 and x64 binaries.
2024-03-12 10:09:34 +01:00
Fabrice Drouin d30e2a1b59 Set version to 0.15.0 (#105) v0.15.0 2024-03-04 19:29:52 +01:00
Fabrice Drouin bae4744bcb Add macos build targets (#104)
* Add macos build targets

* Update snapshot publishing script
2024-03-04 17:58:20 +01:00
Fabrice Drouin b2eb68bf83 Post release cleanup (#103)
* Set version to 0.15.0-SNAPSHOT

* Update publishing scripts
2024-02-14 18:28:19 +01:00
Fabrice Drouin c582396b96 Set version to 0.14.0 (#102) v0.14.0 2024-02-14 13:51:52 +01: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 780f97e46d Set version to 0.14.0-SNAPSHOT (#99) 2024-01-23 22:27:31 +01:00
Fabrice Drouin da2cf93fcf Update README.md 2024-01-23 21:55:59 +01:00
Fabrice Drouin f5e1655ff0 Set version to 0.13.0 (#98) v0.13.0 2024-01-23 16:46:55 +01:00
Fabrice Drouin 8ba5d4652e Use kotlin 1.9 (#92)
Use kotlin 1.9
2024-01-23 15:44:06 +01:00
Fabrice Drouin e94e41b896 Update secp256k1 to version 0.4.1 (#96)
Use secp256k1 0.4.1
2024-01-02 11:16:36 +01:00
Fabrice Drouin 1a4c8b37cb Release 0.12.0 (#95) v0.12.0 2023-12-13 16:40:32 +01:00
Fabrice Drouin f242b4ffe8 Check arguments passed to secp256k1 methods (#94)
* Check arguments passed to secp256k1 methods

Illegal arguments will trigger an internal callback that prints to stderr and calls abort.
We already check arguments in our JNI and kotlin native code but had missed 2 checks (recid in ecdsaRecover, empty arrays in pubkeyCombine).

* Implement the same "tweak" checks in the native code and JNI code

The native code was missing checks on the "tweak" size (which must be 32 bytes)
2023-12-13 13:42:14 +01:00
Fabrice Drouin 161da89ee1 Set version to 0.11.0 (#86) v0.11.0 2023-09-28 09:50:24 +02:00
Fabrice Drouin 3706a546a2 Use secp256k1 0.4.0 (#85) 2023-09-18 14:05:36 +02:00
Fabrice Drouin ffcaaf1b64 Set version to 0.10.1 (#84) v0.10.1 2023-06-28 13:03:19 +02:00
Fabrice Drouin 6ef94df247 Use secp256k1 0.3.2 (#83) 2023-06-28 10:43:05 +02:00
Fabrice Drouin 5169073a92 Update README.md 2023-05-15 11:15:30 +02:00