Skip to content
= Release v0.4.0 =

*All release tags are signed, and release packages are also signed*.
*Always check signatures prior using this software*.

== Added ==

* Create new parameter to set compression level in `dumps` for `Blake2SerializerSigner`.
* When compressing check if there's a benefit to it and if not skip it in `dumps` for `Blake2SerializerSigner`.

== Changed ==

* Blake2Serializer was renamed to Blake2SerializerSigner because of reasons.
* The signature is base64 encoded.
* The timestamp is base64 encoded.
* The salt is generated and used as base64 data to avoid needing to decode it when checking the signature.
* Use a symbol to separate composite signature from timestamp and data.
* Verify the signature before decoding.
* Rename `person` parameter to `personalisation`.
* Rename `key` parameter to `secret`.
* Derive actual key from `secret` and `person` in all classes.
* Force bytes in all inputs.
* Set minimum digest size of 16 (was 8).
* Always concatenate personalisation value with the class name to prevent signed data misuse.
* Refactor exceptions to make them make sense and be more usable.
* Improve docstrings descriptions and properly document exceptions.
* Refactor classes into abstracts and mixins so that end users can create their own implementations easily.
* Change compression flag to a dot.
* Some other minor changes regarding public/private API so that the only public methods are `sign`/`unsign` and `loads`/`dumps`.