/* -*-c-*-
*
- * $Id: ec-info.c,v 1.3 2004/04/01 21:28:41 mdw Exp $
+ * $Id: ec-info.c,v 1.4 2004/04/03 03:32:05 mdw Exp $
*
* Elliptic curve information management
*
/*----- Revision history --------------------------------------------------*
*
* $Log: ec-info.c,v $
+ * Revision 1.4 2004/04/03 03:32:05 mdw
+ * General robustification.
+ *
* Revision 1.3 2004/04/01 21:28:41 mdw
* Normal basis support (translates to poly basis internally). Rewrite
* EC and prime group table generators in awk, so that they can reuse data
default:
goto fail;
}
+ if (!c) {
+ qd->e = "bad curve parameters";
+ goto fail;
+ }
if (a) MP_DROP(a);
if (b) MP_DROP(b);
return (c);
abort();
}
+ assert(f); assert(ei->c);
EC_CREATE(&ei->g); ei->g.x = &ed->gx; ei->g.y = &ed->gy; ei->g.z = 0;
ei->r = &ed->r; ei->h = &ed->h;
}
const ecentry *ee;
mp *r = MP_NEW, *h = MP_NEW;
- for (ee = ectab; ee->name; ee++) {
- if (qd_enum(qd, ee->name) >= 0) {
- getinfo(ei, ee->data);
- goto found;
- }
- }
+ for (ee = ectab; ee->name; ee++)
+ if (qd_enum(qd, ee->name) >= 0) { getinfo(ei, ee->data); goto found; }
+
if ((c = ec_curveparse(qd)) == 0) goto fail;
qd_delim(qd, '/'); if (!ec_ptparse(qd, &g)) goto fail;
qd_delim(qd, ':'); if ((r = qd_getmp(qd)) == 0) goto fail;