Tim Ruffing
d23c23e24d
musig: Update to BIP v1.0.0-rc.4 (Check pubnonce in NonceGen vectors)
2023-03-03 22:31:28 +01:00
Jonas Nick
a1ec2bb67b
musig: add test for signing with wrong secnonce for a keypair
2023-03-03 12:55:00 +00:00
Jonas Nick
bd57a017aa
musig: include pubkey in secnonce and compare when signing
2023-03-03 12:55:00 +00:00
Jonas Nick
068e6a036a
musig: add test vectors from BIP MuSig
2023-02-13 14:03:51 +00:00
Jonas Nick
36621d13be
musig: update to BIP v1.0.0-rc.2 "Add ''pk'' arg to ''NonceGen''"
2023-02-13 14:03:51 +00:00
Jonas Nick
d717a4980b
musig: update to BIP v0.8 "Switch from X-only to plain pk inputs."
2023-02-13 14:03:51 +00:00
Jonas Nick
060887e9d7
musig: update to BIP v0.5.1 "Rename ordinary tweaking to plain"
2023-02-13 14:03:51 +00:00
Jonas Nick
cbe2815633
musig: update to BIP v0.4 "Allow the output of NonceAgg to be inf"
2023-01-23 09:36:46 +00:00
Jonas Nick
206017d67d
musig: update to BIP v0.3 (NonceGen)
...
- 0.3.0: Hash i - 1 instead of i in NonceGen
- 0.2.0: Change order of arguments in NonceGen hash function
2023-01-23 09:36:45 +00:00
Jonas Nick
d800dd55db
musig: remove test vectors
...
These vectors are superseded by test vectors in BIP MuSig2 which will be added
in a later commit.
2023-01-23 09:36:45 +00:00
Andrew Poelstra
5a40f3d99b
replace memcmp with secp256k1_memcmp_var throughout the codebase
...
memcmp only appears in -zkp-specific modules. Fix those.
2022-08-10 22:14:31 +00:00
Jonas Nick
510b61a803
musig: add test vectors for applying multiple tweaks
2022-04-04 21:38:46 +00:00
Jonas Nick
f0edc90755
musig: fix number of tweaks in tweak_test
2022-02-07 13:56:56 +00:00
Elliott Jin
8088eddc53
musig: add test vector for ordinary (non xonly) tweaking
2022-01-21 17:07:06 +00:00
Jonas Nick
37107361a0
musig: allow ordinary, non-xonly tweaking
2022-01-21 17:07:06 +00:00
Jonas Nick
c519b46879
musig: add pubkey_get to obtain a full pubkey from a keyagg_cache
2022-01-21 17:07:06 +00:00
Jonas Nick
b7ebe6436c
Test APIs of funcs that need an ecmult_gen ctx with static ctx
...
The API tests of upstream functions were similarly amended in commit 3b0c2185eab0fe5cb910fffee4c88e134f6d3cad.
2022-01-04 12:57:57 +00:00
Jonas Nick
72c8deac03
Merge commits with sync-upstream.sh
...
da0092bc 10f9bd84 297ce820 f34b5cae 920a0e5f 9526874d aa1b889b 20d791ed 3e7b2ea1 21c188b3 8fa41201 515a5dbd c74a7b7e 74c34e72 7006f1b9 ea5e8a9c 793ad901 2e5e4b67 fecf436d 49f608de 49002274 6ad908aa 4f01840b 61ae37c6 486205aa 5d0dbef0 0559fc6e be6944ad a69df3ad b39d431a 0b83b203 09971a3f 9281c9f4 423b6d19 a310e79e 39a36db9 a1102b12
Deal with
- secp256k1_test_rng removal in commit
77a19750b46916b93bb6a08837c26f585bd940fa
- ecmult_gen context simplification after making table static in commit
3b0c2185eab0fe5cb910fffee4c88e134f6d3cad
2022-01-02 16:11:15 +00:00
Jonas Nick
22c88815c7
musig: replace MuSig(1) with MuSig2
2021-12-17 13:47:23 +00:00
Jonas Nick
938725c1c9
Merge commits 'd7ec49a6 9a5a87e0 aa5d34a8 2a3a97c6 ' into temp-merge-976
...
Also remove remaining uses of ecmult context in secp-zkp and update API tests
accordingly.
2021-09-16 15:21:11 +00:00
Jonas Nick
881b15cb43
Merge elementsproject/secp256k1-zkp#139 : musig: use tagged hash for the list of pubkeys to aggregate
...
8f093be374da794b835302bfb81a72e2bdd51d26 musig: use tagged hash for the list of pubkeys to aggregate (Jonas Nick)
a6a768a4bf3a243609e508c492307cb0fe754bda musig: make key agg test vector more precise (Jonas Nick)
Pull request description:
Top commit has no ACKs.
Tree-SHA512: 5369dc5b4039dd4cda2c50282db2882c088b96e1daa5801240f92be1832ed8f29317fdbfc3cab211707155c284a68dc593967f3141703e2544f6b8dc1553e44d
2021-08-02 11:34:07 +00:00
Andrew Poelstra
2979e4d9d4
Merge commits '8ae56e33 75ce488c 4866178d 446d28d9 253f90cd ec3aaa50 0440945f 7688a4f1 be8d9c26 ' into temp-merge-965
2021-07-27 18:12:45 +00:00
Jonas Nick
8f093be374
musig: use tagged hash for the list of pubkeys to aggregate
...
This is done to use tagged hashing consistently. Changes the musig test vectors.
2021-07-27 11:37:10 +00:00
Jonas Nick
a6a768a4bf
musig: make key agg test vector more precise
2021-07-27 10:06:22 +00:00
Jonas Nick
f27fd1d5e7
musig: improve test coverage of pubkey_combine
2021-07-14 19:59:38 +00:00
Jonas Nick
56014e8ca0
musig: change pubkey_combine arg to array of pointers to pks
...
... instead of taking an array of pubkeys directly
2021-07-14 19:59:38 +00:00
Jonas Nick
4a9b059b16
musig: rename Musig coefficient to KeyAgg coefficient
...
This is done to be consistent with the MuSig2 paper
2021-07-14 19:59:19 +00:00
Jonas Nick
4bc46d836e
musig: optimize key aggregation using const 1 for 2nd key
2021-07-14 19:58:54 +00:00
Jonas Nick
2310849f50
musig: compute musig coefficient by hashing key instead of index
2021-07-14 19:41:38 +00:00
Jonas Nick
9683c8a7eb
musig: add static test vectors for key aggregation
2021-07-14 19:41:38 +00:00
Jonas Nick
649bf201d8
musig: fix tests for 32-bit
2021-03-10 13:20:01 +00:00
Jonas Nick
b9d91b3ecb
musig: add pubkey_tweak_add function to allow taproot tweaking
2020-11-30 15:40:09 +00:00
Jonas Nick
38a8b20991
musig: fix memory leak in musig test
2020-11-13 16:05:37 +00:00
Jonas Nick
5b4eb18ec5
musig: shorten partial nonce byte array from 33 to 32 bytes
2020-11-13 16:05:37 +00:00
Jonas Nick
62f0b2d867
musig: make musig partial nonces byte arrays instead of "pubkeys"
2020-11-13 16:05:37 +00:00
Jonas Nick
2117e7466a
musig: improve variable naming and be consistent with schnorrsig module
...
session_initialize -> session_init
msg_is_set -> is_msg_set
is_negated -> pk_parity
nonce_is_negated -> nonce_parity
2020-11-13 16:05:36 +00:00
Jonas Nick
ebc31f1f9d
musig: add ARG_CHECKs to functions to help debuggability
2020-11-13 16:05:36 +00:00
Jonas Nick
ac2d0e6697
musig: add magic to session to detect if session is uninitalized
2020-11-13 16:05:36 +00:00
Jonas Nick
29b4bd85d7
musig: simplify state machine by adding explicit round to session struct
2020-11-13 16:05:36 +00:00
Jonas Nick
b0917f3de1
Merge remote-tracking branch 'upstream/master' into temp-merge-835
2020-11-05 20:21:38 +00:00
Jonas Nick
23900a0d86
Fix the MuSig module after integrating bip-schnorr updates
...
1. using xonly_pubkeys in MuSig for input public keys and the combined
pk. For that to work we need to store whether the MuSig aggregated point
has an even y in the session, may need to negate each signers secret
key and may need to negate each signers public key in
musig_partial_sig_verify.
2. using a tagged hash for the message hash.
3. use !fe_is_odd in place of fe_is_quad_var
2020-11-04 21:47:09 +00:00
Jonas Nick
96201b4f6e
Require message in musig protocol in an earlier state. In particular,
...
remove the set_msg function and require the message in get_public_nonce
at the latest.
2020-07-24 14:59:36 +02:00
Jonas Nick
4fd0d56e37
Fix my_index in musig state machine tests
2020-07-24 14:59:36 +02:00
Jonas Nick
d924027765
Add tweak32 parameter to musig_partial_sig_combine which allows to sign for p2c/taproot commitments
2020-07-24 14:59:36 +02:00
Jonas Nick
b86c210747
Add MuSig module which allows creating n-of-n multisignatures and adaptor signatures.
2020-07-24 14:59:36 +02:00