def aes.gmul.go
import bend-osdev-cipher-modes@0.1.0.0/aes.bend as Aesimport Base
import bend-osdev-cipher-modes@0.1.0.0/cipher_modes.bend as M
21def aes.gmul.go(n: Nat, +a: U32, +b: U32, p: U32) -> U32:
22 match n:
23 case 0n:
24 p
25 case 1n+q:
26 aes.gmul.go(q, aes.xt(a), U32.shr(b), U32.xor(p, U32.and(a, M.cm.mask(b))))