spongeshaker - High-level API to SHA-3 and other sponge modes with Keccak

This module implements Keccak-f1600 sponge permutation and high-level APIs for various modes of it, including SHA-3 hashes.

SHA-3 standard is not finalized, so actual output values are not stable yet. This implementation is up-to-date with Apr-2014 draft of FIPS-202. (Although it’s unlikely that final SHA-3 changes hash parameters or padding again, instead they might add more modes.)

Features:

  • Hashing (SHA3), PRNG, Stream cipher, AEAD cipher (SpongeWrap).
  • Optimized-C implementation from Keccak reference code, with separate paths for 64- and 32-bit CPUs.
  • Works with both Python 2.x and 3.x.

Todo:

  • Sync with final SHA-3.
  • Optimized ASM implementations.
  • Other Keccak permutation sizes.
  • Other sponge algorithms.
  • Other sponge modes.

Links:

Documentation:

Indices and tables