MCPcopy Create free account
hub / github.com/RustCrypto/hashes

github.com/RustCrypto/hashes

Chat with this repo
repository ↗ · DeepWiki ↗ · release whirlpool-v0.11.0 ↗ · + Follow · compare 2 versions
584 symbols 1,056 edges 176 files 35 documented · 6% updated 1d ago★ 2,24318 open issues

Browse by type

Functions 536 Types & classes 48
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

RustCrypto: Hashes

Project Chat dependency status Apache2/MIT licensed

Collection of cryptographic hash functions written in pure Rust.

All algorithms reside in separate crates and are implemented using traits from [digest] crate. Usage examples are provided in digest and hash implementation crate docs. Additionally all crates do not require the standard library (i.e. no_std capable) and can be easily used for bare-metal or WebAssembly programming by disabling default crate features.

Supported Algorithms

Note: For new applications, or where compatibility with other existing standards is not a primary concern, we strongly recommend to use either [BLAKE3][blake3], SHA-2 or SHA-3.

Algorithm Crate Crates.io Documentation MSRV Security
Ascon hash [ascon‑hash256] crates.io Documentation 1.85 :green_heart:
Bash hash [bash‑hash] crates.io Documentation 1.85 :green_heart:
BelT hash [belt‑hash] crates.io Documentation 1.85 :green_heart:
BLAKE2 [blake2] crates.io Documentation 1.85 :green_heart:
FSB [fsb] crates.io Documentation 1.85 :green_heart:
GOST R 34.11-94 [gost94] crates.io Documentation 1.85 :yellow_heart:
Grøstl (Groestl) [groestl] crates.io Documentation 1.85 :green_heart:
JH [jh] crates.io Documentation 1.85 :green_heart:
KangarooTwelve [k12] crates.io Documentation 1.85 :green_heart:
Kupyna [kupyna] crates.io Documentation 1.85 :green_heart:
MD2 [md2] crates.io Documentation 1.85 :broken_heart:
MD4 [md4] crates.io Documentation 1.85 :broken_heart:
MD5 md5 crates.io Documentation 1.85 :broken_heart:
RIPEMD [ripemd] crates.io Documentation 1.85 :green_heart:
SHA-1 [sha1] crates.io Documentation 1.85 :broken_heart:
SHA-1 Checked [sha1-checked] crates.io Documentation 1.85 :yellow_heart:
SHA-2 [sha2] crates.io Documentation 1.85 :green_heart:
SHA-3 (Keccak) [sha3] crates.io Documentation 1.85 :green_heart:
SHABAL [shabal] crates.io Documentation 1.85 :green_heart:
Skein [skein] crates.io Documentation 1.85 :green_heart:
SM3 (OSCCA GM/T 0004-2012) [sm3] crates.io Documentation 1.85 :green_heart:
Streebog (GOST R 34.11-2012) [streebog] crates.io Documentation 1.85 :yellow_heart:
Tiger [tiger] crates.io Documentation 1.85 :green_heart:
Whirlpool [whirlpool] crates.io Documentation 1.85 :green_heart:

NOTE: the [blake3] crate implements the digest traits used by the rest of the hashes in this repository, but is maintained by the BLAKE3 team.

Security Level Legend

The following describes the security level ratings associated with each hash function (i.e. algorithms, not the specific implementation):

Heart Description
:green_heart: No known successful attacks
:yellow_heart: Theoretical break: security lower than claimed
:broken_heart: Attack demonstrated in practice: avoid if at all possible

See the Security page on Wikipedia for more information.

Crate Names

Whenever possible crates are published under the same name as the crate folder. Owners of md5 declined to participate in this project. This crate does not implement the [digest] traits, so it is not interoperable with the RustCrypto ecosystem. This is why we publish our MD5 implementation as md-5 and mark it with the :exclamation: mark. Note that the library itself is named as md5, i.e. inside use statements you should use md5, not md_5.

License

All crates in this repository are licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 326
Method 210
Class 39
Interface 7
Enum 2

Languages

Rust100%

Modules by API surface

sha1-checked/src/compress.rs35 symbols
gost94/src/block_api.rs25 symbols
sha1-checked/src/lib.rs24 symbols
ascon-hash256/src/lib.rs23 symbols
streebog/src/block_api.rs19 symbols
belt-hash/src/block_api.rs18 symbols
shabal/src/block_api.rs17 symbols
sha3/src/block_api.rs15 symbols
sm3/src/compress.rs13 symbols
sha1/src/compress/soft.rs13 symbols
sha2/src/sha512/x86_avx2.rs12 symbols
jh/src/compressor.rs12 symbols

For agents

$ claude mcp add hashes \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page