package bls12-381-hash

  1. Overview
  2. Docs

Implementation of the permutation Anemoi and the mode of operation Jive over the scalar field of BLS12-381.

The state of the permutation Anemoi is m, where m is a multiple of 2. It is commonly refered by l such that m = 2l.

module Parameters : sig ... end

Set of parameters for BLS12-381, and parameters for specific instantiations given in the reference paper

type ctxt

A context contains the state and the instance parameters

val allocate_ctxt : Parameters.t -> ctxt

allocate_ctxt parameters. Allocate a context for a specific instance of Anemoi parametrized by parameters.

val get_state : ctxt -> Bls12_381.Fr.t array

Return the current state of the context

val get_state_size : ctxt -> int

Return the state size of the context

val set_state : ctxt -> Bls12_381.Fr.t array -> unit

set_state ctxt state. Set the context state to the given value. The value state must be of the same size than the expecting state

val apply_one_round : ctxt -> int -> unit

apply_one_round ctxt i_round_key applies only one round of the permutation on the state. i_round_key is the index of the first round constant to use for the round. The context is modified

val apply_permutation : ctxt -> unit

Apply a permutation on the current state of the context

jive128_1 x y calls the permutation Anemoi for l = 1 with the state S = (x, y) and apply Jive on the output