summaryrefslogtreecommitdiffhomepage
path: root/genrsa.c
diff options
context:
space:
mode:
Diffstat (limited to 'genrsa.c')
-rw-r--r--genrsa.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/genrsa.c b/genrsa.c
index e9aca76..71a46a6 100644
--- a/genrsa.c
+++ b/genrsa.c
@@ -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);
}