Expand description
Views into Argon2 memory that can be processed in parallel.
This module implements, with a combination of compile-time borrowing and runtime checking, the cooperative contract described in section 3.4 (Indexing) of RFC 9106:
To enable parallel block computation, we further partition the memory matrix into SL = 4 vertical slices. The intersection of a slice and a lane is called a segment, which has a length of q/SL. Segments of the same slice can be computed in parallel and do not reference blocks from each other. All other blocks can be referenced.
Structsยง
- Memory
Inner ๐ - Low-level pointer and metadata for an Argon2 memory region.
- Segment
View ๐ - A view into Argon2 memory for a particular segment (i.e. slice ร lane).
Traitsยง
- Memory ๐
- Extension trait for Argon2 memory blocks.