Changeset View
Changeset View
Standalone View
Standalone View
src/secp256k1/src/modules/schnorr/tests_impl.h
Show All 34 Lines | void test_schnorr_end_to_end(void) { | ||||
CHECK(secp256k1_schnorr_verify(ctx, schnorr_signature, message, &pubkey) == 0); | CHECK(secp256k1_schnorr_verify(ctx, schnorr_signature, message, &pubkey) == 0); | ||||
} | } | ||||
#define SIG_COUNT 32 | #define SIG_COUNT 32 | ||||
void test_schnorr_sign_verify(void) { | void test_schnorr_sign_verify(void) { | ||||
unsigned char msg32[32]; | unsigned char msg32[32]; | ||||
unsigned char sig64[SIG_COUNT][64]; | unsigned char sig64[SIG_COUNT][64]; | ||||
unsigned char ndata[SIG_COUNT][32]; | |||||
secp256k1_gej pubkeyj[SIG_COUNT]; | secp256k1_gej pubkeyj[SIG_COUNT]; | ||||
secp256k1_ge pubkey[SIG_COUNT]; | secp256k1_ge pubkey[SIG_COUNT]; | ||||
secp256k1_scalar nonce[SIG_COUNT], key[SIG_COUNT]; | secp256k1_scalar key[SIG_COUNT]; | ||||
int i, j; | int i, j; | ||||
secp256k1_rand256_test(msg32); | secp256k1_rand256_test(msg32); | ||||
for (i = 0; i < SIG_COUNT; i++) { | for (i = 0; i < SIG_COUNT; i++) { | ||||
random_scalar_order_test(&key[i]); | random_scalar_order_test(&key[i]); | ||||
secp256k1_ecmult_gen(&ctx->ecmult_gen_ctx, &pubkeyj[i], &key[i]); | secp256k1_ecmult_gen(&ctx->ecmult_gen_ctx, &pubkeyj[i], &key[i]); | ||||
secp256k1_ge_set_gej_var(&pubkey[i], &pubkeyj[i]); | secp256k1_ge_set_gej_var(&pubkey[i], &pubkeyj[i]); | ||||
secp256k1_fe_normalize(&pubkey[i].x); | secp256k1_fe_normalize(&pubkey[i].x); | ||||
secp256k1_fe_normalize(&pubkey[i].y); | secp256k1_fe_normalize(&pubkey[i].y); | ||||
do { | do { | ||||
random_scalar_order_test(&nonce[i]); | secp256k1_rand256_test(ndata[i]); | ||||
if (secp256k1_schnorr_sig_sign(&ctx->ecmult_gen_ctx, sig64[i], &key[i], &pubkey[i], &nonce[i], msg32)) { | if (secp256k1_schnorr_sig_sign(&ctx->ecmult_gen_ctx, sig64[i], msg32, &key[i], &pubkey[i], NULL, &ndata[i])) { | ||||
break; | break; | ||||
} | } | ||||
} while(1); | } while(1); | ||||
CHECK(secp256k1_schnorr_sig_verify(&ctx->ecmult_ctx, sig64[i], &pubkey[i], msg32)); | CHECK(secp256k1_schnorr_sig_verify(&ctx->ecmult_ctx, sig64[i], &pubkey[i], msg32)); | ||||
/* Apply several random modifications to the sig and check that it | /* Apply several random modifications to the sig and check that it | ||||
* doesn't verify anymore. */ | * doesn't verify anymore. */ | ||||
▲ Show 20 Lines • Show All 454 Lines • Show Last 20 Lines |