Skip to content

Releases: bitanon/hashlib

Version 1.11.2

14 May 13:06
Compare
Choose a tag to compare
  • Export codecs
  • Update documentation
  • Truncate seed to 32-bit integer for xxh32

Full Changelog: 1.11.1...1.11.2

Version 1.11.1

14 May 08:21
Compare
Choose a tag to compare
  • Export a few additional clases
    • BlockHashBase
    • BlockHashSink
    • HashBase
    • HashDigestSink
    • HashDigest
    • Argon2HashDigest
    • BlockHashRegistry
    • HashRegistry
    • Uint8Codec

Full Changelog: 1.11.0...1.11.1

Version 1.11.0

12 May 22:33
Compare
Choose a tag to compare

What's Changed

  • Optimize scrypt implementation (10x improvement in runtime)
  • Optimize Poly1305 implementation (30x improvement in hashrate) #5 by @dipu-bd in #12
  • Implement RIPEMD algorithm series by @dipu-bd in #17
    • ripemd128, ripemd128sum
    • ripemd160, ripemd160sum
    • ripemd256, ripemd256sum
    • ripemd320, ripemd320sum
  • Codecs are now able to handle padding characters

Full Changelog: 1.10.0...1.11.0

Version 1.10.0

30 Apr 20:33
Compare
Choose a tag to compare
  • Adds support for Poly1305 MAC generation: #5
    • New class: Poly1305
    • New methods: poly1305, poly1305auth
  • Adds support for OTP generation:
    • HOTP - Hash-based OTP generation #8
    • TOTP - Time-based OTP generation #9
  • Name all hash algorithms and a registry to loopup algorithms by name.
    • BlockHashRegistry - for block hash algorithms
    • HashRegistry - for all hash algorithms
  • Adds random byte generator:
    • randomBytes method returns a List<int>
    • fillRandom method fills a ByteBuffer with random values
  • New default instances for Shake128:
    • shake128_128
    • shake128_160
    • shake128_224
    • shake128_256
    • shake128_384
    • shake128_512
  • New default instances for Shake256:
    • shake256_128
    • shake256_160
    • shake256_224
    • shake256_256
    • shake256_384
    • shake256_512
  • Adds two new methods to MACHashBase:
    • sign: generates a tag from a message
    • verify: verifies if a message and tag matches
  • Updates HashDigest
    • Adds isEqual to match it with other HashDigest, String, TypedData, ByteBuffer, List<int>, Iterable<int>
    • Use custom equality check
  • Extracts few methods from utils and create codecs:
    • Available:
      • ASCIICodec
      • B16Codec
      • B32Codec
      • B64Codec
      • B64URLCodec
    • New or transferred methods:
      • toAscii
      • fromAscii
      • toHex
      • fromHex
      • toBase32
      • fromBase32
      • toBase64
      • fromBase64
      • toBase64Url
      • fromBase64Url
    • New constants:
      • ascii
      • base16
      • base16lower
      • base32
      • base32lower
      • base64
      • base64url
  • New example: otpauth_parser.dart. It can decode migration string from Google Authenticator and parse any valid otpauth string.
  • Updates benchmarks and tests

Full Changelog: 1.9.0...1.10.0

Version 1.9.0

08 Apr 11:02
Compare
Choose a tag to compare
  • Adds SCRYPT:
    • New class: Scrypt
    • New method: scrypt
  • Changes in PBKDF2 and extensions:
    • parameter type of keyLength
    • use default iterations = 1000
    • adds validation in the constructor
    • adds global pbkdf2 function

Full Changelog: 1.8.1...1.9.0

Version 1.8.1

20 Mar 04:50
Compare
Choose a tag to compare
  • Improves dart run using @pragma('vm:prefer-inline')
  • Adds new methods:
    • crc64sum
    • xxh64sum
    • xxh3sum
    • xxh128sum
  • Removes methods:
    • xxh128code

Full Changelog: 1.8.0...1.8.1

Version 1.8.0

28 Feb 03:01
Compare
Choose a tag to compare
  • Adds xxHash64
    • New class: XXHash64
    • New constants: xxh64, xxh64code
    • String extension: xxh64code
  • Adds xxHash32
    • New class: XXHash32
    • New constants: xxh32, xxh32code
    • String extension: xxh32code
  • Adds XXH3-64
    • New class: XXH3
    • New constants: xxh3, xxh3code
    • String extension: xxh3code
  • Adds XXH3-128
    • New class: XXH128
    • New constants: xxh128, xxh128code
    • String extension: xxh128code
  • Internal changes:
    • Removes the parameters from $finalize method in BlockHash
    • Uses >>> instead of >>
  • Uses Hash Rate instead of Runtime for benchmarks

Full Changelog: 1.7.0...1.8.0

Version 1.7.0

28 Jan 02:02
Compare
Choose a tag to compare
  • Renames Argon2Security.small -> Argon2Security.little
  • Adds Argon2Security.optimize method to find optimal parameters for a desired runtime.
  • Define KeyDerivator and extend it for Argon2
  • Modify internal structure of Argon2 to make it faster.
  • Implement reset functionality for all hash sinks.
  • Define and use BlockHashBase for some algorithms.
  • Renames BlockHash -> BlockHashSink
  • Replaces the RFC links to ietf domain.
  • Adds PBKDF2 key derivator.
  • Adds extension to HMAC to create PBKDF2 instance.
  • Define MACHashBase and MACSinkBase for Message Authentication Code generators.
  • Reset features for crc16, crc32, crc64, alder32, and hmac internal sinks.
  • Enhance blake2b and blake2s for MAC generation
  • Breaking change:
    • Accept number of bytes instead of bits for Blake2b and Blake2s
    • Removes all Blake2b.of## and Blake2s.of## methods

Full Changelog: 1.6.1...1.7.0

Version 1.6.1

23 Jan 23:26
Compare
Choose a tag to compare
  • Fixes enum name getter usage issue for Dart < 2.15.0

Full Changelog: 1.6.0...1.6.1

Version 1.6.0

23 Jan 23:24
Compare
Choose a tag to compare
  • Optimize Argon2 (Now it is 6 times faster than 1.5.0)
  • Support for Argon2 in Node platform (TODO: requires optimization)
  • Renames Argon2Context -> Argon2 with the following change:
    • convert() will generate password hash and return an Argon2HashDigest
    • encode() will generate password hash and return argon2 encoded string.
    • toInstance() is renamed to instance to get a singleton instance.
    • The method encode() is renamed to convert() inside the instance.
  • Adds Argon2Security exposing some default parameter choices which can be used with these quick access functions:
    • argon2d
    • argon2i
    • argon2id
  • Argon2 will now return the Argon2HashDigest, containing a few changes over HashDigest:
    • encoded() will return the argon2 hash as encoded format.
    • toString() will return the encoded hash instead of the password hash.
  • Implement custom toBase64 and fromBase64 in utils for faster conversion without padding.
  • Changes to HashDigest:
    • merge base64 and base64url methods into one.
    • uses custom base64 conversion that does not include = padding.
    • removes lantin1

Full Changelog: 1.5.0...1.6.0