Streebog.hs.stb.finish.of: def of bend-osdev-hashes@0.1.0.0 Import: import bend-osdev-hashes@0.1.0.0/streebog.bend as Streebog Lines 789-796 of bend-osdev-hashes@0.1.0.0/streebog.bend: https://jend.leeeet.dev/read.txt?path=bend-osdev-hashes@0.1.0.0/streebog.bend&start_line=789&end_line=796 import Base import bend-osdev-hashes@0.1.0.0/hashes.bend as Hs # Stage 3 on the chaining value: the last block m (its cnt bytes, then 1, # then zeros), N += 8 cnt, Sigma += m, then g_0(h, N) and g_0(h, Sigma) def hs.stb.finish.of(cv: HsStbCv, +m: Hs.HsW16, cnt: U32) -> Hs.HsW16: match cv: case HsStbCv{h, +n, s, +t}: +h1 = hs.stb.g(t, n, h, m) +h2 = hs.stb.g(t, hs.stb.zero(), h1, hs.stb.add(n, hs.stb.small(U32.shln(cnt, 3n)))) hs.stb.g(t, hs.stb.zero(), h2, hs.stb.add(s, m)) Uses (8): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.shln https://jend.leeeet.dev/definition.txt?path=bend-osdev-hashes@0.1.0.0/hashes.bend&name=HsW16 https://jend.leeeet.dev/definition.txt?path=bend-osdev-hashes@0.1.0.0/streebog.bend&name=HsStbCv https://jend.leeeet.dev/definition.txt?path=bend-osdev-hashes@0.1.0.0/streebog.bend&name=hs.stb.add https://jend.leeeet.dev/definition.txt?path=bend-osdev-hashes@0.1.0.0/streebog.bend&name=hs.stb.g https://jend.leeeet.dev/definition.txt?path=bend-osdev-hashes@0.1.0.0/streebog.bend&name=hs.stb.small https://jend.leeeet.dev/definition.txt?path=bend-osdev-hashes@0.1.0.0/streebog.bend&name=hs.stb.zero