def ad.ae.ego

bend-osdev-aead@0.1.0.0 · aegis128.bend:174

import bend-osdev-aead@0.1.0.0/aegis128.bend as Aegis128
import Base
import bend-osdev-bytes@0.1.0.0/bytes.bend as B
import bend-osdev-aead@0.1.0.0/aesround.bend as R

174def ad.ae.ego(xs: List<&2, U32>, +sb: R.AdSbox, +r: AdAegisRun, acc: List<&2, U32>) -> AdAegisOut:
175  match xs:
176    case Nil{}:
177      AdAegisOut{r, ad.ae.rev(acc, Nil{})}
178    case Con{+x, t}:
179      ad.ae.ego(t, sb, ad.ae.step(sb, r, B.byte(x)), Con{B.byte(U32.xor(x, ad.ae.zhead(r))), acc})

Uses (10)

Used by (2)