def transform

bend-collections-laws-crypto@1.0.0.0 · spec/crypto/aes/aes.bend:212

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

212# The transformation of temp = w[i-1] in Figure 11, by k = i mod Nk,
213# big = (Nk > 6) and q = i / Nk.
214def transform(k: Nat, big: Bool, +q: Nat, temp: T.Quad) -> T.Quad:
215  match k:
216    case 0n:
217      xor_word(sub_word(rot_word(temp)), rcon(q))
218    case 1n:
219      temp
220    case 2n:
221      temp
222    case 3n:
223      temp
224    case 4n:
225      match big:
226        case True{}:
227          sub_word(temp)
228        case False{}:
229          temp
230    case 5n+p:
231      temp

Uses (7)

Used by (3)