/* -*-apcalc-*-
*
- * $Id: ec2.cal,v 1.2 2004/03/21 22:52:06 mdw Exp $
+ * $Id: ec2.cal,v 1.4 2004/04/08 01:36:15 mdw Exp $
*
* Testbed for elliptic curve arithmetic over binary fields
*
* MA 02111-1307, USA.
*/
-/*----- Revision history --------------------------------------------------*
- *
- * $Log: ec2.cal,v $
- * Revision 1.2 2004/03/21 22:52:06 mdw
- * Merge and close elliptic curve branch.
- *
- * Revision 1.1.2.1 2004/03/21 22:39:46 mdw
- * Elliptic curves on binary fields work.
- *
- * Revision 1.1.4.2 2004/03/20 00:13:31 mdw
- * Projective coordinates for prime curves
- *
- * Revision 1.1.4.1 2003/06/10 13:43:53 mdw
- * Simple (non-projective) curves over prime fields now seem to work.
- *
- * Revision 1.1 2000/10/08 16:01:37 mdw
- * Prototypes of various bits of code.
- *
- */
-
/*----- Object types ------------------------------------------------------*/
obj ec2_curve { a, b, p };
local e, alpha;
local obj ec2_pt d;
- print "> ecadd: ", a, b;
if (a == 0)
d = b;
else if (b == 0)
d.e = e;
}
- print "< ecadd: ", d;
return (d);
}
{
local e, alpha;
local obj ec2_pt d;
- print "> ecdbl: ", a;
if (istype(a, 1))
return (0);
e = a.e;
d.x = (e.a + alpha^2 + alpha) % e.p;
d.y = ((a.x + d.x) * alpha + d.x + a.y) % e.p;
d.e = e;
- print "< ecdbl: ", d;
return (d);
}