62 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 } };
63 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 } };
64 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 } };
65 static const key G = { {0x58, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66 } };
66 static const key EIGHT = { {0x08, 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 } };
67 static const key INV_EIGHT = { { 0x79, 0x2f, 0xdc, 0xe2, 0x29, 0xe5, 0x06, 0x61, 0xd0, 0xda, 0x1c, 0x7d, 0xb3, 0x9d, 0xd3, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06 } };
71 inline void zero(
key &z) { memset(&z, 0, 32); }
79 inline void copy(
key &AA,
const key &A) { memcpy(&AA, &A, 32); }
80 inline key copy(
const key & A) {
key AA; memcpy(&AA, &A, 32);
return AA; }
100 void skpkGen(key &sk, key &pk);
101 std::tuple<key, key>
skpkGen();
107 std::tuple<ctkey, ctkey>
ctskpkGen(
const key &bH);
133 void addKeys(key &AB,
const key &A,
const key &
B);
137 void addKeys1(key &aGB,
const key &
a,
const key &
B);
139 void addKeys2(key &aGbB,
const key &
a,
const key &
b,
const key &
B);
148 void subKeys(key &AB,
const key &A,
const key &
B);
181 void sumKeys(key & Csum,
const key &Cis);
185 void ecdhEncode(ecdhTuple & unmasked,
const key & sharedSec);
186 void ecdhDecode(ecdhTuple & masked,
const key & sharedSec);
void genC(key &C, const key &a, xmr_amount amount)
Definition: rctOps.cpp:119
keyV skvGen(size_t rows)
Definition: rctOps.cpp:88
key curveOrder()
Definition: rctOps.h:76
void precomp(ge_dsmp rv, const key &B)
Definition: rctOps.cpp:293
void addKeys1(key &aGB, const key &a, const key &B)
Definition: rctOps.cpp:276
static const key G
Definition: rctOps.h:65
key pkGen()
Definition: rctOps.cpp:99
key commit(xmr_amount amount, const key &mask)
Definition: rctOps.cpp:151
list B
Definition: base.py:26
uint64_t xmr_amount
Definition: rctTypes.h:138
void addKeys3(key &aAbB, const key &a, const key &A, const key &b, const ge_dsmp B)
Definition: rctOps.cpp:302
void ecdhEncode(ecdhTuple &unmasked, const key &sharedSec)
Definition: rctOps.cpp:490
void sumKeys(key &Csum, const keyV &Cis)
Definition: rctOps.cpp:480
Definition: crypto-ops.h:45
key hash_to_scalar128(const void *in)
Definition: rctOps.cpp:388
Definition: bulletproofs.cc:56
static rct::key scalarmultKey(const ge_p3 &P, const rct::key &a)
Definition: bulletproofs.cc:130
key cn_fast_hash128(const void *in)
Definition: rctOps.cpp:382
void copy(key &AA, const key &A)
Definition: rctOps.h:79
key zeroCommit(xmr_amount amount)
Definition: rctOps.cpp:145
bool toPointCheckOrder(ge_p3 *P, const unsigned char *data)
Definition: rctOps.cpp:63
keyM keyMInit(size_t rows, size_t cols)
Definition: rctOps.cpp:49
void cn_fast_hash(key &hash, const void *data, const std::size_t l)
Definition: rctOps.cpp:349
std::vector< key > keyV
Definition: rctTypes.h:88
static const key I
Definition: rctOps.h:63
static const key EIGHT
Definition: rctOps.h:66
key key64[64]
Definition: rctTypes.h:140
std::vector< ctkey > ctkeyV
Definition: rctTypes.h:100
Definition: rctTypes.h:78
int b
Definition: base.py:1
static const key L
Definition: rctOps.h:64
xmr_amount randXmrAmount(xmr_amount upperlimit)
Definition: rctOps.cpp:160
key scalarmultH(const key &a)
Definition: rctOps.cpp:206
void hash_to_scalar(key &hash, const void *data, const std::size_t l)
Definition: rctOps.cpp:353
int l
Definition: base.py:3
bool isInMainSubgroup(const key &a)
Definition: rctOps.cpp:229
void skGen(key &sk)
Definition: rctOps.cpp:75
void scalarmultBase(key &aG, const key &a)
Definition: rctOps.cpp:167
std::vector< keyV > keyM
Definition: rctTypes.h:89
ge_cached ge_dsmp[8]
Definition: crypto-ops.h:78
static const key Z
Definition: rctOps.h:62
key identity()
Definition: rctOps.h:73
tuple< ctkey, ctkey > ctskpkGen(xmr_amount amount)
Definition: rctOps.cpp:125
void ecdhDecode(ecdhTuple &masked, const key &sharedSec)
Definition: rctOps.cpp:497
string a
Definition: MakeCryptoOps.py:15
static const key INV_EIGHT
Definition: rctOps.h:67
void subKeys(key &AB, const key &A, const key &B)
Definition: rctOps.cpp:322
void addKeys2(key &aGbB, const key &a, const key &b, const key &B)
Definition: rctOps.cpp:283
void skpkGen(key &sk, key &pk)
Definition: rctOps.cpp:106
key scalarmult8(const key &P)
Definition: rctOps.cpp:215
key hashToPoint(const key &hh)
Definition: rctOps.cpp:455
POD_CLASS hash
Definition: hash.h:49
void addKeys(key &AB, const key &A, const key &B)
Definition: rctOps.cpp:237
bool equalKeys(const key &a, const key &b)
Definition: rctOps.cpp:336
key zero()
Definition: rctOps.h:70
key hashToPointSimple(const key &hh)
Definition: rctOps.cpp:441
int rows
Definition: crypto.h:73