Electroneum
Loading...
Searching...
No Matches
test_crypto_ops< op > Class Template Reference

#include <crypto_ops.h>

Public Member Functions

bool init ()
bool test ()

Static Public Attributes

static const size_t loop_count = op < ops_fast ? 10000000 : 1000

Detailed Description

template<test_op op>
class test_crypto_ops< op >

Definition at line 63 of file crypto_ops.h.

Member Function Documentation

◆ init()

template<test_op op>
bool test_crypto_ops< op >::init ( )
inline

Definition at line 68 of file crypto_ops.h.

69 {
70 scalar0 = rct::skGen();
71 scalar1 = rct::skGen();
74 if (ge_frombytes_vartime(&p3_0, point0.bytes) != 0)
75 return false;
76 if (ge_frombytes_vartime(&p3_1, point1.bytes) != 0)
77 return false;
78 ge_p3_to_cached(&cached, &p3_0);
79 rct::precomp(precomp0, point0);
80 rct::precomp(precomp1, point1);
81 return true;
82 }
int ge_frombytes_vartime(ge_p3 *, const unsigned char *)
void scalarmultBase(key &aG, const key &a)
Definition rctOps.cpp:350
key skGen()
Definition rctOps.cpp:258
void precomp(ge_dsmp rv, const key &B)
Definition rctOps.cpp:476
#define ge_p3_to_cached
Definition ge.h:61
Here is the call graph for this function:

◆ test()

template<test_op op>
bool test_crypto_ops< op >::test ( )
inline

Definition at line 84 of file crypto_ops.h.

85 {
91 switch (op)
92 {
93 case op_sc_add: sc_add(key.bytes, scalar0.bytes, scalar1.bytes); break;
94 case op_sc_sub: sc_sub(key.bytes, scalar0.bytes, scalar1.bytes); break;
95 case op_sc_mul: sc_mul(key.bytes, scalar0.bytes, scalar1.bytes); break;
96 case op_ge_add_p3_p3: {
98 ge_add(&tmp_p1p1, &p3_1, &tmp_cached);
99 ge_p1p1_to_p3(&p3_1, &tmp_p1p1);
100 break;
101 }
102 case op_ge_add_raw: ge_add(&tmp_p1p1, &p3_1, &cached); break;
103 case op_addKeys: rct::addKeys(key, point0, point1); break;
104 case op_scalarmultBase: rct::scalarmultBase(scalar0); break;
105 case op_scalarmultKey: rct::scalarmultKey(point0, scalar0); break;
106 case op_scalarmultH: rct::scalarmultH(scalar0); break;
107 case op_scalarmult8: rct::scalarmult8(point0); break;
108 case op_ge_dsm_precomp: ge_dsm_precomp(dsmp, &p3_0); break;
109 case op_ge_double_scalarmult_base_vartime: ge_double_scalarmult_base_vartime(&tmp_p2, scalar0.bytes, &p3_0, scalar1.bytes); break;
110 case op_ge_double_scalarmult_precomp_vartime: ge_double_scalarmult_precomp_vartime(&tmp_p2, scalar0.bytes, &p3_0, scalar1.bytes, precomp0); break;
111 case op_ge_double_scalarmult_precomp_vartime2: ge_double_scalarmult_precomp_vartime2(&tmp_p2, scalar0.bytes, precomp0, scalar1.bytes, precomp1); break;
112 case op_addKeys2: rct::addKeys2(key, scalar0, scalar1, point0); break;
113 case op_addKeys3: rct::addKeys3(key, scalar0, point0, scalar1, precomp1); break;
114 case op_addKeys3_2: rct::addKeys3(key, scalar0, precomp0, scalar1, precomp1); break;
115 case op_isInMainSubgroup: rct::isInMainSubgroup(point0); break;
116 case op_zeroCommitUncached: rct::zeroCommit(9001); break;
117 case op_zeroCommitCached: rct::zeroCommit(9000); break;
118 default: return false;
119 }
120 return true;
121 }
void sc_mul(unsigned char *, const unsigned char *, const unsigned char *)
void ge_double_scalarmult_precomp_vartime(ge_p2 *, const unsigned char *, const ge_p3 *, const unsigned char *, const ge_dsmp)
void ge_dsm_precomp(ge_dsmp r, const ge_p3 *s)
void sc_sub(unsigned char *, const unsigned char *, const unsigned char *)
void ge_double_scalarmult_precomp_vartime2(ge_p2 *, const unsigned char *, const ge_dsmp, const unsigned char *, const ge_dsmp)
void ge_double_scalarmult_base_vartime(ge_p2 *, const unsigned char *, const ge_p3 *, const unsigned char *)
void sc_add(unsigned char *, const unsigned char *, const unsigned char *)
bool isInMainSubgroup(const key &A)
Definition rctOps.cpp:412
key scalarmultH(const key &a)
Definition rctOps.cpp:389
key zeroCommit(etn_amount amount)
Definition rctOps.cpp:322
void scalarmultKey(key &aP, const key &P, const key &a)
Definition rctOps.cpp:368
void addKeys(key &AB, const key &A, const key &B)
Definition rctOps.cpp:420
key scalarmult8(const key &P)
Definition rctOps.cpp:398
void addKeys2(key &aGbB, const key &a, const key &b, const key &B)
Definition rctOps.cpp:466
void addKeys3(key &aAbB, const key &a, const key &A, const key &b, const ge_dsmp B)
Definition rctOps.cpp:485
#define ge_p1p1_to_p3
Definition ge.h:63
#define ge_add
Definition ge.h:69
Here is the call graph for this function:

Member Data Documentation

◆ loop_count

template<test_op op>
const size_t test_crypto_ops< op >::loop_count = op < ops_fast ? 10000000 : 1000
static

Definition at line 66 of file crypto_ops.h.


The documentation for this class was generated from the following file:
  • /home/abuild/rpmbuild/BUILD/electroneum-5.1.3.1-build/electroneum-5.1.3.1/tests/performance_tests/crypto_ops.h