/tiny_sha3-wasm

Very small, readable implementation of the SHA3 hash function. WebAssembly rebuild

Primary LanguageCMIT LicenseMIT

tiny_sha3

Very small, readable implementation of the FIPS 202 and SHA3 hash function. Public domain. Rebuilt for Webassembly (WASM) support.

As of recent versions this project also has support for Keccak 3 with results compliance with some online sources.

live demo: https://crashdemons.github.io/tiny_sha3-wasm

Building WASM

run ./make-wasm.sh in your linux shell

Updated 27-Dec-15:

Added SHAKE128 and SHAKE256 code and test vectors. The code can actually do a XOF of arbitrary size (like "SHAKE512").

Updated 03-Sep-15:

Made the implementation portable. The API is now pretty much the same that OpenSSL uses.

Updated 07-Aug-15:

Now that SHA3 spec is out, I've updated the package to match with the new padding rules. There is literally one line difference between Keccak 3.0 and SHA-3 implementations:

    temp[inlen++] = 0x06;           // XXX Padding Changed from Keccak 3.0

The 0x06 constant there used to be 0x01. But this of course totally breaks compatibility and test vectors had to be revised.

SHA-3 Spec: http://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf

Cheers,

  • markku

Original README.TXT from 19-Nov-11:

Hi.

The SHA-3 competition is nearing it's end and I would personally like to support Keccak as the winner. I have a PhD in hash function cryptanalysis so don't take my word for it, go ahead and look into the code !

Since I couldn't find a compact and/or readable implementation of Keccak anywhere, here's one I cooked up as a service to the curious.

This implementation is intended for study of the algorithm, not for production use.

The code works correctly on 64-bit little-endian platforms with gcc. Like your Linux box. The main.c module contains self-tests for all officially supported hash sizes.

If you're looking for production code, the official multi-megabyte package covers everyting you could possibly need and too much much more: http://keccak.noekeon.org/

Cheers,

  • Markku 19-Nov-11

Dr. Markku-Juhani O. Saarinen mjos@iki.fi