Function update [src]

Prototype

pub fn update(st: *Poly1305, m: []const u8) void

Parameters

st: *Poly1305m: []const u8

Source

pub fn update(st: *Poly1305, m: []const u8) void { var mb = m; // handle leftover if (st.leftover > 0) { const want = @min(block_length - st.leftover, mb.len); const mc = mb[0..want]; for (mc, 0..) |x, i| { st.buf[st.leftover + i] = x; } mb = mb[want..]; st.leftover += want; if (st.leftover < block_length) { return; } st.blocks(&st.buf, false); st.leftover = 0; } // process full blocks if (mb.len >= block_length) { const want = mb.len & ~(block_length - 1); st.blocks(mb[0..want], false); mb = mb[want..]; } // store leftover if (mb.len > 0) { for (mb, 0..) |x, i| { st.buf[st.leftover + i] = x; } st.leftover += mb.len; } }