SHA-3

Download

Windows

x64 SHA3-x64.exe

32-bit SHA3-x86.exe

Description

This is a C++ implementation of the SHA-3 family of hash functions, based on the documentation found at http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf

Usage: sha3sum [command]* file*

where command is an optional parameter that can set either the algorithm, as there is a slight difference between the bare keccak function and the SHA-3 variant.

Options

Algorithm

Size

Digest size (SHAKE)

Any number of files can be specified. Files will be processed with the most recently specified options - for example: sha3sum test.txt -a=k -w=384 test.txt -a=s -w=256 text.txt

will hash "test.txt" three times - First with 512-bit SHA-3, then with 384-bit keccak, then finally with 256-bit SHA-3.

The intent with this implementation is to make a performant implementation in pure C++, following modern idioms: Favouring inline functions over macros, leaning on the compiler's optimiser instead of resorting to inline assembly, for example.

Source code is available at https://github.com/DuSTman31/SHA-3

ToDo: - Add command option to set the chunk size for reading. - Attempt formal proof of important aspects of this implementation.