++ed by:

8 PAUSE users
4 non-PAUSE users.

Dana Jacobsen

# NAME

Math::Prime::Util::ECProjectivePoint - Elliptic curve operations for projective points

Version 0.70

# SYNOPSIS

``````  # Create a point on a curve (a,b,n) with coordinates 0,1
my \$ECP = Math::Prime::Util::ECProjectivePoint->new(\$c, \$n, 0, 1);

# scalar multiplication by \$k.
\$ECP->mul(\$k);

# add two points on the same curve

say "P = O" if \$ECP->is_infinity();``````

# DESCRIPTION

This really should just be in Math::EllipticCurve.

To write.

# FUNCTIONS

## new

``  \$point = Math::Prime::Util::ECProjectivePoint->new(c, n, x, z);``

Returns a new point on the curve defined by the Montgomery parameter c.

## n

Returns the `c`, `d`, or `n` values that describe the curve.

## d

Returns the precalculated value of `int( (c + 2) / 4 )`.

## z

Returns the `x` or `z` values that define the point on the curve.

## f

Returns a possible factor found after "normalize".

Takes another point on the same curve as an argument and adds it this point.

## double

Double the current point on the curve.

## mul

Takes an integer and performs scalar multiplication of the point.

## is_infinity

Returns true if the point is (0,1), which is the point at infinity for the affine coordinates.

## copy

Returns a copy of the point.

## normalize

Performs an extended GCD operation to make `z=1`. If a factor of `n` is found it is put in `f`.