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 ECPointcleanPoint(ECCurve c, ECPoint p)static ECPointimportPoint(ECCurve c, ECPoint p)static booleanisF2mCurve(ECCurve c)static booleanisF2mField(FiniteField field)static booleanisFpCurve(ECCurve c)static booleanisFpField(FiniteField field)static voidmontgomeryTrick(ECFieldElement[] zs, int off, int len)static voidmontgomeryTrick(ECFieldElement[] zs, int off, int len, ECFieldElement scale)static ECPointreferenceMultiply(ECPoint p, java.math.BigInteger k)Simple shift-and-add multiplication.static ECPointshamirsTrick(ECPoint P, java.math.BigInteger k, ECPoint Q, java.math.BigInteger l)static ECPointsumOfMultiplies(ECPoint[] ps, java.math.BigInteger[] ks)static ECPointsumOfTwoMultiplies(ECPoint P, java.math.BigInteger a, ECPoint Q, java.math.BigInteger b)static ECPointvalidatePoint(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. 
 
 - 
 
 -