mirror of
https://github.com/ziglang/zig.git
synced 2026-02-13 04:48:20 +00:00
std/crypto: don't constrain Gimli hash output to a fixed length
As documented in the comment right above the finalization function, Gimli can be used as a XOF, i.e. the output doesn't have a fixed length. So, allow it to be used that way, just like BLAKE3.
This commit is contained in:
parent
2e354c387e
commit
e7b60b219b
@ -250,7 +250,7 @@ pub const Hash = struct {
|
||||
/// By default, Gimli-Hash provides a fixed-length output of 32 bytes
|
||||
/// (the concatenation of two 16-byte blocks). However, Gimli-Hash can
|
||||
/// be used as an “extendable one-way function” (XOF).
|
||||
pub fn final(self: *Self, out: *[digest_length]u8) void {
|
||||
pub fn final(self: *Self, out: []u8) void {
|
||||
const buf = self.state.toSlice();
|
||||
|
||||
// XOR 1 into the next byte of the state
|
||||
@ -262,7 +262,7 @@ pub const Hash = struct {
|
||||
}
|
||||
};
|
||||
|
||||
pub fn hash(out: *[Hash.digest_length]u8, in: []const u8, options: Hash.Options) void {
|
||||
pub fn hash(out: []u8, in: []const u8, options: Hash.Options) void {
|
||||
var st = Hash.init(options);
|
||||
st.update(in);
|
||||
st.final(out);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user