Skip to content

Commit 9532af3

Browse files
committed
ctime_test: add musig
1 parent 247316f commit 9532af3

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

src/valgrind_ctime_test.c

+48
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
#include <valgrind/memcheck.h>
88
#include <stdio.h>
9+
#include <string.h>
910

1011
#include "include/secp256k1.h"
1112
#include "assumptions.h"
@@ -35,6 +36,10 @@
3536
#include "include/secp256k1_ecdsa_adaptor.h"
3637
#endif
3738

39+
#ifdef ENABLE_MODULE_MUSIG
40+
#include "include/secp256k1_musig.h"
41+
#endif
42+
3843
void run_tests(secp256k1_context *ctx, unsigned char *key);
3944

4045
int main(void) {
@@ -241,4 +246,47 @@ void run_tests(secp256k1_context *ctx, unsigned char *key) {
241246
CHECK(ret == 0);
242247
}
243248
#endif
249+
250+
#ifdef ENABLE_MODULE_MUSIG
251+
{
252+
secp256k1_xonly_pubkey pk;
253+
const secp256k1_xonly_pubkey *pk_ptr[1];
254+
secp256k1_xonly_pubkey combined_pk;
255+
unsigned char session_id[32];
256+
secp256k1_musig_secnonce secnonce;
257+
unsigned char pubnonce[66];
258+
const unsigned char *pubnonce_ptr[1];
259+
secp256k1_musig_pre_session pre_session;
260+
secp256k1_musig_session_cache session_cache;
261+
secp256k1_musig_template sig_template;
262+
secp256k1_musig_partial_signature partial_sig;
263+
unsigned char extra_input[32];
264+
265+
pk_ptr[0] = &pk;
266+
pubnonce_ptr[0] = pubnonce;
267+
VALGRIND_MAKE_MEM_DEFINED(key, 32);
268+
memcpy(session_id, key, sizeof(session_id));
269+
session_id[0] = key[0] + 1;
270+
memcpy(extra_input, session_id, sizeof(extra_input));
271+
extra_input[0] = session_id[0] + 1;
272+
273+
CHECK(secp256k1_keypair_create(ctx, &keypair, key));
274+
CHECK(secp256k1_keypair_xonly_pub(ctx, &pk, NULL, &keypair));
275+
CHECK(secp256k1_musig_pubkey_combine(ctx, NULL, &combined_pk, &pre_session, pk_ptr, 1) == 1);
276+
VALGRIND_MAKE_MEM_UNDEFINED(key, 32);
277+
VALGRIND_MAKE_MEM_UNDEFINED(session_id, 32);
278+
VALGRIND_MAKE_MEM_UNDEFINED(extra_input, 32);
279+
ret = secp256k1_musig_session_init(ctx, &secnonce, pubnonce, session_id, key, msg, &combined_pk, extra_input);
280+
VALGRIND_MAKE_MEM_DEFINED(&ret, sizeof(ret));
281+
CHECK(ret == 1);
282+
CHECK(secp256k1_musig_process_nonces(ctx, &session_cache, &sig_template, NULL, pubnonce_ptr, 1, msg, &combined_pk, &pre_session, NULL) == 1);
283+
284+
ret = secp256k1_keypair_create(ctx, &keypair, key);
285+
VALGRIND_MAKE_MEM_DEFINED(&ret, sizeof(ret));
286+
CHECK(ret == 1);
287+
ret = secp256k1_musig_partial_sign(ctx, &partial_sig, &secnonce, &keypair, &pre_session, &session_cache);
288+
VALGRIND_MAKE_MEM_DEFINED(&ret, sizeof(ret));
289+
CHECK(ret == 1);
290+
}
291+
#endif
244292
}

0 commit comments

Comments
 (0)