mirror of
https://github.com/mii443/Weil-Pairing.git
synced 2025-08-22 16:35:30 +00:00
Update elliptic.h
This commit is contained in:
31
elliptic.h
31
elliptic.h
@ -14,6 +14,7 @@ typedef struct fpoint{
|
||||
//define curve
|
||||
typedef struct curve{
|
||||
FPOINT * A, * B;
|
||||
lint p;
|
||||
}CURVE;
|
||||
|
||||
|
||||
@ -22,14 +23,23 @@ typedef struct point{
|
||||
FPOINT * x, * y;
|
||||
}POINT;
|
||||
|
||||
FPOINT * ZERO, * ONE;//zero element in field
|
||||
POINT * O;//infinte point
|
||||
void init();
|
||||
|
||||
lint modsquareroot(lint a, lint p);
|
||||
|
||||
bool testpoint(POINT * p, CURVE * c, lint p1);
|
||||
|
||||
POINT * randompoint(CURVE * c, lint p);
|
||||
|
||||
CURVE * curveassign(CURVE * a, CURVE * b);
|
||||
|
||||
POINT * phi(POINT * a, lint p, POINT * result);
|
||||
|
||||
FPOINT * newfpoint(lint x, lint y);
|
||||
|
||||
POINT * newpoint(lint a, lint b, lint c, lint d);
|
||||
|
||||
CURVE * newcurve(FPOINT * A, FPOINT * B);
|
||||
CURVE * newcurve(lint A, lint B);
|
||||
|
||||
void freepoint(POINT * a);
|
||||
|
||||
@ -39,6 +49,8 @@ lint gcdEx(lint a, lint b, lint *x, lint *y);
|
||||
|
||||
lint inver(lint a, lint p);
|
||||
|
||||
lint randonsafeprime(lint n);
|
||||
|
||||
bool equl(FPOINT * a, FPOINT * b);
|
||||
|
||||
bool equln(FPOINT * a, FPOINT * b, lint p);
|
||||
@ -77,4 +89,17 @@ POINT * ppower(POINT * a, lint n, CURVE * c, lint p, POINT * result);
|
||||
|
||||
bool millerrabin(lint n, lint r);
|
||||
|
||||
lint findorder(POINT * po, CURVE * c, lint p);
|
||||
|
||||
bool evaluelinedivi(POINT * a, POINT * b, POINT * in, CURVE * c, lint p, FPOINT * result);
|
||||
|
||||
bool evaluelinedivi(POINT * a, POINT * b, POINT * in, CURVE * c, lint p, FPOINT * result);
|
||||
|
||||
bool miller(POINT * a, POINT * b, CURVE * c, lint p, lint m, FPOINT * f);
|
||||
|
||||
lint findorder(POINT * po, CURVE * c, lint p);
|
||||
|
||||
bool weilpairing(POINT * a, POINT * b, CURVE * c, lint p, lint n ,FPOINT * result);
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user