This library provides functionality for reasoning over elliptic
curves. Elliptic curves are represented as opaque objects. You
acquire a handle for an elliptic curve via crypto_name_curve/2.
A point on a curve is represented by the Prolog term
where X and Y are integers that represent the
point's affine coordinates.
The following predicates are provided for reasoning over elliptic
- Obtain a handle for a named elliptic curve. Name is an
Curve is unified with an opaque object that represents the
curve. Currently, only elliptic curves over prime fields are supported.
Examples of such curves are
If you have OpenSSL installed, you can get a list of supported curves
$ openssl ecparam -list_curves
- Obtain the order of an elliptic curve. Order is an integer,
denoting how many points on the curve can be reached by multiplying the
curve's generator with a scalar.
- Point is the generator of the elliptic curve Curve.
+N, +Point, -R)
- R is the result of N times Point on the
elliptic curve Curve. N must be an integer, and Point
must be a point on the curve.