| # `crypto-hash` |
| |
| [![Linux/OS X Status](https://travis-ci.org/malept/crypto-hash.svg?branch=master)](https://travis-ci.org/malept/crypto-hash) |
| [![Windows status](https://ci.appveyor.com/api/projects/status/xwc9nb4633b5n67r/branch/master?svg=true)](https://ci.appveyor.com/project/malept/crypto-hash) |
| [![Crates.io](https://img.shields.io/crates/v/crypto-hash.svg?maxAge=2592000)](https://crates.io/crates/crypto-hash) |
| |
| `crypto-hash` is a Rust wrapper around OS-level implementations of cryptographic hash functions. |
| |
| The purpose of this crate is to provide access to hash algorithms with as few dependencies as |
| possible. This means that when possible, the library uses the hashing functions that are provided by |
| the given operating system's bundled cryptographic libraries. |
| |
| ## Supported Implementations |
| |
| By operating system: |
| |
| * Windows: CryptoAPI |
| * OS X: [CommonCrypto](https://crates.io/crates/commoncrypto) |
| * Linux/BSD/etc.: [OpenSSL](https://crates.io/crates/openssl) |
| |
| ## Supported Algorithms |
| |
| * MD5 |
| * SHA1 |
| * SHA256 |
| * SHA512 |
| |
| ## Usage |
| |
| Add `crypto-hash` to your project's `Cargo.toml`. For more details, consult the |
| [Cargo guide](http://doc.crates.io/guide.html#adding-dependencies). |
| |
| Example: |
| |
| ```rust |
| use crypto_hash::{Algorithm, hex_digest}; |
| |
| let digest = hex_digest(Algorithm::SHA256, b"crypto-hash"); |
| ``` |
| |
| For more examples, consult the [documentation](https://malept.github.io/crypto-hash/). |
| |
| ## [Release Notes](https://github.com/malept/crypto-hash/blob/master/NEWS.md) |
| |
| ## [Contributing](https://github.com/malept/crypto-hash/blob/master/CONTRIBUTING.md) |
| |
| ## Acknowledgements |
| |
| This crate was inspired by [rust-native-tls](https://github.com/sfackler/rust-native-tls) and |
| [crypto-bench](https://github.com/briansmith/crypto-bench). |
| |
| ## Legal |
| |
| `crypto-hash` is copyrighted under the terms of the MIT license. See LICENSE for details. |