/* borZoi - An Elliptic Curve Cryptography Library Copyright (C) 2001 Anthony Mulcahy This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. \You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "borzoi_util.h" Point Point::negative () { Point p = *this; p.y += p.x; return p; } Point& Point::operator= (const Point& p) { if (this != &p) { // avoid self assignment x = p.x; y = p.y; } return *this; } std::ostream& Point::put (std::ostream&s) { s<<"x:0x"; OCTETSTR x_buf = FE2OSP (x); //for (int i=x_buf.size()-1; i>=0; i--) { for (int i=0; i>4); s<=0; j--) { for (int j=0; j>4); s<=0; i--) { for (int i=0; i>4); s<=0; j--) { for (int j=0; j>4); s<=0; j--) { Q = dbl (Q); if (k.getBit(j)) { Q = add (Q, P); } } return Q; }