1+ {
2+ "n" : 3 ,
3+ "t" : 2 ,
4+ "threshold_pubkey" : " 03B02645D79ABFC494338139410F9D7F0A72BE86C952D6BDE1A66447B8A8D69237" ,
5+ "identifiers" : [
6+ 0 ,
7+ 1 ,
8+ 2
9+ ],
10+ "pubshares" : [
11+ " 022B02109FBCFB4DA3F53C7393B22E72A2A51C4AFBF0C01AAF44F73843CFB4B74B" ,
12+ " 02EC6444271D791A1DA95300329DB2268611B9C60E193DABFDEE0AA816AE512583" ,
13+ " 03113F810F612567D9552F46AF9BDA21A67D52060F95BD4A723F4B60B1820D3676"
14+ ],
15+ "pubnonces" : [
16+ " 0330935948101543C50AF2FA7A7A4F7073CEB73290CA141497EF06E0269363162D0358785EB5CD7C1626CAB55C59B484E1B3147FA4EB919224ECB04BAB1271022A5C" ,
17+ " 0244D225137BC9390069C9D4D230B6D0942A1A3D72678B638B81F3416B6FEA719C02B1C7E637FD51FE2BC2C91CB6ACA0EA6A8BB30A33A0589D369687EAA33BFC5FA8" ,
18+ " 0332DAA54E451217D6F14747B72634D1E9E21B247C8E92397ABFEE296BD714772403FE1674C2B2B8076D641CEC4B2E6DF054C3D60AA77352A55233B40AC12046C312"
19+ ],
20+ "tweaks" : [
21+ " B511DA492182A91B0FFB9A98020D55F260AE86D7ECBD0399C7383D59A5F2AF7C" ,
22+ " A815FE049EE3C5AAB66310477FBC8BCCCAC2F3395F59F921C364ACD78A2F48DC" ,
23+ " 75448A87274B056468B977BE06EB1E9F657577B7320B0A3376EA51FD420D18A8"
24+ ],
25+ "msg" : " 599C67EA410D005B9DA90817CF03ED3B1C868E4DA4EDF00A5880B0082C237869" ,
26+ "valid_test_cases" : [
27+ {
28+ "id_indices" : [
29+ 0 ,
30+ 1
31+ ],
32+ "pubshare_indices" : [
33+ 0 ,
34+ 1
35+ ],
36+ "pubnonce_indices" : [
37+ 0 ,
38+ 1
39+ ],
40+ "aggnonce" : " 022AAC6A4960DE35FC36D8E2DC06255C5CB7FD28250DFD84EBF1AC943B1EA22C3502178AD06BB0490BAD857446FEF55C15FD9FF4329F4EE2F23CA8B7CA0598014910" ,
41+ "tweak_indices" : [],
42+ "is_xonly" : [],
43+ "psigs" : [
44+ " 09CA21FA4AE22BBB49EE5ABC091519C8695FB74FC3D39C1437019EF6FE6C7AB4" ,
45+ " D0750AE90E8475A6E984AE9159E0C4510851672D6D5C26260F643448FF0AC3EB"
46+ ],
47+ "expected" : " 90495647B268390A2ABA2518AEEEF699620C783EF21DF2800BB3C38CAE6755C7DA3F2CE35966A1623373094D62F5DE1971B11E7D312FC23A4665D33FFD773E9F" ,
48+ "comment" : " Signing with minimum number of participants"
49+ },
50+ {
51+ "id_indices" : [
52+ 1 ,
53+ 0
54+ ],
55+ "pubshare_indices" : [
56+ 1 ,
57+ 0
58+ ],
59+ "pubnonce_indices" : [
60+ 1 ,
61+ 0
62+ ],
63+ "aggnonce" : " 022AAC6A4960DE35FC36D8E2DC06255C5CB7FD28250DFD84EBF1AC943B1EA22C3502178AD06BB0490BAD857446FEF55C15FD9FF4329F4EE2F23CA8B7CA0598014910" ,
64+ "tweak_indices" : [],
65+ "is_xonly" : [],
66+ "psigs" : [
67+ " D0750AE90E8475A6E984AE9159E0C4510851672D6D5C26260F643448FF0AC3EB" ,
68+ " 09CA21FA4AE22BBB49EE5ABC091519C8695FB74FC3D39C1437019EF6FE6C7AB4"
69+ ],
70+ "expected" : " 90495647B268390A2ABA2518AEEEF699620C783EF21DF2800BB3C38CAE6755C7DA3F2CE35966A1623373094D62F5DE1971B11E7D312FC23A4665D33FFD773E9F" ,
71+ "comment" : " Order of the singer set shouldn't affect the aggregate signature. The expected value must match the previous test vector."
72+ },
73+ {
74+ "id_indices" : [
75+ 0 ,
76+ 1
77+ ],
78+ "pubshare_indices" : [
79+ 0 ,
80+ 1
81+ ],
82+ "pubnonce_indices" : [
83+ 0 ,
84+ 1
85+ ],
86+ "aggnonce" : " 022AAC6A4960DE35FC36D8E2DC06255C5CB7FD28250DFD84EBF1AC943B1EA22C3502178AD06BB0490BAD857446FEF55C15FD9FF4329F4EE2F23CA8B7CA0598014910" ,
87+ "tweak_indices" : [
88+ 0 ,
89+ 1 ,
90+ 2
91+ ],
92+ "is_xonly" : [
93+ true ,
94+ false ,
95+ false
96+ ],
97+ "psigs" : [
98+ " 19689B0B3F32C7696FF2C90CF1E6DC8311F96EC7D6307EF56085C78C3FF6C828" ,
99+ " B7290A65BE76B17C8756D77EF0395D5F219CDF7EA8D63886132C9011938F241C"
100+ ],
101+ "expected" : " 7430808B048AD9EAA6240B047B790CF24DB878DC3AC31C1B528289ED3AA70C067CA7AA1E418135268A336415D4B634E1F845A981F21B69FD3ADDF7D81D41FAB8" ,
102+ "comment" : " Signing with tweaked threshold public key"
103+ },
104+ {
105+ "id_indices" : [
106+ 0 ,
107+ 1 ,
108+ 2
109+ ],
110+ "pubshare_indices" : [
111+ 0 ,
112+ 1 ,
113+ 2
114+ ],
115+ "pubnonce_indices" : [
116+ 0 ,
117+ 1 ,
118+ 2
119+ ],
120+ "aggnonce" : " 0282E58B733AB1B74D1C54B960D668E4298C3EF9F406D44249FB30C403568A1B14039B38604D0FD33E07C3EB81BBDAE39A38A82A1D9E325112A24F0F5480582C9CEE" ,
121+ "tweak_indices" : [],
122+ "is_xonly" : [],
123+ "psigs" : [
124+ " 13036985653E36780C30AFB253D9E506EA2FD5E30439C507D337DA4062898066" ,
125+ " C665E007CC6D1294105580FC46764C8F49D1A44DE9D574F5C3DF72E6636B383E" ,
126+ " F5352AB8BD2C34F466ACF16046A222DAFB45FBF6327AC4E8EE6C10C8FED9EF33"
127+ ],
128+ "expected" : " 553247A24AF9A15C4D495968C0467FE6651F3584FDD671CBAE05BBC850577DD8CE9E7445EED77E008333220EE0F254727498994071415EAAC5B0FF62F4986696" ,
129+ "comment" : " Signing with max number of participants and tweaked threshold public key"
130+ }
131+ ],
132+ "error_test_cases" : [
133+ {
134+ "id_indices" : [
135+ 0 ,
136+ 1
137+ ],
138+ "pubshare_indices" : [
139+ 0 ,
140+ 1
141+ ],
142+ "pubnonce_indices" : [
143+ 0 ,
144+ 1
145+ ],
146+ "aggnonce" : " 022AAC6A4960DE35FC36D8E2DC06255C5CB7FD28250DFD84EBF1AC943B1EA22C3502178AD06BB0490BAD857446FEF55C15FD9FF4329F4EE2F23CA8B7CA0598014910" ,
147+ "tweak_indices" : [],
148+ "is_xonly" : [],
149+ "psigs" : [
150+ " 09CA21FA4AE22BBB49EE5ABC091519C8695FB74FC3D39C1437019EF6FE6C7AB4" ,
151+ " FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141"
152+ ],
153+ "error" : {
154+ "type" : " InvalidContributionError" ,
155+ "signer_index" : 1 ,
156+ "contrib" : " psig"
157+ },
158+ "comment" : " Partial signature is invalid because it exceeds group size"
159+ },
160+ {
161+ "id_indices" : [
162+ 0 ,
163+ 1
164+ ],
165+ "pubshare_indices" : [
166+ 0 ,
167+ 1
168+ ],
169+ "pubnonce_indices" : [
170+ 0 ,
171+ 1
172+ ],
173+ "aggnonce" : " 022AAC6A4960DE35FC36D8E2DC06255C5CB7FD28250DFD84EBF1AC943B1EA22C3502178AD06BB0490BAD857446FEF55C15FD9FF4329F4EE2F23CA8B7CA0598014910" ,
174+ "tweak_indices" : [],
175+ "is_xonly" : [],
176+ "psigs" : [
177+ " 09CA21FA4AE22BBB49EE5ABC091519C8695FB74FC3D39C1437019EF6FE6C7AB4"
178+ ],
179+ "error" : {
180+ "type" : " ValueError" ,
181+ "message" : " The psigs and ids arrays must have the same length."
182+ },
183+ "comment" : " Partial signature count doesn't match the signer set count"
184+ }
185+ ]
186+ }
0 commit comments