projects
/
u
/
mdw
/
catacomb
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add support for the TLS pseudo-random function.
[u/mdw/catacomb]
/
rsa-recover.c
diff --git
a/rsa-recover.c
b/rsa-recover.c
index
14b67bd
..
03e88b2
100644
(file)
--- a/
rsa-recover.c
+++ b/
rsa-recover.c
@@
-1,6
+1,6
@@
/* -*-c-*-
*
/* -*-c-*-
*
- * $Id: rsa-recover.c,v 1.
2 2000/06/17 12:07:19
mdw Exp $
+ * $Id: rsa-recover.c,v 1.
5 2000/10/08 12:11:22
mdw Exp $
*
* Recover RSA parameters
*
*
* Recover RSA parameters
*
@@
-30,6
+30,15
@@
/*----- Revision history --------------------------------------------------*
*
* $Log: rsa-recover.c,v $
/*----- Revision history --------------------------------------------------*
*
* $Log: rsa-recover.c,v $
+ * Revision 1.5 2000/10/08 12:11:22 mdw
+ * Use @MP_EQ@ instead of @MP_CMP@.
+ *
+ * Revision 1.4 2000/07/01 11:22:22 mdw
+ * Remove bad type name `rsa_param'.
+ *
+ * Revision 1.3 2000/06/22 19:03:14 mdw
+ * Use the new @mp_odd@ function.
+ *
* Revision 1.2 2000/06/17 12:07:19 mdw
* Fix a bug in argument validation. Force %$p > q$% in output. Use
* %$\lambda(n) = \lcm(p - 1, q - 1)$% rather than the more traditional
* Revision 1.2 2000/06/17 12:07:19 mdw
* Fix a bug in argument validation. Force %$p > q$% in output. Use
* %$\lambda(n) = \lcm(p - 1, q - 1)$% rather than the more traditional
@@
-50,7
+59,7
@@
/* --- @rsa_recover@ --- *
*
/* --- @rsa_recover@ --- *
*
- * Arguments: @rsa_p
aram
*rp@ = pointer to parameter block
+ * Arguments: @rsa_p
riv
*rp@ = pointer to parameter block
*
* Returns: Zero if all went well, nonzero if the parameters make no
* sense.
*
* Returns: Zero if all went well, nonzero if the parameters make no
* sense.
@@
-58,7
+67,7
@@
* Use: Derives the full set of RSA parameters given a minimal set.
*/
* Use: Derives the full set of RSA parameters given a minimal set.
*/
-int rsa_recover(rsa_p
aram
*rp)
+int rsa_recover(rsa_p
riv
*rp)
{
/* --- If there is no modulus, calculate it --- */
{
/* --- If there is no modulus, calculate it --- */
@@
-80,7
+89,7
@@
int rsa_recover(rsa_param *rp)
mp_div(&rp->q, &r, rp->n, rp->p);
else
mp_div(&rp->p, &r, rp->n, rp->q);
mp_div(&rp->q, &r, rp->n, rp->p);
else
mp_div(&rp->p, &r, rp->n, rp->q);
- if (
MP_CMP(r, !=
, MP_ZERO)) {
+ if (
!MP_EQ(r
, MP_ZERO)) {
mp_drop(r);
return (-1);
}
mp_drop(r);
return (-1);
}
@@
-93,8
+102,7
@@
int rsa_recover(rsa_param *rp)
return (-1);
else {
mp *t;
return (-1);
else {
mp *t;
- unsigned s;
- mpscan ms;
+ size_t s;
mp a; mpw aw;
mp *m1;
mpmont mm;
mp a; mpw aw;
mp *m1;
mpmont mm;
@@
-109,15
+117,7
@@
int rsa_recover(rsa_param *rp)
t = mp_mul(MP_NEW, rp->e, rp->d);
t = mp_sub(t, t, MP_ONE);
t = mp_mul(MP_NEW, rp->e, rp->d);
t = mp_sub(t, t, MP_ONE);
- s = 0;
- mp_scan(&ms, t);
- for (;;) {
- MP_STEP(&ms);
- if (MP_BIT(&ms))
- break;
- s++;
- }
- t = mp_lsr(t, t, s);
+ t = mp_odd(t, t, &s);
/* --- Set up for the exponentiation --- */
/* --- Set up for the exponentiation --- */
@@
-142,7
+142,7
@@
int rsa_recover(rsa_param *rp)
aw = primetab[i++];
z = mpmont_expr(&mm, z, &a, t);
aw = primetab[i++];
z = mpmont_expr(&mm, z, &a, t);
- if (MP_
CMP(z, ==, mm.r) || MP_CMP(z, ==
, m1))
+ if (MP_
EQ(z, mm.r) || MP_EQ(z
, m1))
continue;
/* --- Now square until something interesting happens --- *
continue;
/* --- Now square until something interesting happens --- *
@@
-156,10
+156,10
@@
int rsa_recover(rsa_param *rp)
for (;;) {
mp *zz = mp_sqr(MP_NEW, z);
zz = mpmont_reduce(&mm, zz, zz);
for (;;) {
mp *zz = mp_sqr(MP_NEW, z);
zz = mpmont_reduce(&mm, zz, zz);
- if (MP_
CMP(zz, ==
, mm.r)) {
+ if (MP_
EQ(zz
, mm.r)) {
mp_drop(zz);
goto done;
mp_drop(zz);
goto done;
- } else if (MP_
CMP(zz, ==
, m1)) {
+ } else if (MP_
EQ(zz
, m1)) {
mp_drop(zz);
goto again;
}
mp_drop(zz);
goto again;
}
@@
-230,7
+230,7
@@
int rsa_recover(rsa_param *rp)
}
mp_drop(phi);
}
mp_drop(phi);
- if (
MP_CMP(g, !=
, MP_ONE)) {
+ if (
!MP_EQ(g
, MP_ONE)) {
mp_drop(g);
return (-1);
}
mp_drop(g);
return (-1);
}