org.bouncycastle.crypto.hash2curve.impl

## Class BLS12_381G1MapToCurve

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

- All Implemented Interfaces:
    MapToCurve

      public class BLS12_381G1MapToCurve
      extends java.lang.Object
      implements MapToCurve

  Map-to-curve implementation for the BLS12381G1_XMD:SHA-256_SSWU_RO_ suite (RFC 9380 sec. 8.8.1).

  BLS12-381 G1 has `A == 0`, so the simplified SWU map cannot be applied to E directly. Instead the suite specifies an 11-isogenous curve E' (RFC 9380 App. E.2) with non-zero A' / B', SSWU is run on E', and the resulting point is mapped back to E by the `iso_11` rational map.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `BLS12_381G1MapToCurve(ECCurve curveE)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ECPoint` | `process(java.math.BigInteger u)` Processes the given BigInteger element and maps it to a point on the elliptic curve, as defined by the hash 2 curve specification

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

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

- - ### Constructor Detail

    - #### BLS12_381G1MapToCurve

          public BLS12_381G1MapToCurve(ECCurve curveE)

  - ### Method Detail

    - #### process

          public ECPoint process(java.math.BigInteger u)

      Description copied from interface: `MapToCurve`
      Processes the given BigInteger element and maps it to a point on the elliptic curve, as defined by the hash 2 curve specification
      Specified by:
        `process` in interface `MapToCurve`
      Parameters:
        `u` - the input BigInteger element to be mapped to a point on the curve
      Returns:
        the elliptic curve point corresponding to the input element