def mix_column

bend-collections@1.0.0.0 · src/crypto/aes/aes.bend:26

import bend-collections@1.0.0.0/src/crypto/aes/aes.bend as Aes
import Base
import bend-collections@1.0.0.0/src/crypto/aes/types.bend as T
import bend-collections@1.0.0.0/src/crypto/aes/sbox.bend as B

26def mix_column(w: T.Quad) -> T.Quad:
27  match w:
28    case T.W{+a, +b, +c, +d}:
29      T.W{U32.xor(U32.xor(U32.xor(B.xtime(a), B.mul3(b)), c), d),
30        U32.xor(U32.xor(U32.xor(a, B.xtime(b)), B.mul3(c)), d),
31        U32.xor(U32.xor(U32.xor(a, b), B.xtime(c)), B.mul3(d)),
32        U32.xor(U32.xor(U32.xor(B.mul3(a), b), c), B.xtime(d))}

Uses (4)

Used by (5)