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); }
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);
#define v2(p)
Definition: aesb.c:118
ge_cached ge_dsmp[8]
Definition: crypto-ops.h:79
void * memcpy(void *a, const void *b, size_t c)
Definition: glibc_compat.cpp:16
string a
Definition: MakeCryptoOps.py:15
list B
Definition: base.py:26
int b
Definition: base.py:1
int l
Definition: base.py:3
int rows
Definition: crypto.h:86
POD_CLASS hash
Definition: hash.h:50
Definition: bulletproofs.cc:63
void scalarmultBase(key &aG, const key &a)
Definition: rctOps.cpp:350
key curveOrder()
Definition: rctOps.h:76
void ecdhEncode(ecdhTuple &unmasked, const key &sharedSec, bool v2)
Definition: rctOps.cpp:697
void hash_to_scalar(key &hash, const void *data, const std::size_t l)
Definition: rctOps.cpp:536
void cn_fast_hash(key &hash, const void *data, const std::size_t l)
Definition: rctOps.cpp:532
uint64_t etn_amount
Definition: rctTypes.h:135
void skpkGen(key &sk, key &pk)
Definition: rctOps.cpp:284
key hashToPointSimple(const key &hh)
Definition: rctOps.cpp:624
bool isInMainSubgroup(const key &A)
Definition: rctOps.cpp:412
std::vector< key > keyV
Definition: rctTypes.h:88
std::vector< keyV > keyM
Definition: rctTypes.h:89
static const key EIGHT
Definition: rctOps.h:66
key scalarmultH(const key &a)
Definition: rctOps.cpp:389
void subKeys(key &AB, const key &A, const key &B)
Definition: rctOps.cpp:505
static const key L
Definition: rctOps.h:64
key zeroCommit(etn_amount amount)
Definition: rctOps.cpp:322
void genC(key &C, const key &a, etn_amount amount)
Definition: rctOps.cpp:297
static const key Z
Definition: rctOps.h:62
key key64[64]
Definition: rctTypes.h:137
bool toPointCheckOrder(ge_p3 *P, const unsigned char *data)
Definition: rctOps.cpp:241
static const key INV_EIGHT
Definition: rctOps.h:67
void scalarmultKey(key &aP, const key &P, const key &a)
Definition: rctOps.cpp:368
static const key I
Definition: rctOps.h:63
void addKeys1(key &aGB, const key &a, const key &B)
Definition: rctOps.cpp:459
std::vector< ctkey > ctkeyV
Definition: rctTypes.h:100
keyV skvGen(size_t rows)
Definition: rctOps.cpp:266
key cn_fast_hash128(const void *in)
Definition: rctOps.cpp:565
void addKeys(key &AB, const key &A, const key &B)
Definition: rctOps.cpp:420
key scalarmult8(const key &P)
Definition: rctOps.cpp:398
key zero()
Definition: rctOps.h:70
void ecdhDecode(ecdhTuple &masked, const key &sharedSec, bool v2)
Definition: rctOps.cpp:712
void addKeys2(key &aGbB, const key &a, const key &b, const key &B)
Definition: rctOps.cpp:466
static const key G
Definition: rctOps.h:65
key pkGen()
Definition: rctOps.cpp:277
void copy(key &AA, const key &A)
Definition: rctOps.h:79
tuple< ctkey, ctkey > ctskpkGen(etn_amount amount)
Definition: rctOps.cpp:302
key hashToPoint(const key &hh)
Definition: rctOps.cpp:638
void precomp(ge_dsmp rv, const key &B)
Definition: rctOps.cpp:476
key hash_to_scalar128(const void *in)
Definition: rctOps.cpp:571
void skGen(key &sk)
Definition: rctOps.cpp:253
void addKeys3(key &aAbB, const key &a, const key &A, const key &b, const ge_dsmp B)
Definition: rctOps.cpp:485
keyM keyMInit(size_t rows, size_t cols)
Definition: rctOps.cpp:227
key genCommitmentMask(const key &sk)
Definition: rctOps.cpp:687
bool equalKeys(const key &a, const key &b)
Definition: rctOps.cpp:519
key commit(etn_amount amount, const key &mask)
Definition: rctOps.cpp:336
void sumKeys(key &Csum, const keyV &Cis)
Definition: rctOps.cpp:663
key identity()
Definition: rctOps.h:73
etn_amount randEtnAmount(etn_amount upperlimit)
Definition: rctOps.cpp:343
Definition: crypto-ops.h:46
Definition: rctTypes.h:124
Definition: rctTypes.h:78