Class ECAlgorithms

java.lang.Object
org.bouncycastle.math.ec.ECAlgorithms

public class ECAlgorithms extends Object
  • Constructor Details

    • ECAlgorithms

      public ECAlgorithms()
  • Method Details

    • 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)
    • sumOfMultiplies

      public static ECPoint sumOfMultiplies(ECPoint[] ps, BigInteger[] ks)
    • sumOfTwoMultiplies

      public static ECPoint sumOfTwoMultiplies(ECPoint P, BigInteger a, ECPoint Q, BigInteger b)
    • shamirsTrick

      public static ECPoint shamirsTrick(ECPoint P, BigInteger k, ECPoint Q, BigInteger l)
    • importPoint

      public static ECPoint importPoint(ECCurve c, ECPoint p)
    • 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, 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.
    • validatePoint

      public static ECPoint validatePoint(ECPoint p)
    • cleanPoint

      public static ECPoint cleanPoint(ECCurve c, ECPoint p)