From 99d946e6191056f747225d36a2408085624b516e Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sun, 6 Jan 2019 19:49:52 +0000 Subject: ringct: encode 8 byte amount, saving 24 bytes per output Found by knaccc --- tests/unit_tests/device.cpp | 22 +++++++++++++++++++--- tests/unit_tests/ringct.cpp | 4 ++-- 2 files changed, 21 insertions(+), 5 deletions(-) (limited to 'tests/unit_tests') diff --git a/tests/unit_tests/device.cpp b/tests/unit_tests/device.cpp index 50ccec9fa..3ae748145 100644 --- a/tests/unit_tests/device.cpp +++ b/tests/unit_tests/device.cpp @@ -114,7 +114,7 @@ TEST(device, ops) ASSERT_EQ(ki0, ki1); } -TEST(device, ecdh) +TEST(device, ecdh32) { hw::core::device_default dev; rct::ecdhTuple tuple, tuple2; @@ -123,8 +123,24 @@ TEST(device, ecdh) tuple.amount = rct::skGen(); tuple.senderPk = rct::pkGen(); tuple2 = tuple; - dev.ecdhEncode(tuple, key); - dev.ecdhDecode(tuple, key); + dev.ecdhEncode(tuple, key, false); + dev.ecdhDecode(tuple, key, false); + ASSERT_EQ(tuple2.mask, tuple.mask); + ASSERT_EQ(tuple2.amount, tuple.amount); + ASSERT_EQ(tuple2.senderPk, tuple.senderPk); +} + +TEST(device, ecdh8) +{ + hw::core::device_default dev; + rct::ecdhTuple tuple, tuple2; + rct::key key = rct::skGen(); + tuple.mask = rct::skGen(); + tuple.amount = rct::skGen(); + tuple.senderPk = rct::pkGen(); + tuple2 = tuple; + dev.ecdhEncode(tuple, key, true); + dev.ecdhDecode(tuple, key, true); ASSERT_EQ(tuple2.mask, tuple.mask); ASSERT_EQ(tuple2.amount, tuple.amount); ASSERT_EQ(tuple2.senderPk, tuple.senderPk); diff --git a/tests/unit_tests/ringct.cpp b/tests/unit_tests/ringct.cpp index ec704daa1..905b8471a 100644 --- a/tests/unit_tests/ringct.cpp +++ b/tests/unit_tests/ringct.cpp @@ -843,8 +843,8 @@ TEST(ringct, ecdh_roundtrip) t0.amount = d2h(amount); t1 = t0; - ecdhEncode(t1, k); - ecdhDecode(t1, k); + ecdhEncode(t1, k, true); + ecdhDecode(t1, k, true); ASSERT_TRUE(t0.mask == t1.mask); ASSERT_TRUE(equalKeys(t0.mask, t1.mask)); ASSERT_TRUE(t0.amount == t1.amount); -- cgit v1.2.3