Package org.bouncycastle.math.ec
Class ECAlgorithms
- java.lang.Object
-
- org.bouncycastle.math.ec.ECAlgorithms
-
public class ECAlgorithms extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description ECAlgorithms()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static ECPoint
cleanPoint(ECCurve c, ECPoint p)
static ECPoint
importPoint(ECCurve c, ECPoint p)
static boolean
isF2mCurve(ECCurve c)
static boolean
isF2mField(FiniteField field)
static boolean
isFpCurve(ECCurve c)
static boolean
isFpField(FiniteField field)
static void
montgomeryTrick(ECFieldElement[] zs, int off, int len)
static void
montgomeryTrick(ECFieldElement[] zs, int off, int len, ECFieldElement scale)
static ECPoint
referenceMultiply(ECPoint p, java.math.BigInteger k)
Simple shift-and-add multiplication.static ECPoint
shamirsTrick(ECPoint P, java.math.BigInteger k, ECPoint Q, java.math.BigInteger l)
static ECPoint
sumOfMultiplies(ECPoint[] ps, java.math.BigInteger[] ks)
static ECPoint
sumOfTwoMultiplies(ECPoint P, java.math.BigInteger a, ECPoint Q, java.math.BigInteger b)
static ECPoint
validatePoint(ECPoint p)
-
-
-
Method Detail
-
isF2mCurve
public static boolean isF2mCurve(ECCurve c)
-
isF2mField
public static boolean isF2mField(FiniteField field)
-
isFpCurve
public static boolean isFpCurve(ECCurve c)
-
isFpField
public static boolean isFpField(FiniteField field)
-
sumOfTwoMultiplies
public static ECPoint sumOfTwoMultiplies(ECPoint P, java.math.BigInteger a, ECPoint Q, java.math.BigInteger b)
-
shamirsTrick
public static ECPoint shamirsTrick(ECPoint P, java.math.BigInteger k, ECPoint Q, java.math.BigInteger l)
-
montgomeryTrick
public static void montgomeryTrick(ECFieldElement[] zs, int off, int len)
-
montgomeryTrick
public static void montgomeryTrick(ECFieldElement[] zs, int off, int len, ECFieldElement scale)
-
referenceMultiply
public static ECPoint referenceMultiply(ECPoint p, java.math.BigInteger k)
Simple shift-and-add multiplication. Serves as reference implementation to verify (possibly faster) implementations, and for very small scalars. CAUTION: This implementation is NOT constant-time in any way. It is only intended to be used for diagnostics.- Parameters:
p
- The point to multiply.k
- The multiplier.- Returns:
- The result of the point multiplication
kP
.
-
-