crypto:: scalar_t::operator- (unary) + test
This commit is contained in:
parent
ec32ff4b5f
commit
91afdac46d
2 changed files with 17 additions and 4 deletions
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2020-2022 Zano Project
|
||||
// Copyright (c) 2020-2022 sowle (val@zano.org, crypto.sowle@gmail.com)
|
||||
// Copyright (c) 2020-2023 Zano Project
|
||||
// Copyright (c) 2020-2023 sowle (val@zano.org, crypto.sowle@gmail.com)
|
||||
// Distributed under the MIT/X11 software license, see the accompanying
|
||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
||||
//
|
||||
|
|
@ -309,6 +309,14 @@ namespace crypto
|
|||
return *this;
|
||||
}
|
||||
|
||||
scalar_t operator-() const
|
||||
{
|
||||
static unsigned char zero[32] = { 0 };
|
||||
scalar_t result;
|
||||
sc_sub(&result.m_s[0], zero, &m_s[0]);
|
||||
return result;
|
||||
}
|
||||
|
||||
// returns this = a * b
|
||||
scalar_t& assign_mul(const scalar_t& a, const scalar_t& b)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -823,13 +823,18 @@ TEST(crypto, keys)
|
|||
|
||||
TEST(crypto, scalar_basics)
|
||||
{
|
||||
scalar_t zero = 0;
|
||||
const scalar_t zero = 0;
|
||||
ASSERT_TRUE(zero.is_zero());
|
||||
scalar_t one = 1;
|
||||
const scalar_t one = 1;
|
||||
ASSERT_FALSE(one.is_zero());
|
||||
ASSERT_TRUE(one > zero);
|
||||
ASSERT_TRUE(one.muladd(zero, zero) == zero);
|
||||
|
||||
ASSERT_EQ(-one, c_scalar_Lm1);
|
||||
ASSERT_EQ(-one, scalar_t(0) - one);
|
||||
ASSERT_EQ(-zero, zero);
|
||||
ASSERT_EQ(-c_scalar_Lm1, one);
|
||||
|
||||
scalar_t z = 0;
|
||||
for (size_t j = 0; j < 1000; ++j)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue