examples: do not retry generating seckey randomness in musig
This commit is contained in:
@@ -38,14 +38,17 @@ struct signer {
|
|||||||
/* Create a key pair, store it in signer_secrets->keypair and signer->pubkey */
|
/* Create a key pair, store it in signer_secrets->keypair and signer->pubkey */
|
||||||
static int create_keypair(const secp256k1_context* ctx, struct signer_secrets *signer_secrets, struct signer *signer) {
|
static int create_keypair(const secp256k1_context* ctx, struct signer_secrets *signer_secrets, struct signer *signer) {
|
||||||
unsigned char seckey[32];
|
unsigned char seckey[32];
|
||||||
while (1) {
|
|
||||||
if (!fill_random(seckey, sizeof(seckey))) {
|
if (!fill_random(seckey, sizeof(seckey))) {
|
||||||
printf("Failed to generate randomness\n");
|
printf("Failed to generate randomness\n");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
if (secp256k1_keypair_create(ctx, &signer_secrets->keypair, seckey)) {
|
/* Try to create a keypair with a valid context. This only fails if the
|
||||||
break;
|
* secret key is zero or out of range (greater than secp256k1's order). Note
|
||||||
}
|
* that the probability of this occurring is negligible with a properly
|
||||||
|
* functioning random number generator. */
|
||||||
|
if (!secp256k1_keypair_create(ctx, &signer_secrets->keypair, seckey)) {
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
if (!secp256k1_keypair_pub(ctx, &signer->pubkey, &signer_secrets->keypair)) {
|
if (!secp256k1_keypair_pub(ctx, &signer->pubkey, &signer_secrets->keypair)) {
|
||||||
return 0;
|
return 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user