org.bouncycastle.crypto.hash2curve.impl

## Class SimplifiedShallueVanDeWoestijneMapToCurve

- java.lang.Object
- - org.bouncycastle.crypto.hash2curve.impl.SimplifiedShallueVanDeWoestijneMapToCurve

- All Implemented Interfaces:
    MapToCurve

      public class SimplifiedShallueVanDeWoestijneMapToCurve
      extends java.lang.Object
      implements MapToCurve

  Implements the Simplified Shallue van de Woestijne Map to curve according to section 6.6.2 of RFC 9380 This is the straight-line implementation optimized for Weierstrass curves as defined in section F.2.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `SimplifiedShallueVanDeWoestijneMapToCurve(ECCurve curve, java.math.BigInteger z)` Constructs an instance of the SimplifiedShallueVanDeWoestijneMapToCurve mapping mechanism for mapping values onto a Weierstrass elliptic curve.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ECPoint` | `process(java.math.BigInteger u)` Processes the given input value to map it to an elliptic curve point using the Shallue-van de Woestijne algorithm, optimized for Weierstrass curves.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SimplifiedShallueVanDeWoestijneMapToCurve

          public SimplifiedShallueVanDeWoestijneMapToCurve(ECCurve curve,
                                                           java.math.BigInteger z)

      Constructs an instance of the SimplifiedShallueVanDeWoestijneMapToCurve mapping mechanism for mapping values onto a Weierstrass elliptic curve. This implementation is based on section 6.6.2 of RFC 9380 and optimizations defined in section F.2.
      Parameters:
        `curve` - the elliptic curve to which the mapping will be applied; must conform to the Weierstrass form
        `z` - a non-zero constant value used as a parameter in the mapping algorithm

  - ### Method Detail

    - #### process

          public ECPoint process(java.math.BigInteger u)

      Processes the given input value to map it to an elliptic curve point using the Shallue-van de Woestijne algorithm, optimized for Weierstrass curves. This implementation adheres to the specifications outlined in RFC 9380, section 6.6.2, and section F.2 for efficient computation.

      The method computes the x and y coordinates for the point on the elliptic curve, using modular arithmetic and auxiliary functions for square root computation and conditional assignments.

      Specified by:
        `process` in interface `MapToCurve`
      Parameters:
        `u` - the input value to be mapped to a point on the elliptic curve
      Returns:
        the computed point on the elliptic curve represented as an ECPoint