def GB
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/argon2/blamka.bend as Blamkaimport Base
import bend-collections-laws-crypto@1.0.0.0/src/crypto/blake/blake2b/types.bend as T
import bend-collections-laws-crypto@1.0.0.0/spec/crypto/blake/blake2b.bend as B
29# GB(a, b, c, d) (RFC 9106 section 3.6).
30def GB(+a: T.Lane, +b: T.Lane, +c: T.Lane, +d: T.Lane) -> T.Quad:
31 +a1 = fBlaMka(a, b)
32 +d1 = B.rotr(B.xor(d, a1), 32n)
33 +c1 = fBlaMka(c, d1)
34 +b1 = B.rotr(B.xor(b, c1), 24n)
35 +a2 = fBlaMka(a1, b1)
36 +d2 = B.rotr(B.xor(d1, a2), 16n)
37 +c2 = fBlaMka(c1, d2)
38 +b2 = B.rotr(B.xor(b1, c2), 63n)
39 T.Q{a2, b2, c2, d2}
Uses (5)
- bend-collections-laws-crypto@1.0.0.0/src/crypto/blake/blake2b/types:Lane
- bend-collections-laws-crypto@1.0.0.0/src/crypto/blake/blake2b/types:Quad
- bend-collections-laws-crypto@1.0.0.0/spec/crypto/blake/blake2b:xor
- bend-collections-laws-crypto@1.0.0.0/spec/crypto/blake/blake2b:rotr
- bend-collections-laws-crypto@1.0.0.0/spec/crypto/argon2/blamka:fBlaMka
Used by (11)
- bend-collections-laws-crypto@1.0.0.0/proofs/crypto/argon2/gb:gb_correct
- bend-collections-laws-crypto@1.0.0.0/proofs/crypto/argon2/blamka:step0_correct
- bend-collections-laws-crypto@1.0.0.0/proofs/crypto/argon2/blamka:step1_correct
- bend-collections-laws-crypto@1.0.0.0/proofs/crypto/argon2/blamka:step2_correct
- bend-collections-laws-crypto@1.0.0.0/proofs/crypto/argon2/blamka:step3_correct
- …