Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/DaGenix/rust-crypto

A (mostly) pure-Rust implementation of various cryptographic algorithms.
https://github.com/DaGenix/rust-crypto

Last synced: 8 days ago
JSON representation

A (mostly) pure-Rust implementation of various cryptographic algorithms.

Awesome Lists containing this project

README

        

# Rust-Crypto

[![Build Status](https://travis-ci.org/DaGenix/rust-crypto.png?branch=master)](https://travis-ci.org/DaGenix/rust-crypto)

A (mostly) pure-Rust implementation of various common cryptographic algorithms.

Rust-Crypto seeks to create practical, auditable, pure-Rust implementations of common cryptographic
algorithms with a minimum amount of assembly code where appropriate. The x86-64, x86, and
ARM architectures are supported, although the x86-64 architecture receives the most testing.

Rust-Crypto targets the current, stable build of Rust.
If you are having issues while using an older version, please try upgrading to the latest stable.

Rust-Crypto has not been thoroughly
audited for correctness, so any use where security is important is not recommended at this time.

## Usage

To use Rust-Crypto, add the following to your Cargo.toml:

```toml
[dependencies]
rust-crypto = "^0.2"
```

and the following to your crate root:

```rust
extern crate crypto;
```

## Contributions

Contributions are extremely welcome. The most significant needs are help
adding documentation, implementing new algorithms,
and general cleanup and improvement of the code. By submitting a pull request you are agreeing to
make you work available under the license
terms of the Rust-Crypto project.

## License

Rust-Crypto is dual licensed under the MIT and Apache 2.0 licenses, the same licenses
as the Rust compiler.

## Algorithms

Rust-Crypto already supports a significant number of algorithms and with your help
it will support even more in the future. Currently supported algorithms include:

* AES
* Bcrypt
* BLAKE2b
* BLAKE2s
* Blowfish
* ChaCha20
* Curve25519
* ECB, CBC, and CTR block cipher modes
* Ed25519
* Fortuna
* Ghash
* HC128
* HMAC
* MD5
* PBKDF2
* PKCS padding for CBC block cipher mode
* Poly1305
* RC4
* RIPEMD-160
* Salsa20 and XSalsa20
* Scrypt
* Sha1
* Sha2 (All fixed output size variants)
* Sha3
* Sosemanuk
* Whirlpool