Crates.io | crypto_api_blake2 |
lib.rs | crypto_api_blake2 |
version | 0.2.0 |
source | src |
created_at | 2019-04-03 20:57:30.41406 |
updated_at | 2021-10-07 18:54:29.177017 |
description | Implements Blake2b for `crypto_api` |
homepage | |
repository | https://github.com/KizzyCode/crypto_api_blake2 |
max_upload_size | |
id | 125729 |
size | 243,973 |
Welcome to crypto_api_blake2
🎉
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
⚠️ 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.
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.
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.
Because this code implements the crypto_api
, it depends
on the crypto_api
-crate. Otherwise, it's dependency less.