spongeshaker

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


Keywords
keccak, sponge, sha3, crypto, hash, encryption, prng, random
License
ISC
Install
pip install spongeshaker==1.2

Documentation

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.

This implementation is up-to-date with final version of FIPS-202 (5-Aug-2015).

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:

  • Optimized ASM implementations.
  • Other Keccak permutation sizes.
  • Other sponge algorithms.
  • Other sponge modes.

Example:

from spongheshaker.sha3 import sha3_256, shake128

# fixed-length output
md = sha3_256('Hello ')
md.update('world!')
hash = md.digest()

# variable-length output
md = shake128('Hello ')
md.update('world!')
res1 = md.extract(64)
res2 = md.extract(64)

Links: