Package org.bouncycastle.math.ec
Class WNafUtil
- java.lang.Object
-
- org.bouncycastle.math.ec.WNafUtil
-
public abstract class WNafUtil extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
PRECOMP_NAME
-
Constructor Summary
Constructors Constructor Description WNafUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
configureBasepoint(ECPoint p)
static int[]
generateCompactNaf(java.math.BigInteger k)
static int[]
generateCompactWindowNaf(int width, java.math.BigInteger k)
static byte[]
generateJSF(java.math.BigInteger g, java.math.BigInteger h)
static byte[]
generateNaf(java.math.BigInteger k)
static byte[]
generateWindowNaf(int width, java.math.BigInteger k)
Computes the Window NAF (non-adjacent Form) of an integer.static int
getNafWeight(java.math.BigInteger k)
static int
getWindowSize(int bits)
Determine window width to use for a scalar multiplication of the given size.static int
getWindowSize(int bits, int maxWidth)
Determine window width to use for a scalar multiplication of the given size.static int
getWindowSize(int bits, int[] windowSizeCutoffs)
Determine window width to use for a scalar multiplication of the given size.static int
getWindowSize(int bits, int[] windowSizeCutoffs, int maxWidth)
Determine window width to use for a scalar multiplication of the given size.static WNafPreCompInfo
getWNafPreCompInfo(ECPoint p)
static WNafPreCompInfo
getWNafPreCompInfo(PreCompInfo preCompInfo)
static WNafPreCompInfo
precompute(ECPoint p, int minWidth, boolean includeNegated)
static WNafPreCompInfo
precomputeWithPointMap(ECPoint p, ECPointMap pointMap, WNafPreCompInfo fromWNaf, boolean includeNegated)
-
-
-
Field Detail
-
PRECOMP_NAME
public static final java.lang.String PRECOMP_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
configureBasepoint
public static void configureBasepoint(ECPoint p)
-
generateCompactNaf
public static int[] generateCompactNaf(java.math.BigInteger k)
-
generateCompactWindowNaf
public static int[] generateCompactWindowNaf(int width, java.math.BigInteger k)
-
generateJSF
public static byte[] generateJSF(java.math.BigInteger g, java.math.BigInteger h)
-
generateNaf
public static byte[] generateNaf(java.math.BigInteger k)
-
generateWindowNaf
public static byte[] generateWindowNaf(int width, java.math.BigInteger k)
Computes the Window NAF (non-adjacent Form) of an integer.- Parameters:
width
- The widthw
of the Window NAF. The width is defined as the minimal numberw
, such that for anyw
consecutive digits in the resulting representation, at most one is non-zero.k
- The integer of which the Window NAF is computed.- Returns:
- The Window NAF of the given width, such that the following holds:
k = ∑i=0l-1 ki2i
, where theki
denote the elements of the returnedbyte[]
.
-
getNafWeight
public static int getNafWeight(java.math.BigInteger k)
-
getWNafPreCompInfo
public static WNafPreCompInfo getWNafPreCompInfo(ECPoint p)
-
getWNafPreCompInfo
public static WNafPreCompInfo getWNafPreCompInfo(PreCompInfo preCompInfo)
-
getWindowSize
public static int getWindowSize(int bits)
Determine window width to use for a scalar multiplication of the given size.- Parameters:
bits
- the bit-length of the scalar to multiply by- Returns:
- the window size to use
-
getWindowSize
public static int getWindowSize(int bits, int maxWidth)
Determine window width to use for a scalar multiplication of the given size.- Parameters:
bits
- the bit-length of the scalar to multiply bymaxWidth
- the maximum window width to return- Returns:
- the window size to use
-
getWindowSize
public static int getWindowSize(int bits, int[] windowSizeCutoffs)
Determine window width to use for a scalar multiplication of the given size.- Parameters:
bits
- the bit-length of the scalar to multiply bywindowSizeCutoffs
- a monotonically increasing list of bit sizes at which to increment the window width- Returns:
- the window size to use
-
getWindowSize
public static int getWindowSize(int bits, int[] windowSizeCutoffs, int maxWidth)
Determine window width to use for a scalar multiplication of the given size.- Parameters:
bits
- the bit-length of the scalar to multiply bywindowSizeCutoffs
- a monotonically increasing list of bit sizes at which to increment the window widthmaxWidth
- the maximum window width to return- Returns:
- the window size to use
-
precompute
public static WNafPreCompInfo precompute(ECPoint p, int minWidth, boolean includeNegated)
-
precomputeWithPointMap
public static WNafPreCompInfo precomputeWithPointMap(ECPoint p, ECPointMap pointMap, WNafPreCompInfo fromWNaf, boolean includeNegated)
-
-