- if (rp->e)
- mp_gcd(&g, 0, &rp->d, phi, rp->e);
- else if (rp->d)
- mp_gcd(&g, 0, &rp->e, phi, rp->d);
- else {
- mp_drop(phi);
- mp_drop(g);
- return (-1);
- }
-
- mp_drop(phi);
- if (!MP_EQ(g, MP_ONE)) {
- mp_drop(g);
- return (-1);
- }
- mp_drop(g);
+ if (rp->e) mp_gcd(&g, 0, &rp->d, phi, rp->e);
+ else if (rp->d) mp_gcd(&g, 0, &rp->e, phi, rp->d);
+ else goto out;
+ if (!MP_EQ(g, MP_ONE)) goto out;