diff options
author | Peter Dettman <peter.dettman@bouncycastle.org> | 2014-02-07 12:56:46 +0700 |
---|---|---|
committer | Peter Dettman <peter.dettman@bouncycastle.org> | 2014-02-07 12:56:46 +0700 |
commit | c89dd16807951633fce1e2e7d34858868a4ca076 (patch) | |
tree | c9fd16a709023572e008fd5ddac86d423ad82cd6 /crypto/src/math/ec/multiplier | |
parent | Update OCB draft references (diff) | |
download | BouncyCastle.NET-ed25519-c89dd16807951633fce1e2e7d34858868a4ca076.tar.xz |
Index precomputation info by name
Diffstat (limited to 'crypto/src/math/ec/multiplier')
-rw-r--r-- | crypto/src/math/ec/multiplier/FixedPointUtilities.cs | 6 | ||||
-rw-r--r-- | crypto/src/math/ec/multiplier/WNafUtilities.cs | 8 | ||||
-rw-r--r-- | crypto/src/math/ec/multiplier/WTauNafMultiplier.cs | 7 |
3 files changed, 14 insertions, 7 deletions
diff --git a/crypto/src/math/ec/multiplier/FixedPointUtilities.cs b/crypto/src/math/ec/multiplier/FixedPointUtilities.cs index 8a04fcdc1..194995e08 100644 --- a/crypto/src/math/ec/multiplier/FixedPointUtilities.cs +++ b/crypto/src/math/ec/multiplier/FixedPointUtilities.cs @@ -4,6 +4,8 @@ namespace Org.BouncyCastle.Math.EC.Multiplier { public class FixedPointUtilities { + public static readonly string PRECOMP_NAME = "bc_fixed_point"; + public static int GetCombSize(ECCurve c) { BigInteger order = c.Order; @@ -25,7 +27,7 @@ namespace Org.BouncyCastle.Math.EC.Multiplier ECCurve c = p.Curve; int n = 1 << width; - FixedPointPreCompInfo info = GetFixedPointPreCompInfo(c.GetPreCompInfo(p)); + FixedPointPreCompInfo info = GetFixedPointPreCompInfo(c.GetPreCompInfo(p, PRECOMP_NAME)); ECPoint[] lookupTable = info.PreComp; if (lookupTable == null || lookupTable.Length != n) @@ -60,7 +62,7 @@ namespace Org.BouncyCastle.Math.EC.Multiplier info.PreComp = lookupTable; - c.SetPreCompInfo(p, info); + c.SetPreCompInfo(p, PRECOMP_NAME, info); } return info; diff --git a/crypto/src/math/ec/multiplier/WNafUtilities.cs b/crypto/src/math/ec/multiplier/WNafUtilities.cs index d37da8a5e..eac47222b 100644 --- a/crypto/src/math/ec/multiplier/WNafUtilities.cs +++ b/crypto/src/math/ec/multiplier/WNafUtilities.cs @@ -4,6 +4,8 @@ namespace Org.BouncyCastle.Math.EC.Multiplier { public abstract class WNafUtilities { + public static readonly string PRECOMP_NAME = "bc_wnaf"; + private static int[] DEFAULT_WINDOW_SIZE_CUTOFFS = new int[]{ 13, 41, 121, 337, 897, 2305 }; public static int[] GenerateCompactNaf(BigInteger k) @@ -188,7 +190,7 @@ namespace Org.BouncyCastle.Math.EC.Multiplier * most one is non-zero. * @param k The integer of which the Window NAF is computed. * @return The Window NAF of the given width, such that the following holds: - * <code>k = ∑<sub>i=0</sub><sup>l-1</sup> k<sub>i</sub>2<sup>i</sup> + * <code>k = &sum;<sub>i=0</sub><sup>l-1</sup> k<sub>i</sub>2<sup>i</sup> * </code>, where the <code>k<sub>i</sub></code> denote the elements of the * returned <code>byte[]</code>. */ @@ -292,7 +294,7 @@ namespace Org.BouncyCastle.Math.EC.Multiplier public static WNafPreCompInfo Precompute(ECPoint p, int width, bool includeNegated) { ECCurve c = p.Curve; - WNafPreCompInfo wnafPreCompInfo = GetWNafPreCompInfo(c.GetPreCompInfo(p)); + WNafPreCompInfo wnafPreCompInfo = GetWNafPreCompInfo(c.GetPreCompInfo(p, PRECOMP_NAME)); ECPoint[] preComp = wnafPreCompInfo.PreComp; if (preComp == null) @@ -363,7 +365,7 @@ namespace Org.BouncyCastle.Math.EC.Multiplier wnafPreCompInfo.PreCompNeg = preCompNeg; } - c.SetPreCompInfo(p, wnafPreCompInfo); + c.SetPreCompInfo(p, PRECOMP_NAME, wnafPreCompInfo); return wnafPreCompInfo; } diff --git a/crypto/src/math/ec/multiplier/WTauNafMultiplier.cs b/crypto/src/math/ec/multiplier/WTauNafMultiplier.cs index b87b87000..dda778eea 100644 --- a/crypto/src/math/ec/multiplier/WTauNafMultiplier.cs +++ b/crypto/src/math/ec/multiplier/WTauNafMultiplier.cs @@ -11,6 +11,9 @@ namespace Org.BouncyCastle.Math.EC.Multiplier public class WTauNafMultiplier : AbstractECMultiplier { + // TODO Create WTauNafUtilities class and move various functionality into it + internal static readonly string PRECOMP_NAME = "bc_wtnaf"; + /** * Multiplies a {@link org.bouncycastle.math.ec.F2mPoint F2mPoint} * by <code>k</code> using the reduced <code>τ</code>-adic NAF (RTNAF) @@ -33,7 +36,7 @@ namespace Org.BouncyCastle.Math.EC.Multiplier ZTauElement rho = Tnaf.PartModReduction(k, m, a, s, mu, (sbyte)10); - return MultiplyWTnaf(p, rho, curve.GetPreCompInfo(p), a, mu); + return MultiplyWTnaf(p, rho, curve.GetPreCompInfo(p, PRECOMP_NAME), a, mu); } /** @@ -80,7 +83,7 @@ namespace Org.BouncyCastle.Math.EC.Multiplier WTauNafPreCompInfo pre = new WTauNafPreCompInfo(); pre.PreComp = pu; - curve.SetPreCompInfo(p, pre); + curve.SetPreCompInfo(p, PRECOMP_NAME, pre); } else { |