Git Product home page Git Product logo

rust-crypto's Introduction

NOTE: The crate name used by rust-crypto has recently changed from rust-crypto to just crypto. Please see the Usage section if you are running into issues due to this change.

Rust-Crypto

Build Status

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. Rust-Crypto supports both x86 and ARM architectures, although the x86 architecture receives considerably more testing. 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:

[dependencies]
rust-crypto = "*"

and the following to your crate root:

extern crate crypto;

Contributions

Contributions are extremely welcome. The most significant needs are help keeping up with breaking Rust changes, adding documentation, implementing new algorithms, and general cleanup and improvement of the code. Rust-Crypto is not a great place for experimenting with new algorithms, however. I generally will not merge pull requests for at least a day after they are submitted to make sure that everyone who contributes to Rust-Crypto has a chance to comment, voice concerns, or suggest improvements. Pull requests that make trivial improvements (such as updates to documentation) or fix compiling against the latest Rust nightly release will be merged as soon as possible, however.

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:

  • MD5
  • RIPEMD-160
  • Sha1
  • Sha2 (All fixed output size variants)
  • HMAC
  • PBKDF2
  • Scrypt
  • AES
  • RC4
  • ECB, CBC, and CTR block cipher modes
  • PKCS padding for CBC block cipher mode
  • Salsa20 and XSalsa20
  • Blowfish
  • Bcrypt
  • Blake2B
  • ChaCha20
  • Fortuna
  • Ghash
  • Poly1305

rust-crypto's People

Contributors

dagenix avatar ebfe avatar yawning avatar andydude avatar calvinmetcalf avatar drbawb avatar florob avatar guillaumegomez avatar gifnksm avatar apoelstra avatar nerdrew avatar fhartwig avatar kstep avatar peterreid avatar iseki-masaya avatar yuriks avatar omasanori avatar meyermagic avatar arcterus avatar canndrew avatar andreasots avatar brson avatar emberian avatar ogeon avatar whackashoe avatar ryman avatar reisen avatar byron avatar victory avatar vladikoff avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.