| ... | ... | @@ -441,7 +441,7 @@ fn TupleHashLike(comptime security_level: u11, comptime default_delim: u8, compt |
| 441 | 441 | pub fn squeeze(self: *Self, out: []u8) void { |
| 442 | 442 | if (!self.xof_mode) { |
| 443 | 443 | const encoded_out_len = comptime NistLengthEncoding.encode(.right, 0); |
| 444 | | self.update(encoded_out_len.slice()); |
| 444 | self.cshaker.update(encoded_out_len.slice()); |
| 445 | 445 | self.xof_mode = true; |
| 446 | 446 | } |
| 447 | 447 | self.cshaker.squeeze(out); |
| ... | ... | @@ -772,6 +772,15 @@ test "TupleHash-128" { |
| 772 | 772 | try htest.assertEqual("3938d49ade8ec0f0c305ac63497b2d2e8b2f650714f9667cc41816b1c11ffd20", &out); |
| 773 | 773 | } |
| 774 | 774 | |
| 775 | test "TupleHashXOF-128 as a XOF" { |
| 776 | var st = TupleHash128.init(); |
| 777 | st.update(&.{ 0x00, 0x01, 0x02 }); |
| 778 | st.update(&.{ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15 }); |
| 779 | var out: [32]u8 = undefined; |
| 780 | st.squeeze(&out); |
| 781 | try htest.assertEqual("2f103cd7c32320353495c68de1a8129245c6325f6f2a3d608d92179c96e68488", &out); |
| 782 | } |
| 783 | |
| 775 | 784 | test "TupleHash-256" { |
| 776 | 785 | var st = TupleHash256.init(); |
| 777 | 786 | st.update("hello"); |