Announcing crypto-hashes 0.4

crypto-hashes is a meta-crate for collection of cryptographic hash functions written in pure Rust. Main repository:

Currently it supports 12 algorithms. If you would to help to expand this list, contributors are always welcome! See this issue for more details.

Notable changes in this release:

  • Rework of `Digest` trait to support hashes with variable output sizes. Instead of using one trait, functionality now splitted into three traits `Input`, `VariableOutput` and `FixedOutput` with an additional convenience trait `Digest=Input+FixedOutput` compatible with the old trait.
  • Rework of `blake2` crate based on the cesarb's `blake2-rfc` crate. Now it's the fastest algorithm implementation in the collection. On my machine it's able to process up to 750 MB/s. (with target_cpu=native and enabled simd optimizations)
  • Removal of `new()` methods in favor of `Default` trait
  • Addition of md2 and groestl algorithms. (contribution of felipeamp and gsingh93)
  • SHA-1 and MD5 implementations published on as `sha-1` and `md-5`

Looks great! I do have an algorithm suggestion: SIDH

It's secure against quantum computers and has much smaller public keys than NTRU, the only other quantum secure algorithm I'd trust.

Open source implementation by Microsoft:

Thank you!

I will definitely keep SIDH in mind. It fits to RustCrypto goals and it would be nice to have its implementations in the future, but currently I am more focused on implementation of "classical" algorithms. Also it will be more fitting for another another repository, not RustCrypto/hashes. Unfortunately I haven't yet started work on asymmetric crypto and key exchange algorithms, so I can't jump directly to SIDH.

But either way contributions are always welcome! :slight_smile:

I am interested in implement it, but I don't have time now.