Crate ark_sponge[][src]

Expand description

A crate for the cryptographic sponge trait.

Modules

constraints

Infrastructure for the constraints counterparts.

poseidon

The sponge for Poseidon

Macros

absorb

Individually absorbs each element in a comma-separated list of absorbables into a sponge. Format is absorb!(s, a_0, a_1, ..., a_n), where s is a mutable reference to a sponge and each a_i implements Absorb.

absorb_gadget

Individually absorbs each element in a comma-separated list of [Absorbable]s into a sponge. Format is absorb!(s, a_0, a_1, ..., a_n), where s is a mutable reference to a sponge and each a_i implements AbsorbableVar.

collect_sponge_bytes

Quickly convert a list of different Absorbs into sponge bytes.

collect_sponge_field_elements

Quickly convert a list of different Absorbs into sponge field elements.

collect_sponge_field_elements_gadget

Quickly convert a list of different [Absorbable]s into sponge field elements.

Enums

FieldElementSize

An enum for specifying the output field element size.

Traits

Absorb

An interface for objects that can be absorbed by a CryptographicSponge.

AbsorbWithLength

An extension to Absorb that is specific to items with variable length, such as a list.

CryptographicSponge

The interface for a cryptographic sponge. A sponge can absorb or take in inputs and later squeeze or output bytes or field elements. The outputs are dependent on previous absorb and squeeze calls.

FieldBasedCryptographicSponge

The interface for field-based cryptographic sponge. CF is the native field used by the cryptographic sponge implementation.

SpongeExt

An extension for the interface of a cryptographic sponge. In addition to operations defined in CryptographicSponge, SpongeExt can convert itself to a state, and instantiate itself from state.