8#ifndef CRYPTOPP_ECPOINT_H
9#define CRYPTOPP_ECPOINT_H
31 : x(x), y(y), identity(false) {}
37 {
return (identity && t.identity) || (!identity && !t.identity && x==t.x && y==t.y);}
43 {
return identity ? !t.identity : (!t.identity && (x<t.x || (x==t.x && y<t.y)));}
64 : x(x), y(y), identity(false) {}
70 {
return (identity && t.identity) || (!identity && !t.identity && x==t.x && y==t.y);}
76 {
return identity ? !t.identity : (!t.identity && (x<t.x || (x==t.x && y<t.y)));}
107 virtual bool DecodePoint(Point &P,
const byte *encodedPoint,
size_t len)
const =0;
124 virtual void EncodePoint(
byte *encodedPoint,
const Point &P,
bool compressed)
const =0;
Classes for performing mathematics over different fields.
bool operator<(const OID &lhs, const OID &rhs)
Compare two OIDs for ordering.
Abstract class for encoding and decoding ellicptic curve points.
virtual bool DecodePoint(Point &P, const byte *encodedPoint, size_t len) const =0
Decodes an elliptic curve point.
virtual unsigned int EncodedPointSize(bool compressed=false) const =0
Determines encoded point size.
virtual bool VerifyPoint(const Point &P) const =0
Verifies points on elliptic curve.
virtual void EncodePoint(byte *encodedPoint, const Point &P, bool compressed) const =0
Encodes an elliptic curve point.
virtual void DEREncodePoint(BufferedTransformation &bt, const Point &P, bool compressed) const =0
DER Encodes an elliptic curve point.
virtual bool DecodePoint(Point &P, BufferedTransformation &bt, size_t len) const =0
Decodes an elliptic curve point.
virtual void EncodePoint(BufferedTransformation &bt, const Point &P, bool compressed) const =0
Encodes an elliptic curve point.
virtual Point BERDecodePoint(BufferedTransformation &bt) const =0
BER Decodes an elliptic curve point.
Multiple precision integer with arithmetic operations.
Polynomial with Coefficients in GF(2)
#define CRYPTOPP_DLL_TEMPLATE_CLASS
Instantiate templates in a dynamic library.
Abstract base classes that provide a uniform interface to this library.
Classes and functions for schemes over GF(2^n)
Multiple precision integer with arithmetic operations.
Crypto++ library namespace.
Elliptical Curve Point over GF(2^n)
EC2NPoint()
Construct an EC2NPoint.
bool operator==(const EC2NPoint &t) const
Tests points for equality.
EC2NPoint(const PolynomialMod2 &x, const PolynomialMod2 &y)
Construct an EC2NPoint from coordinates.
Elliptical Curve Point over GF(p), where p is prime.
bool operator==(const ECPPoint &t) const
Tests points for equality.
ECPPoint()
Construct an ECPPoint.
ECPPoint(const Integer &x, const Integer &y)
Construct an ECPPoint from coordinates.