Interface CurveProcessor

All Known Implementing Classes:
MontgomeryCurveProcessor, NistCurveProcessor

public interface CurveProcessor
Process curve specific functions
  • Method Summary

    Modifier and Type
    Method
    Description
    Add two points in the curve group.
    Clears the cofactor from the given elliptic curve point.
    Converts an elliptic-curve point into the affine (x, y) coordinate representation defined by the hash-to-curve suite.
  • Method Details

    • add

      ECPoint add(ECPoint p, ECPoint q)
      Add two points in the curve group. Semantics are curve-model specific.
    • clearCofactor

      ECPoint clearCofactor(ECPoint ecPoint)
      Clears the cofactor from the given elliptic curve point.
      Parameters:
      ecPoint - the elliptic curve point to process
      Returns:
      the elliptic curve point with the cofactor cleared
    • mapToAffineXY

      AffineXY mapToAffineXY(ECPoint p)
      Converts an elliptic-curve point into the affine (x, y) coordinate representation defined by the hash-to-curve suite.

      The returned coordinates are intended for serialization, testing, and interoperability with the reference outputs defined in RFC 9380. For most Weierstrass curves, this is simply the affine (x, y) coordinates of the given point. For curves that use a different coordinate model in the specification (e.g. Montgomery curves such as curve25519), this method applies the appropriate coordinate transformation.

      This method does not change the underlying group element represented by the point. It only changes how that point is expressed as field elements. The input point is expected to be a valid point on the curve used by the implementation.

      Parameters:
      p - a valid elliptic-curve point
      Returns:
      the affine (x, y) coordinates corresponding to the suite-specific representation of the given point