37 lines
931 B
C++
37 lines
931 B
C++
/*
|
|
* MIRACL C++ Header file ebrick2.h
|
|
*
|
|
* AUTHOR : M. Scott
|
|
*
|
|
* PURPOSE : Definition of class EBrick2
|
|
* Brickell et al's method for fast exponentiation with
|
|
* precomputation - elliptic curve version GF(2^m)
|
|
* NOTE : Must be used in conjunction with big.cpp
|
|
*/
|
|
|
|
#ifndef EBRICK2_H
|
|
#define EBRICK2_H
|
|
|
|
#include "big.h"
|
|
|
|
class EBrick2
|
|
{
|
|
BOOL created;
|
|
ebrick2 B;
|
|
public:
|
|
EBrick2(Big x,Big y,Big a2,Big a6,int m,int a,int b,int c,int window,int nb)
|
|
{ebrick2_init(&B,x.getbig(),y.getbig(),a2.getbig(),a6.getbig(),m,a,b,c,window,nb);
|
|
created=TRUE;}
|
|
|
|
EBrick2(ebrick2 *b) {B=*b; created=FALSE;} /* set structure */
|
|
|
|
ebrick2 *get(void) {return &B;} /* get address of structure */
|
|
|
|
int mul(Big &e,Big &x,Big &y) {int d=mul2_brick(&B,e.getbig(),x.getbig(),y.getbig()); return d;}
|
|
|
|
~EBrick2() {if (created) ebrick2_end(&B);}
|
|
};
|
|
|
|
#endif
|
|
|