crypto_api_blake2 0.2.0

Implements Blake2b for `crypto_api`
Documentation
  • Coverage
  • 75%
    3 out of 4 items documented0 out of 1 items with examples
  • Size
  • Source code size: 243.89 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.23 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Ø build duration
  • this release: 10s Average build duration of successful builds.
  • all releases: 10s Average build duration of successful builds in releases after 2024-10-23.
  • Links
  • KizzyCode/crypto_api_blake2
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • KizzyCode

docs.rs License BSD-2-Clause License MIT crates.io Download numbers AppVeyor CI dependency status

crypto_api_blake2

Welcome to crypto_api_blake2 🎉

About

This crate implements Blake2b with APIs for various use-cases:

  • Streaming and oneshot variable length hash algorithm (obviously)
  • Streaming and oneshot message authentication code (= keyed hash with secure finalization to prevent length extension attacks)
  • Salt- and info-based KDF

Security

⚠️ Some words of warning ahead: This library is beta and has not been audited yet – use at your own risk! ⚠️

However we try to do things right from the start – this library is KISS and tested against various test vectors.

Test Vectors

All implementations pass all reference test vectors and are assumed to produce correct results even in corner cases – we also use API test vectors to test our input validation.

Memory Hygiene

crypto_api_blake2 does not perform any attempts to erase sensitive contents from memory. However, all sensitive contents are stored in heap-allocated memory, so if you're using an erasing memory-allocator like MAProper they will be erased nontheless.

Using an erasing memory allocator is a good idea anyway, because Rust makes it pretty hard to keep track on how the memory is managed under the hood – the memory allocator on the other hand sees everything that happens on the heap and can take care of it accordingly.

Dependencies

Because this code implements the crypto_api, it depends on the crypto_api-crate. Otherwise, it's dependency less.