Добавление и умножение точек эллиптической кривой в Crypto ++ - PullRequest
0 голосов
/ 23 мая 2019

Как использовать функции сложения и умножения точек в эллиптической кривой с использованием библиотеки 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 ссылка на нестатический элемент должна относиться к конкретному объекту

1 Ответ

1 голос
/ 23 мая 2019

в

ECP :: Point & result = ECP :: Add (Базовая точка, точка);

Вы называете ECP::Add статическим членом ECP, ошибка указывает на отсутствие статического Добавить , вам необходимо применить его к экземпляру ECP

Когда я смотрю на документацию Я вижу только

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); также неверно, поскольку операция не является статической, а аргументы являются указателями на Точку , несовместимую с параметрами операции. Вероятно, вы должны взглянуть на то, что ссылка в документации 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
...