Gf128.Gf128.mul_x_gcm: def of bend-osdev-gf@0.1.2.0 Import: import bend-osdev-gf@0.1.2.0/gf128.bend as Gf128 Lines 92-96 of bend-osdev-gf@0.1.2.0/gf128.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-gf@0.1.2.0/gf128.bend&start_line=92&end_line=96 import Base # GCM's order: shift right one bit; bit 127 falling off adds 0xE1 to byte 0 def Gf128.mul_x_gcm(v: Gf128) -> Gf128: match v: case Gf128{+w0, +w1, +w2, +w3}: Gf128{U32.xor(U32.shr(w0), U32.and(3774873600, gf128.mask(w3))), U32.or(U32.shr(w1), U32.shln(w0, 31n)), U32.or(U32.shr(w2), U32.shln(w1, 31n)), U32.or(U32.shr(w3), U32.shln(w2, 31n))} Uses (7): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.and https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.or https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.shln https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.shr https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.xor https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.2.0/gf128.bend&name=Gf128 https://jend.leeeet.dev/definition.txt?path=bend-osdev-gf@0.1.2.0/gf128.bend&name=gf128.mask