# Package org.bouncycastle.crypto.hash2curve

Hash to curve implementation

See: Description

- Interface Summary
  Interface | Description
  --- | ---
  CurveProcessor | Process curve specific functions
  MapToCurve | Interface for Map to Curve
  MessageExpansion | The MessageExpansion interface defines a contract for expanding a message.
  SqrtRatioCalculator | Interface for a calculator of SqrtRatio

- Class Summary
  Class | Description
  --- | ---
  H2cUtils | Utility functions for hash 2 curve This implementation follows the straight-line, branch-free algorithmic structure required by RFC 9380, ensuring that all code paths perform the same sequence of mathematical operations regardless of input values.
  HashToEllipticCurve | Main class for implementing hash to elliptic curve according to RFC 9380 `Steps: 1. u = hash_to_field(msg, 2) 2.`
  HashToField | Generic implementation of hash to field This implementation is restricted to hashing to a field where the field being hashed to is derived from an Elliptic curve The HashToField function can be used to hash to any field such as a scalar field (group order) This implementation is not suitable for such cases as described in more detail in the GenericOPRFHashToScalar function.
  OPRFHashToScalar | Generic implementation of HashToScalar as used in OPRF (RFC 9497).

- Enum Summary
  Enum | Description
  --- | ---
  HashToCurveProfile | Supported profiles for instantiating an instance of HashToEllipticCurve.

## Package org.bouncycastle.crypto.hash2curve Description

Hash to curve implementation