Skip to content

Releases: bitanon/convertlib

Version 3.5.1

Choose a tag to compare

@github-actions github-actions released this 08 Jul 16:26
  • Widen fromUtf8 to accept any List<int> input instead of requiring a
    Uint8List. Non-Uint8List inputs are copied to a Uint8List before
    decoding.

Full Changelog: v3.5.0...v3.5.1

Version 3.5.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 14:47
  • [Breaking Changes]
    • Renames internal abstract class HashlibConverter to CipherlibConverter.
    • Removes encodeString, decodeString from IterableCodec.
  • Fix CryptDataBuilder.param to throw an ArgumentError when the value is
    null, instead of a raw TypeError.
  • Speed up Base-64 and Base-32 encoding with specialized single-pass encoders.
    Base-64 encoding now outperforms dart:convert.
  • Speed up Base-64 and Base-32 decoding with specialized single-pass decoders.
    Base-64 decoding now outperforms dart:convert.
  • Speed up toUtf8 using Uint8List buffer instead of plain List<int>.
    UTF-8 encoding now outperforms dart:convert.
  • Speed up fromUtf8 with a dedicated byte-to-string decoder.
    UTF-8 decoding now matches closely with dart:convert.
  • Refactor existing benchmarks and add missing ones. Dropping benchmark_harness
    dependency in favor of custom benchmarking class with better flexibility.

Full Changelog: v3.4.0...v3.5.0

Version 3.4.0

Choose a tag to compare

@dipu-bd dipu-bd released this 07 Jul 20:55
  • Rename the package from hashlib_codecs to convertlib. The public API is
    unchanged: update the dependency to convertlib and imports to
    package:convertlib/convertlib.dart.
  • The hashlib_codecs package continues to be published as a thin re-export of
    convertlib for backward compatibility, and will be discontinued after a
    migration period.

Full Changelog: v3.3.1...v3.4.0

Version 3.3.1

Choose a tag to compare

@github-actions github-actions released this 07 Jul 05:02
  • Fix CryptData.validate rejecting valid Modular Crypt Format hashes such as
    bcrypt, whose base64 alphabet uses .. The hash field now accepts the
    same characters as the salt ([a-zA-Z0-9/+.-]), reverting the overly
    strict B64 restriction introduced in 3.3.0.
  • Document every public API element (100% dartdoc coverage) and correct several
    inaccurate doc comments, including the Base8Codec alphabet (01234567) and
    the octal/binary notes on toOctal.

Full Changelog: v3.3.0...v3.3.1

Version 3.3.0

Choose a tag to compare

@github-actions github-actions released this 06 Jul 21:53
  • [Breaking Changes]
    • ByteCollector.isEqual requires an Iterable argument to match the full
      length; previously a strict prefix of the bytes compared equal.
    • CryptData.validate now follows the PHC string format specification
      strictly: the hash must be a B64 string ([a-zA-Z0-9/+], no . or -),
      and the version must not have leading zeros.
    • Reject invalid values after padding in AlphabetDecoder. Affected codecs are Base32 and Base64.
  • ByteCollector.isEqual now compares content in constant time, making it safe
    for comparing MACs and message digests
  • Performance improvements (measured on Apple Silicon, 10KB inputs):
    • Base-32 decoding: ~6x faster (425 Mbps -> 2.52 Gbps)
    • Base-64 decoding: ~6.4x faster (453 Mbps -> 2.9 Gbps)
    • UTF-8 encoding: ~6.5x faster (403 Mbps -> 2.61 Gbps)
  • Update the PHC string format specification link to its new home at C2SP

Full Changelog: v3.2.0...v3.3.0

Version 3.2.0

Choose a tag to compare

@dipu-bd dipu-bd released this 06 Jul 20:27
  • [Breaking Changes]
    • Fix Base32Codec.wordSafe to use the documented word-safe alphabet
      (23456789CFGHJMPQRVWXcfghjmpqrvwx); it previously used the z-base-32 alphabet.
    • ByteCollector equality is now value-based: == and hashCode compare the
      collected bytes instead of the identity of the underlying list.
  • Fix UTF-8 decoder producing wrong code points for some 2-byte sequences (e.g. U+0100)
  • Fix ByteCollector.isEqual comparing against its own buffer when given a ByteBuffer
  • Fix ByteCollector.isEqual ignoring the offset and length of a partial TypedData view
  • Fix incorrect alphabets of crockford and geohash in the README
  • Fix incorrect parameter descriptions of toBase32, fromBase32, fromBase64, and fromUtf8
  • Document that toUtf8 rejects unpaired surrogates

Full Changelog: v3.1.2...v3.2.0

Version 3.1.2

Choose a tag to compare

@github-actions github-actions released this 19 Apr 06:36
  • Add const constructor to ByteCollector class.

Full Changelog: v3.1.1...v3.1.2

Version 3.1.1

Choose a tag to compare

@github-actions github-actions released this 18 Apr 15:59
  • Add const constructor to ByteCollector class.

Full Changelog: v3.1.0...v3.1.1

Version 3.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Apr 12:28
  • Introduce ByteCollector abstract class with methods for various encoding formats (hex, binary, octal, base32, base64, BigInt).
    and utility methods for equality check.

Full Changelog: v3.0.1...v3.1.0

Version 3.0.1

Choose a tag to compare

@dipu-bd dipu-bd released this 14 Jun 05:00
  • Test release with workflow

Full Changelog: v3.0.0...v3.0.1