projects
/
silc.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
34b8fd1
)
Use a little larger starting point for e exponent.
author
Pekka Riikonen
<priikone@silcnet.org>
Thu, 26 Sep 2002 17:07:37 +0000
(17:07 +0000)
committer
Pekka Riikonen
<priikone@silcnet.org>
Thu, 26 Sep 2002 17:07:37 +0000
(17:07 +0000)
lib/silccrypt/rsa.c
patch
|
blob
|
history
diff --git
a/lib/silccrypt/rsa.c
b/lib/silccrypt/rsa.c
index 368fc75dcfd8e886a04b454ad5925591ba3b2b5c..4b7db8ff3c0df3c4c741861a82e0f10ed59ca165 100644
(file)
--- a/
lib/silccrypt/rsa.c
+++ b/
lib/silccrypt/rsa.c
@@
-66,6
+66,11
@@
Use the SilcRng sent as argument to SILC_PKCS_API_INIT in prime
generation.
Use the SilcRng sent as argument to SILC_PKCS_API_INIT in prime
generation.
+ o Sat Sep 26 19:59:48 EEST 2002 Pekka
+
+ Fixed double free in public key setting. Use a bit larger e as
+ starting point in key generation.
+
*/
#include "silcincludes.h"
*/
#include "silcincludes.h"
@@
-516,7
+521,7
@@
void rsa_generate_keys(RsaKey *key, SilcUInt32 bits,
/* Set e, the public exponent. We try to use same public exponent
for all keys. Also, to make encryption faster we use small
number. */
/* Set e, the public exponent. We try to use same public exponent
for all keys. Also, to make encryption faster we use small
number. */
- silc_mp_set_ui(&key->e,
127
);
+ silc_mp_set_ui(&key->e,
65533
);
retry_e:
/* See if e is relatively prime to phi. gcd == greates common divisor,
if gcd equals 1 they are relatively prime. */
retry_e:
/* See if e is relatively prime to phi. gcd == greates common divisor,
if gcd equals 1 they are relatively prime. */
@@
-526,7
+531,7
@@
void rsa_generate_keys(RsaKey *key, SilcUInt32 bits,
goto retry_e;
}
goto retry_e;
}
- /* Find d, the private exponent. */
+ /* Find d, the private exponent
, e ^ -1 mod lcm(phi)
. */
silc_mp_gcd(&div, &pm1, &qm1);
silc_mp_div(&lcm, &phi, &div);
silc_mp_modinv(&key->d, &key->e, &lcm);
silc_mp_gcd(&div, &pm1, &qm1);
silc_mp_div(&lcm, &phi, &div);
silc_mp_modinv(&key->d, &key->e, &lcm);