def ad.ae.dgo
bend-osdev-aead@0.1.0.0 · aegis128.bend:181
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
181def ad.ae.dgo(ys: List<&2, U32>, +sb: R.AdSbox, +r: AdAegisRun, acc: List<&2, U32>) -> AdAegisOut:
182 match ys:
183 case Nil{}:
184 AdAegisOut{r, ad.ae.rev(acc, Nil{})}
185 case Con{+y, t}:
186 +p = B.byte(U32.xor(y, ad.ae.zhead(r)))
187 ad.ae.dgo(t, sb, ad.ae.step(sb, r, p), Con{p, acc})