Argon2 (RFC 9106), version 0x13 #
Argon2d, Argon2i and Argon2id, the memory-hard password hash. RFC 9106 recommends Argon2id.
Memory is one ByteArray of 1 KiB blocks, block j of lane l at l * laneLength + j. Words
are 64-bit little-endian and are loaded into locals for the permutation, since an Array UInt64
would box every word. Lanes are filled one after another: within a slice no lane reads another
lane's current segment, so the order does not change the result.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[instance_reducible]
Equations
@[instance_reducible]
Equations
- Cryptlib.Primitives.KDF.Argon2.instBEqVariant.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
@[instance_reducible]
The type field y of RFC 9106 §3.2.
Equations
Instances For
Equations
Instances For
RFC 9106 §3.3: the variable-length hash H'^T.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Cryptlib.Primitives.KDF.Argon2.hPrime.go t r 0 a✝¹ a✝ = a✝ ++ a✝¹.extract 0 32 ++ Cryptlib.Primitives.Hash.Blake2b.hashN (t - 32 * r) a✝¹
- Cryptlib.Primitives.KDF.Argon2.hPrime.go t r n.succ a✝¹ a✝ = Cryptlib.Primitives.KDF.Argon2.hPrime.go t r n (Cryptlib.Primitives.Hash.Blake2b.hashN 64 a✝¹) (a✝ ++ a✝¹.extract 0 32)