DoxigAlpha

addBytes

XOR bytes into the beginning of the state.

Function parameters

Parameters

#
self:*Self
bytes:[]const u8

An Ascon state.

Functions

#
State
An Ascon state.

Source

Implementation

#
pub fn addBytes(self: *Self, bytes: []const u8) void {
    var i: usize = 0;
    while (i + 8 <= bytes.len) : (i += 8) {
        self.st[i / 8] ^= mem.readInt(u64, bytes[i..][0..8], endian);
    }
    if (i < bytes.len) {
        var padded = [_]u8{0} ** 8;
        @memcpy(padded[0 .. bytes.len - i], bytes[i..]);
        self.st[i / 8] ^= mem.readInt(u64, padded[0..], endian);
    }
}