def aes.gmul.go
import bend-osdev-aes@0.1.0.0/aes.bend as Aesimport Base
import bend-osdev-mode-core@0.1.0.0/mode_core.bend as M
29def aes.gmul.go(n: Nat, +a: U32, +b: U32, p: U32) -> U32:
30 match n:
31 case 0n:
32 p
33 case 1n+q:
34 aes.gmul.go(q, aes.xt(a), U32.shr(b), U32.xor(p, U32.and(a, M.cm.mask(b))))