aboutsummaryrefslogtreecommitdiff
path: root/lib/std/Io/Threaded.zig
diff options
context:
space:
mode:
authorFrank Denis <124872+jedisct1@users.noreply.github.com>2025-11-01 15:03:43 +0100
committerGitHub <noreply@github.com>2025-11-01 14:03:43 +0000
commit95c76b1b4aa7302966281c6b9b7f6cadea3cf7a6 (patch)
treece61f52851efb5aa96d0beb349db996a51179340 /lib/std/Io/Threaded.zig
parent4e943fc847befb477fbb76e42b199e1f61868a4a (diff)
downloadzig-95c76b1b4aa7302966281c6b9b7f6cadea3cf7a6.tar.gz
zig-95c76b1b4aa7302966281c6b9b7f6cadea3cf7a6.zip
Add std.crypto.hash.sha3.{KT128,KT256} - RFC 9861. (#25593)
KT128 and KT256 are fast, secure cryptographic hash functions based on Keccak (SHA-3). They can be seen as the modern version of SHA-3, and evolution of SHAKE, with better performance. After the SHA-3 competition, the Keccak team proposed these variants in 2016, and the constructions underwent 8 years of public scrutiny before being standardized in October 2025 as RFC 9861. They uses a tree-hashing mode on top of TurboSHAKE, providing both high security and excellent performance, especially on large inputs. They support arbitrary-length output and optional customization strings. Hashing of very large inputs can be done using multiple threads, for high throughput. KT128 provides 128-bit security strength, equivalent to AES-128 and SHAKE128, which is sufficient for virtually all applications. KT256 provides 256-bit security strength, equivalent to SHA-512. For virtually all applications, KT128 is enough (equivalent to SHA-256 or BLAKE3). For small inputs, TurboSHAKE128 and TurboSHAKE256 (which KT128 and KT256 are based on) can be used instead as they have less overhead.
Diffstat (limited to 'lib/std/Io/Threaded.zig')
0 files changed, 0 insertions, 0 deletions