Implement Negation
MODIFY
WalletWasabi.Tests/UnitTests/Crypto/GroupElementTests.cs
WalletWasabi.Tests/UnitTests/Crypto/GroupElementTests.cs
@@ -268,5 +268,14 @@ namespace WalletWasabi.Tests.UnitTests.Crypto
Assert.Equal(one, two - one + zero);
Assert.Equal(zero, zero + zero - zero + zero);
}
+
+ [Fact]
+ public void Negation()
+ {
+ Assert.Equal(new GroupElement(EC.G.Negate()), GroupElement.Generator.Negate());
+ Scalar one = new Scalar(1);
+ Assert.Equal(new GroupElement(EC.G.Negate() * one), new GroupElement(EC.G * one).Negate());
+ Assert.Equal(GroupElement.Infinity, GroupElement.Infinity.Negate());
+ }
}
}

MODIFY
WalletWasabi/Crypto/GroupElement.cs
WalletWasabi/Crypto/GroupElement.cs
@@ -100,5 +100,7 @@ namespace WalletWasabi.Crypto
return a + new GroupElement(b.Ge.Negate());
}
+
+ public GroupElement Negate() => new GroupElement(Ge.Negate());
}
}

Implement Negation