|
|
|
@ -66,6 +66,7 @@ namespace rct {
|
|
|
|
|
|
|
|
|
|
static const key Z = { {0x00, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00,0x00 } };
|
|
|
|
|
static const key I = { {0x01, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00,0x00 , 0x00, 0x00, 0x00,0x00 } };
|
|
|
|
|
static const key L = { {0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10 } };
|
|
|
|
|
|
|
|
|
|
//Creates a zero scalar
|
|
|
|
|
inline key zero() { return Z; }
|
|
|
|
@ -73,6 +74,9 @@ namespace rct {
|
|
|
|
|
//Creates a zero elliptic curve point
|
|
|
|
|
inline key identity() { return I; }
|
|
|
|
|
inline void identity(key &Id) { memcpy(&Id, &I, 32); }
|
|
|
|
|
//Creates a key equal to the curve order
|
|
|
|
|
inline key curveOrder() { return L; }
|
|
|
|
|
inline void curveOrder(key &l) { l = L; }
|
|
|
|
|
//copies a scalar or point
|
|
|
|
|
inline void copy(key &AA, const key &A) { memcpy(&AA, &A, 32); }
|
|
|
|
|
inline key copy(const key & A) { key AA; memcpy(&AA, &A, 32); return AA; }
|
|
|
|
|