Skip to main content

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

Project description

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:

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page