diff options
author | Matt Johnston <matt@ucc.asn.au> | 2020-10-15 19:55:15 +0800 |
---|---|---|
committer | Matt Johnston <matt@ucc.asn.au> | 2020-10-15 19:55:15 +0800 |
commit | 0e3e8db5bfca0c579be55e7580a46c593c1384be (patch) | |
tree | 2b1a718f633fb95c1f2d689a591cf9e8642697f3 /genrsa.c | |
parent | 78e17f6ee9a944430da3e517ee1fe384fd6b275b (diff) | |
parent | 17873e8c922eded2cec86184673a6d110df6403f (diff) |
merge from main
--HG--
branch : fuzz
Diffstat (limited to 'genrsa.c')
-rw-r--r-- | genrsa.c | 11 |
1 files changed, 5 insertions, 6 deletions
@@ -53,10 +53,7 @@ dropbear_rsa_key * gen_rsa_priv_key(unsigned int size) { m_mp_alloc_init_multi(&key->e, &key->n, &key->d, &key->p, &key->q, NULL); m_mp_init_multi(&pminus, &lcm, &qminus, NULL); - if (mp_set_int(key->e, RSA_E) != MP_OKAY) { - fprintf(stderr, "RSA generation failed\n"); - exit(1); - } + mp_set_ul(key->e, RSA_E); while (1) { getrsaprime(key->p, &pminus, key->e, size/16); @@ -95,6 +92,7 @@ static void getrsaprime(mp_int* prime, mp_int *primeminus, mp_int* rsa_e, unsigned int size_bytes) { unsigned char *buf; + int trials; DEF_MP_INT(temp_gcd); buf = (unsigned char*)m_malloc(size_bytes); @@ -108,8 +106,9 @@ static void getrsaprime(mp_int* prime, mp_int *primeminus, bytes_to_mp(prime, buf, size_bytes); - /* find the next integer which is prime, 8 round of miller-rabin */ - if (mp_prime_next_prime(prime, 8, 0) != MP_OKAY) { + /* find the next integer which is prime */ + trials = mp_prime_rabin_miller_trials(mp_count_bits(prime)); + if (mp_prime_next_prime(prime, trials, 0) != MP_OKAY) { fprintf(stderr, "RSA generation failed\n"); exit(1); } |