def hs.stb.finish.of

bend-osdev-hashes@0.1.0.0 · streebog.bend:789

import bend-osdev-hashes@0.1.0.0/streebog.bend as Streebog
import Base
import bend-osdev-hashes@0.1.0.0/hashes.bend as Hs

789# Stage 3 on the chaining value: the last block m (its cnt bytes, then 1,
790# then zeros), N += 8 cnt, Sigma += m, then g_0(h, N) and g_0(h, Sigma)
791def hs.stb.finish.of(cv: HsStbCv, +m: Hs.HsW16, cnt: U32) -> Hs.HsW16:
792  match cv:
793    case HsStbCv{h, +n, s, +t}:
794      +h1 = hs.stb.g(t, n, h, m)
795      +h2 = hs.stb.g(t, hs.stb.zero(), h1, hs.stb.add(n, hs.stb.small(U32.shln(cnt, 3n))))
796      hs.stb.g(t, hs.stb.zero(), h2, hs.stb.add(s, m))

Uses (8)

Used by (1)