Skip to main content

Module memory

Module memory 

Source
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ยง

MemoryInner ๐Ÿ”’
Low-level pointer and metadata for an Argon2 memory region.
SegmentView ๐Ÿ”’
A view into Argon2 memory for a particular segment (i.e. slice ร— lane).

Traitsยง

Memory ๐Ÿ”’
Extension trait for Argon2 memory blocks.