|
@@ -120,30 +120,18 @@ bigfraction_t* cf_next(cf_t *f)
|
|
|
BN_div(f->a, rem, f->x.h, f->x.k, f->ctx);
|
|
|
|
|
|
/* computing hᵢ */
|
|
|
- if (!BN_mul(f->fs[f->i].h , f->a, f->fs[(f->i-1+3) % 3].h, f->ctx)) goto oh_fuck;
|
|
|
- if (!BN_add(f->fs[f->i].h, f->fs[f->i].h, f->fs[(f->i-2+3) % 3].h)) goto oh_fuck;
|
|
|
+ BN_mul(f->fs[f->i].h , f->a, f->fs[(f->i-1+3) % 3].h, f->ctx);
|
|
|
+ BN_uadd(f->fs[f->i].h, f->fs[f->i].h, f->fs[(f->i-2+3) % 3].h);
|
|
|
/* computing kᵢ */
|
|
|
- if (!BN_mul(f->fs[f->i].k , f->a, f->fs[(f->i-1+3) % 3].k, f->ctx)) goto oh_fuck;
|
|
|
- if (!BN_add(f->fs[f->i].k, f->fs[f->i].k, f->fs[(f->i-2+3) % 3].k)) goto oh_fuck;
|
|
|
+ BN_mul(f->fs[f->i].k , f->a, f->fs[(f->i-1+3) % 3].k, f->ctx);
|
|
|
+ BN_uadd(f->fs[f->i].k, f->fs[f->i].k, f->fs[(f->i-2+3) % 3].k);
|
|
|
|
|
|
f->i = (f->i + 1) % 3;
|
|
|
/* update x. */
|
|
|
- if (!BN_copy(f->x.h, f->x.k)) goto oh_fuck;
|
|
|
- if (!BN_copy(f->x.k, rem)) goto oh_fuck;
|
|
|
+ BN_copy(f->x.h, f->x.k);
|
|
|
+ BN_copy(f->x.k, rem);
|
|
|
|
|
|
return ith_fs;
|
|
|
-
|
|
|
- oh_fuck:
|
|
|
- printf("of fuck!\n");
|
|
|
- exit(EXIT_FAILURE);
|
|
|
-}
|
|
|
-
|
|
|
-static void BN_int2bn(BIGNUM** a, short int i)
|
|
|
-{
|
|
|
- if (!*a) *a = BN_new();
|
|
|
- /* trolololololol. */
|
|
|
- BN_one(*a);
|
|
|
- (*a)->d[0] = i;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -227,7 +215,7 @@ int wiener_question_ask(X509* cert)
|
|
|
delta = BN_new();
|
|
|
|
|
|
/*
|
|
|
- * generate the continued fractions approximating e/N
|
|
|
+ * Generate the continued fractions approximating e/N
|
|
|
*/
|
|
|
cf = cf_init(NULL, e, n);
|
|
|
ctx = cf->ctx;
|
|
@@ -246,7 +234,7 @@ int wiener_question_ask(X509* cert)
|
|
|
BN_div(phi, rem, tmp, t, cf->ctx);
|
|
|
if (!BN_is_zero(rem)) continue;
|
|
|
// XXX. check, is it possible to fall here, assuming N, e are valid?
|
|
|
- if (BN_is_odd(phi) && BN_cmp(n, phi) > 0) continue;
|
|
|
+ if (BN_is_odd(phi) && BN_cmp(n, phi) == 1) continue;
|
|
|
/*
|
|
|
* Recovering p, q
|
|
|
* Solving the equation
|