diff --git a/examples/ecdh.c b/examples/ecdh.c index fe2a62c065..221744a6d4 100644 --- a/examples/ecdh.c +++ b/examples/ecdh.c @@ -50,8 +50,8 @@ int main(void) { printf("Failed to generate randomness\n"); return 1; } - if (secp256k1_ec_seckey_verify(ctx, seckey1) && secp256k1_ec_seckey_verify(ctx, seckey2)) { - break; + if (!secp256k1_ec_seckey_verify(ctx, seckey1) || !secp256k1_ec_seckey_verify(ctx, seckey2)) { + return 1; } /* Public key creation using a valid context with a verified secret key should never fail */ diff --git a/examples/ecdsa.c b/examples/ecdsa.c index 1062e4b464..5730c92d9d 100644 --- a/examples/ecdsa.c +++ b/examples/ecdsa.c @@ -51,14 +51,14 @@ int main(void) { /*** Key Generation ***/ /* If the secret key is zero or out of range (bigger than secp256k1's - * order), we try to sample a new key. Note that the probability of this - * happening is negligible. */ + * order), we return 1. Note that the probability of this + * happening is negligible, though it could indicate a faulty RNG */ if (!fill_random(seckey, sizeof(seckey))) { printf("Failed to generate randomness\n"); return 1; } - if (secp256k1_ec_seckey_verify(ctx, seckey)) { - break; + if (!secp256k1_ec_seckey_verify(ctx, seckey)) { + return 1; } /* Public key creation using a valid context with a verified secret key should never fail */ diff --git a/examples/ellswift.c b/examples/ellswift.c index d413980578..f22c31a7ce 100644 --- a/examples/ellswift.c +++ b/examples/ellswift.c @@ -49,14 +49,15 @@ int main(void) { /*** Generate secret keys ***/ /* If the secret key is zero or out of range (bigger than secp256k1's - * order), we try to sample a new key. Note that the probability of this - * happening is negligible. */ + * order), we return 1. Note that the probability of this + * happening is negligible, though it could indicate a faulty RNG */ if (!fill_random(seckey1, sizeof(seckey1)) || !fill_random(seckey2, sizeof(seckey2))) { printf("Failed to generate randomness\n"); return 1; } - if (secp256k1_ec_seckey_verify(ctx, seckey1) && secp256k1_ec_seckey_verify(ctx, seckey2)) { - break; + if (!secp256k1_ec_seckey_verify(ctx, seckey1) || !secp256k1_ec_seckey_verify(ctx, seckey2)) { + printf("Generated secret key is invalid. This could indicate an issue with the random number generator.\n") + return 1; } /* Generate ElligatorSwift public keys. This should never fail with valid context and