aboutsummaryrefslogtreecommitdiff
path: root/src/ringct/rctOps.cpp
diff options
context:
space:
mode:
authorSarang Noether <32460187+SarangNoether@users.noreply.github.com>2019-08-27 16:22:44 -0400
committerSarang Noether <32460187+SarangNoether@users.noreply.github.com>2019-08-27 16:22:44 -0400
commit3a0451a8be43154f0da06dd9c693ed6f0c657042 (patch)
tree298545ee6661a331d615de049359e74e5a9e5ca2 /src/ringct/rctOps.cpp
parentMerge pull request #5641 (diff)
downloadmonero-3a0451a8be43154f0da06dd9c693ed6f0c657042.tar.xz
MLSAG speedup and additional checks
Diffstat (limited to '')
-rw-r--r--src/ringct/rctOps.cpp46
1 files changed, 9 insertions, 37 deletions
diff --git a/src/ringct/rctOps.cpp b/src/ringct/rctOps.cpp
index b5499262f..6e4d063df 100644
--- a/src/ringct/rctOps.cpp
+++ b/src/ringct/rctOps.cpp
@@ -620,44 +620,16 @@ namespace rct {
sc_reduce32(rv.bytes);
return rv;
}
-
- key hashToPointSimple(const key & hh) {
- key pointk;
- ge_p1p1 point2;
- ge_p2 point;
- ge_p3 res;
- key h = cn_fast_hash(hh);
- CHECK_AND_ASSERT_THROW_MES_L1(ge_frombytes_vartime(&res, h.bytes) == 0, "ge_frombytes_vartime failed at "+boost::lexical_cast<std::string>(__LINE__));
- ge_p3_to_p2(&point, &res);
- ge_mul8(&point2, &point);
- ge_p1p1_to_p3(&res, &point2);
- ge_p3_tobytes(pointk.bytes, &res);
- return pointk;
- }
- key hashToPoint(const key & hh) {
- key pointk;
- ge_p2 point;
- ge_p1p1 point2;
- ge_p3 res;
- key h = cn_fast_hash(hh);
- ge_fromfe_frombytes_vartime(&point, h.bytes);
- ge_mul8(&point2, &point);
- ge_p1p1_to_p3(&res, &point2);
- ge_p3_tobytes(pointk.bytes, &res);
- return pointk;
- }
-
- void hashToPoint(key & pointk, const key & hh) {
- ge_p2 point;
- ge_p1p1 point2;
- ge_p3 res;
- key h = cn_fast_hash(hh);
- ge_fromfe_frombytes_vartime(&point, h.bytes);
- ge_mul8(&point2, &point);
- ge_p1p1_to_p3(&res, &point2);
- ge_p3_tobytes(pointk.bytes, &res);
- }
+ // Hash a key to p3 representation
+ void hash_to_p3(ge_p3 &hash8_p3, const key &k) {
+ key hash_key = cn_fast_hash(k);
+ ge_p2 hash_p2;
+ ge_fromfe_frombytes_vartime(&hash_p2, hash_key.bytes);
+ ge_p1p1 hash8_p1p1;
+ ge_mul8(&hash8_p1p1, &hash_p2);
+ ge_p1p1_to_p3(&hash8_p3, &hash8_p1p1);
+ }
//sums a vector of curve points (for scalars use sc_add)
void sumKeys(key & Csum, const keyV & Cis) {