With this crt works, but something is wrong in the key generation, so
keep it turned off for now. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@19748 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
		| @@ -121,32 +121,30 @@ rsa_private_calculate(mp_int in, mp_int p,  mp_int q, | ||||
| 		      mp_int dmp1, mp_int dmq1, mp_int iqmp, | ||||
| 		      mp_int out) | ||||
| { | ||||
|     mpz_t v1, v2, t, u; | ||||
|     mp_int_init(&v1); mp_int_init(&v2); mp_int_init(&t); | ||||
|     mp_int_init(&u); | ||||
|     mpz_t vp, vq, u; | ||||
|     mp_int_init(&vp); mp_int_init(&vq); mp_int_init(&u); | ||||
|      | ||||
|     /* v1 = c ^ (d mod (q - 1)) mod q */ | ||||
|     /* v2 = c ^ (d mod (p - 1)) mod p */ | ||||
|     mp_int_exptmod(in, dmq1, q, &v1); | ||||
|     mp_int_exptmod(in, dmp1, p, &v2); | ||||
|     /* vq = c ^ (d mod (q - 1)) mod q */ | ||||
|     /* vp = c ^ (d mod (p - 1)) mod p */ | ||||
|     mp_int_mod(in, p, &u); | ||||
|     mp_int_exptmod(&u, dmp1, p, &vp); | ||||
|     mp_int_mod(in, q, &u); | ||||
|     mp_int_exptmod(&u, dmq1, q, &vq); | ||||
|      | ||||
|     /* C2 = 1/q mod p  (iqmp) */ | ||||
|     /* u = (v2 - v1)C2 mod p. */ | ||||
|     mp_int_sub(&v2, &v1, &u); | ||||
|     if (mp_int_compare_zero(&u) < 0) { | ||||
| 	mp_int_add(&u, p, &t); | ||||
| 	mp_int_swap(&u, &t); | ||||
|     } | ||||
|     mp_int_mul(&u, iqmp, &t); | ||||
|     mp_int_mod(&t, p, &u); | ||||
|     /* u = (vp - vq)C2 mod p. */ | ||||
|     mp_int_sub(&vp, &vq, &u); | ||||
|     if (mp_int_compare_zero(&u) < 0) | ||||
| 	mp_int_add(&u, p, &u); | ||||
|     mp_int_mul(&u, iqmp, &u); | ||||
|     mp_int_mod(&u, p, &u); | ||||
|      | ||||
|     /* c ^ d mod n = v1 + u q */ | ||||
|     mp_int_mul(&u, q, &t); | ||||
|     mp_int_add(&t, &v1, out); | ||||
|     /* c ^ d mod n = vq + u q */ | ||||
|     mp_int_mul(&u, q, &u); | ||||
|     mp_int_add(&u, &vq, out); | ||||
|      | ||||
|     mp_int_clear(&v1); | ||||
|     mp_int_clear(&v2); | ||||
|     mp_int_clear(&t); | ||||
|     mp_int_clear(&vp); | ||||
|     mp_int_clear(&vq); | ||||
|     mp_int_clear(&u); | ||||
|  | ||||
|     return MP_OK; | ||||
| @@ -598,7 +596,7 @@ imath_rsa_generate_key(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb) | ||||
|     CHECK(mp_int_mod(&d, &t1, &dmp1), MP_OK); | ||||
|     /* calculate dmq1		dmq1 = d mod (q-1) */ | ||||
|     CHECK(mp_int_mod(&d, &t2, &dmq1), MP_OK); | ||||
|     /* calculate iqmp 		iqmp = q mod p */ | ||||
|     /* calculate iqmp 		iqmp = 1/q mod p */ | ||||
|     CHECK(mp_int_invmod(&q, &p, &iqmp), MP_OK); | ||||
|  | ||||
|     /* fill in RSA key */ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Love Hörnquist Åstrand
					Love Hörnquist Åstrand