Skip to content
master
Switch branches/tags
Go to file
Code

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
Dec 14, 2015
fix
Dec 14, 2015
Mar 23, 2016
Mar 23, 2016

tiny_sha3

Very small, readable implementation of the FIPS 202 and SHA3 hash function. Public domain.

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

About

Very small, readable implementation of the SHA3 hash function.

Resources

License

Releases

No releases published

Packages

No packages published