diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2023-08-22 16:16:21 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2023-08-22 16:16:21 +0700 |
commit | c3c24f0b1cf7342922e76ca8bad6065ab38262c4 (patch) | |
tree | 893326f04d4f264728b7aed41f9c99829b7b36a9 /crypto/src/math/ec/rfc8032 | |
parent | Comment an alternative unoptimized impl for ScalarMultBase (diff) | |
download | BouncyCastle.NET-ed25519-c3c24f0b1cf7342922e76ca8bad6065ab38262c4.tar.xz |
Ed25519 refactoring
Diffstat (limited to 'crypto/src/math/ec/rfc8032')
-rw-r--r-- | crypto/src/math/ec/rfc8032/Ed25519.cs | 4 | ||||
-rw-r--r-- | crypto/src/math/ec/rfc8032/Scalar25519.cs | 10 |
2 files changed, 8 insertions, 6 deletions
diff --git a/crypto/src/math/ec/rfc8032/Ed25519.cs b/crypto/src/math/ec/rfc8032/Ed25519.cs index 09cc9d433..766ccb393 100644 --- a/crypto/src/math/ec/rfc8032/Ed25519.cs +++ b/crypto/src/math/ec/rfc8032/Ed25519.cs @@ -1496,7 +1496,7 @@ namespace Org.BouncyCastle.Math.EC.Rfc8032 #endif Scalar25519.Decode(k, n); - Scalar25519.ToSignedDigits(256, n, n); + Scalar25519.ToSignedDigits(256, n); Init(out PointPrecompZ q); Init(out PointTemp t); @@ -1541,7 +1541,7 @@ namespace Org.BouncyCastle.Math.EC.Rfc8032 #endif Scalar25519.Decode(k, n); - Scalar25519.ToSignedDigits(PrecompRange, n, n); + Scalar25519.ToSignedDigits(PrecompRange, n); GroupCombBits(n); Init(out PointPrecomp p); diff --git a/crypto/src/math/ec/rfc8032/Scalar25519.cs b/crypto/src/math/ec/rfc8032/Scalar25519.cs index 00dcd49a1..df31929cd 100644 --- a/crypto/src/math/ec/rfc8032/Scalar25519.cs +++ b/crypto/src/math/ec/rfc8032/Scalar25519.cs @@ -14,6 +14,8 @@ namespace Org.BouncyCastle.Math.EC.Rfc8032 { internal const int Size = 8; + private const int ScalarBytes = Size * 4; + private const long M08L = 0x000000FFL; private const long M28L = 0x0FFFFFFFL; private const long M32L = 0xFFFFFFFFL; @@ -105,7 +107,7 @@ namespace Org.BouncyCastle.Math.EC.Rfc8032 internal static byte[] Reduce(byte[] n) { - byte[] r = new byte[64]; + byte[] r = new byte[ScalarBytes]; #if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER Reduce(n, r); @@ -488,15 +490,15 @@ namespace Org.BouncyCastle.Math.EC.Rfc8032 #endif #if NETCOREAPP2_1_OR_GREATER || NETSTANDARD2_1_OR_GREATER - internal static void ToSignedDigits(int bits, ReadOnlySpan<uint> x, Span<uint> z) + internal static void ToSignedDigits(int bits, Span<uint> z) #else - internal static void ToSignedDigits(int bits, uint[] x, uint[] z) + internal static void ToSignedDigits(int bits, uint[] z) #endif { Debug.Assert(bits == 256); Debug.Assert(z.Length >= Size); - uint c1 = Nat.CAdd(Size, ~(int)x[0] & 1, x, L, z); Debug.Assert(c1 == 0U); + uint c1 = Nat.CAddTo(Size, ~(int)z[0] & 1, L, z); Debug.Assert(c1 == 0U); uint c2 = Nat.ShiftDownBit(Size, z, 1U); Debug.Assert(c2 == (1U << 31)); } } |