Skip to content
This repository has been archived by the owner on Aug 20, 2022. It is now read-only.

Releases: Bobulous/Cryptography

New methods, improved performance

10 Jun 23:26
Compare
Choose a tag to compare

Conversion methods between byte arrays, hex strings, and bit strings have been provided.
Optimisations have improved performance to make throughput 2.5 times higher than in v1.0.
The source code directory path has been corrected to match the full package name.

Initial public release

27 May 18:52
Compare
Choose a tag to compare

uk.org.bobulous.java.crypto

v1.0

Wednesday 24th May 2017

This release contains only the uk.org.bobulous.java.crypto.keccak package which provides an implementation of the Keccak sponge function family of hash functions, and the standardised SHA-3 instances (both SHA3 hash functions and SHAKE extendable-output functions).

This release supports the following features:

  • All of the SHA-3 functions defined in NIST FIPS PUB 202.
  • Any Keccak sponge configuration with a width from 200 to 1600 (inclusive), and a bitrate which is exactly divisible by eight.
  • Arbitrary output hash lengths.
  • Arbitrary input message lengths when using byte array message input.
  • Arbitrary whole-byte input message lengths when using InputStream message input.
  • Input can be provided as a byte array or as an InputStream. Output is provided as a byte array, which will be padded with zero bits if the output length (in bits) is not exactly divisible by eight.
  • The "lane complementing transform" optimisation (suggested by the Keccak team in their implementation guide). This is enabled with a hard switch in the KeccakState class, but can be disabled if it harms rather than benefits performance. (On my desktop machine I see a 22% reduction in runtime with this optimisation enabled, but other platforms may differ. This package has been primarily written on the assumption that 64-bit machines will be using it.)