Skip to content


This library was born as the need to simply sign some data structure to store it in a cookie securely. I had been using itsdangerous for that, but this time I wanted something simpler and uncomplicated, so I wrote a couple of lines and got it working using native BLAKE2 in keyed hashing mode; of course that to achieve it I read Django's signer and itsdangerous source code a lot.

I then published that as a Gist for others (and me) to use in a copy-and-paste fashion. I proceeded to add a few features, tests, and the like, and eventually asked myself: why not create an actual package?. The more I edited the Gist, the more I believed it could actually be more useful as a package, and to be actually installed in projects, just like other excellent libs such as itsdangerous, Django's signer, pypaseto, pyjwt, etc.

Again, if itsdangerous exists and can use BLAKE2 as a hashing algorithm, why write something from scratch? I think that the main reasons for me were simplicity, better defaults, and an easier to use API. I wanted something that one would import and use pretty much as-is, and I also expected that to be secure and performant.

Therefore, blake2signer as a package was born. Check out the comparison with other libs section if you are currently using one of the aforementioned ones and want to give this lib a try; or move on to the examples or details section to get yourself quickly started.