Skip to content

Commit 99e6568

Browse files
schnorrsig: Rename schnorrsig_sign to schnorsig_sign32 and deprecate
1 parent fc94a2d commit 99e6568

File tree

5 files changed

+38
-20
lines changed

5 files changed

+38
-20
lines changed

examples/schnorr.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ int main(void) {
9696
* improve security against side-channel attacks. Signing with a valid
9797
* context, verified keypair and the default nonce function should never
9898
* fail. */
99-
return_val = secp256k1_schnorrsig_sign(ctx, signature, msg_hash, &keypair, auxiliary_rand);
99+
return_val = secp256k1_schnorrsig_sign32(ctx, signature, msg_hash, &keypair, auxiliary_rand);
100100
assert(return_val);
101101

102102
/*** Verification ***/

include/secp256k1_schnorrsig.h

+12-1
Original file line numberDiff line numberDiff line change
@@ -116,14 +116,25 @@ typedef struct {
116116
* BIP-340 "Default Signing" for a full explanation of this
117117
* argument and for guidance if randomness is expensive.
118118
*/
119-
SECP256K1_API int secp256k1_schnorrsig_sign(
119+
SECP256K1_API int secp256k1_schnorrsig_sign32(
120120
const secp256k1_context* ctx,
121121
unsigned char *sig64,
122122
const unsigned char *msg32,
123123
const secp256k1_keypair *keypair,
124124
const unsigned char *aux_rand32
125125
) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4);
126126

127+
/** Same as secp256k1_schnorrsig_sign32, but DEPRECATED. Will be removed in
128+
* future versions. */
129+
SECP256K1_API int secp256k1_schnorrsig_sign(
130+
const secp256k1_context* ctx,
131+
unsigned char *sig64,
132+
const unsigned char *msg32,
133+
const secp256k1_keypair *keypair,
134+
const unsigned char *aux_rand32
135+
) SECP256K1_ARG_NONNULL(1) SECP256K1_ARG_NONNULL(2) SECP256K1_ARG_NONNULL(3) SECP256K1_ARG_NONNULL(4)
136+
SECP256K1_DEPRECATED("Use secp256k1_schnorrsig_sign32 instead");
137+
127138
/** Create a Schnorr signature with a more flexible API.
128139
*
129140
* Same arguments as secp256k1_schnorrsig_sign except that it allows signing

src/modules/schnorrsig/main_impl.h

+5-1
Original file line numberDiff line numberDiff line change
@@ -192,11 +192,15 @@ static int secp256k1_schnorrsig_sign_internal(const secp256k1_context* ctx, unsi
192192
return ret;
193193
}
194194

195-
int secp256k1_schnorrsig_sign(const secp256k1_context* ctx, unsigned char *sig64, const unsigned char *msg32, const secp256k1_keypair *keypair, const unsigned char *aux_rand32) {
195+
int secp256k1_schnorrsig_sign32(const secp256k1_context* ctx, unsigned char *sig64, const unsigned char *msg32, const secp256k1_keypair *keypair, const unsigned char *aux_rand32) {
196196
/* We cast away const from the passed aux_rand32 argument since we know the default nonce function does not modify it. */
197197
return secp256k1_schnorrsig_sign_internal(ctx, sig64, msg32, 32, keypair, secp256k1_nonce_function_bip340, (unsigned char*)aux_rand32);
198198
}
199199

200+
int secp256k1_schnorrsig_sign(const secp256k1_context* ctx, unsigned char *sig64, const unsigned char *msg32, const secp256k1_keypair *keypair, const unsigned char *aux_rand32) {
201+
return secp256k1_schnorrsig_sign32(ctx, sig64, msg32, keypair, aux_rand32);
202+
}
203+
200204
int secp256k1_schnorrsig_sign_custom(const secp256k1_context* ctx, unsigned char *sig64, const unsigned char *msg, size_t msglen, const secp256k1_keypair *keypair, secp256k1_schnorrsig_extraparams *extraparams) {
201205
secp256k1_nonce_function_hardened noncefp = NULL;
202206
void *ndata = NULL;

src/modules/schnorrsig/tests_impl.h

+19-16
Original file line numberDiff line numberDiff line change
@@ -160,21 +160,21 @@ void test_schnorrsig_api(void) {
160160

161161
/** main test body **/
162162
ecount = 0;
163-
CHECK(secp256k1_schnorrsig_sign(none, sig, msg, &keypairs[0], NULL) == 1);
163+
CHECK(secp256k1_schnorrsig_sign32(none, sig, msg, &keypairs[0], NULL) == 1);
164164
CHECK(ecount == 0);
165-
CHECK(secp256k1_schnorrsig_sign(vrfy, sig, msg, &keypairs[0], NULL) == 1);
165+
CHECK(secp256k1_schnorrsig_sign32(vrfy, sig, msg, &keypairs[0], NULL) == 1);
166166
CHECK(ecount == 0);
167-
CHECK(secp256k1_schnorrsig_sign(sign, sig, msg, &keypairs[0], NULL) == 1);
167+
CHECK(secp256k1_schnorrsig_sign32(sign, sig, msg, &keypairs[0], NULL) == 1);
168168
CHECK(ecount == 0);
169-
CHECK(secp256k1_schnorrsig_sign(sign, NULL, msg, &keypairs[0], NULL) == 0);
169+
CHECK(secp256k1_schnorrsig_sign32(sign, NULL, msg, &keypairs[0], NULL) == 0);
170170
CHECK(ecount == 1);
171-
CHECK(secp256k1_schnorrsig_sign(sign, sig, NULL, &keypairs[0], NULL) == 0);
171+
CHECK(secp256k1_schnorrsig_sign32(sign, sig, NULL, &keypairs[0], NULL) == 0);
172172
CHECK(ecount == 2);
173-
CHECK(secp256k1_schnorrsig_sign(sign, sig, msg, NULL, NULL) == 0);
173+
CHECK(secp256k1_schnorrsig_sign32(sign, sig, msg, NULL, NULL) == 0);
174174
CHECK(ecount == 3);
175-
CHECK(secp256k1_schnorrsig_sign(sign, sig, msg, &invalid_keypair, NULL) == 0);
175+
CHECK(secp256k1_schnorrsig_sign32(sign, sig, msg, &invalid_keypair, NULL) == 0);
176176
CHECK(ecount == 4);
177-
CHECK(secp256k1_schnorrsig_sign(sttc, sig, msg, &keypairs[0], NULL) == 0);
177+
CHECK(secp256k1_schnorrsig_sign32(sttc, sig, msg, &keypairs[0], NULL) == 0);
178178
CHECK(ecount == 5);
179179

180180
ecount = 0;
@@ -202,7 +202,7 @@ void test_schnorrsig_api(void) {
202202
CHECK(ecount == 6);
203203

204204
ecount = 0;
205-
CHECK(secp256k1_schnorrsig_sign(sign, sig, msg, &keypairs[0], NULL) == 1);
205+
CHECK(secp256k1_schnorrsig_sign32(sign, sig, msg, &keypairs[0], NULL) == 1);
206206
CHECK(secp256k1_schnorrsig_verify(none, sig, msg, sizeof(msg), &pk[0]) == 1);
207207
CHECK(ecount == 0);
208208
CHECK(secp256k1_schnorrsig_verify(sign, sig, msg, sizeof(msg), &pk[0]) == 1);
@@ -247,7 +247,7 @@ void test_schnorrsig_bip_vectors_check_signing(const unsigned char *sk, const un
247247
secp256k1_xonly_pubkey pk, pk_expected;
248248

249249
CHECK(secp256k1_keypair_create(ctx, &keypair, sk));
250-
CHECK(secp256k1_schnorrsig_sign(ctx, sig, msg32, &keypair, aux_rand));
250+
CHECK(secp256k1_schnorrsig_sign32(ctx, sig, msg32, &keypair, aux_rand));
251251
CHECK(secp256k1_memcmp_var(sig, expected_sig, 64) == 0);
252252

253253
CHECK(secp256k1_xonly_pubkey_parse(ctx, &pk_expected, pk_serialized));
@@ -740,8 +740,11 @@ void test_schnorrsig_sign(void) {
740740
secp256k1_testrand256(aux_rand);
741741
CHECK(secp256k1_keypair_create(ctx, &keypair, sk));
742742
CHECK(secp256k1_keypair_xonly_pub(ctx, &pk, NULL, &keypair));
743-
CHECK(secp256k1_schnorrsig_sign(ctx, sig, msg, &keypair, NULL) == 1);
743+
CHECK(secp256k1_schnorrsig_sign32(ctx, sig, msg, &keypair, NULL) == 1);
744744
CHECK(secp256k1_schnorrsig_verify(ctx, sig, msg, sizeof(msg), &pk));
745+
/* Check that deprecated alias gives the same result */
746+
CHECK(secp256k1_schnorrsig_sign(ctx, sig2, msg, &keypair, NULL) == 1);
747+
CHECK(secp256k1_memcmp_var(sig, sig2, sizeof(sig)) == 0);
745748

746749
/* Test different nonce functions */
747750
CHECK(secp256k1_schnorrsig_sign_custom(ctx, sig, msg, sizeof(msg), &keypair, &extraparams) == 1);
@@ -764,7 +767,7 @@ void test_schnorrsig_sign(void) {
764767
extraparams.noncefp = NULL;
765768
extraparams.ndata = aux_rand;
766769
CHECK(secp256k1_schnorrsig_sign_custom(ctx, sig, msg, sizeof(msg), &keypair, &extraparams) == 1);
767-
CHECK(secp256k1_schnorrsig_sign(ctx, sig2, msg, &keypair, extraparams.ndata) == 1);
770+
CHECK(secp256k1_schnorrsig_sign32(ctx, sig2, msg, &keypair, extraparams.ndata) == 1);
768771
CHECK(secp256k1_memcmp_var(sig, sig2, sizeof(sig)) == 0);
769772
}
770773

@@ -787,7 +790,7 @@ void test_schnorrsig_sign_verify(void) {
787790

788791
for (i = 0; i < N_SIGS; i++) {
789792
secp256k1_testrand256(msg[i]);
790-
CHECK(secp256k1_schnorrsig_sign(ctx, sig[i], msg[i], &keypair, NULL));
793+
CHECK(secp256k1_schnorrsig_sign32(ctx, sig[i], msg[i], &keypair, NULL));
791794
CHECK(secp256k1_schnorrsig_verify(ctx, sig[i], msg[i], sizeof(msg[i]), &pk));
792795
}
793796

@@ -816,13 +819,13 @@ void test_schnorrsig_sign_verify(void) {
816819
}
817820

818821
/* Test overflowing s */
819-
CHECK(secp256k1_schnorrsig_sign(ctx, sig[0], msg[0], &keypair, NULL));
822+
CHECK(secp256k1_schnorrsig_sign32(ctx, sig[0], msg[0], &keypair, NULL));
820823
CHECK(secp256k1_schnorrsig_verify(ctx, sig[0], msg[0], sizeof(msg[0]), &pk));
821824
memset(&sig[0][32], 0xFF, 32);
822825
CHECK(!secp256k1_schnorrsig_verify(ctx, sig[0], msg[0], sizeof(msg[0]), &pk));
823826

824827
/* Test negative s */
825-
CHECK(secp256k1_schnorrsig_sign(ctx, sig[0], msg[0], &keypair, NULL));
828+
CHECK(secp256k1_schnorrsig_sign32(ctx, sig[0], msg[0], &keypair, NULL));
826829
CHECK(secp256k1_schnorrsig_verify(ctx, sig[0], msg[0], sizeof(msg[0]), &pk));
827830
secp256k1_scalar_set_b32(&s, &sig[0][32], NULL);
828831
secp256k1_scalar_negate(&s, &s);
@@ -873,7 +876,7 @@ void test_schnorrsig_taproot(void) {
873876

874877
/* Key spend */
875878
secp256k1_testrand256(msg);
876-
CHECK(secp256k1_schnorrsig_sign(ctx, sig, msg, &keypair, NULL) == 1);
879+
CHECK(secp256k1_schnorrsig_sign32(ctx, sig, msg, &keypair, NULL) == 1);
877880
/* Verify key spend */
878881
CHECK(secp256k1_xonly_pubkey_parse(ctx, &output_pk, output_pk_bytes) == 1);
879882
CHECK(secp256k1_schnorrsig_verify(ctx, sig, msg, sizeof(msg), &output_pk) == 1);

src/valgrind_ctime_test.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ void run_tests(secp256k1_context *ctx, unsigned char *key) {
166166
ret = secp256k1_keypair_create(ctx, &keypair, key);
167167
VALGRIND_MAKE_MEM_DEFINED(&ret, sizeof(ret));
168168
CHECK(ret == 1);
169-
ret = secp256k1_schnorrsig_sign(ctx, sig, msg, &keypair, NULL);
169+
ret = secp256k1_schnorrsig_sign32(ctx, sig, msg, &keypair, NULL);
170170
VALGRIND_MAKE_MEM_DEFINED(&ret, sizeof(ret));
171171
CHECK(ret == 1);
172172
#endif

0 commit comments

Comments
 (0)