如何使用Crypto ++库在椭圆曲线上使用点加法和乘法功能?
我尝试了以下代码,其中Basepoint
和point
是椭圆曲线上的点。
const ECP::Point& ECP::Add(&Basepoint, &point);
ECP::Point& result = ECP::Add(Basepoint, point);
const int result = ECP::Point ECP::Add(&Basepoint, &point);
结果为:
错误:E0245非静态成员引用必须相对于 特定对象
答案 0 :(得分:1)
在
ECP :: Point&result = ECP :: Add(Basepoint,point);
您将ECP::Add
称为ECP的静态成员,错误表明没有静态的 Add ,您需要将其应用于ECP实例
当我看着documentation时,我只会看到
const Point&Add(const Point&P,const Point&Q)const
这不是静态的
也
const ECP :: Point&ECP :: Add(&Basepoint,&point);
const int result = ECP :: Point ECP :: Add(&Basepoint,&point);
是无效的表格。
即使只有ECP::Add(&Basepoint, &point);
也是错误的,因为操作不是静态的,并且参数是指向与操作参数不兼容的 Point 的指针。可能您必须看看C ++文档/教程中的引用是什么
有效代码可以是
ECP ecp;
Point basepoint;
Point point;
// set ecp, basepoint and point to be the ones you want
const Point & r1 = ecp.Add(basepoint, point); // do not copy the result
Point r2 = ecp.Add(basepoint, point); // copy result in non const to be able to modify it later etc