Description
orion is a cryptography library written in pure-Rust which aims to provide easy and usable crypto. 'Usable' meaning exposing high-level API's that are easy to use and hard to misuse.
orion alternatives and similar packages
Based on the "Cryptography" category.
Alternatively, view orion alternatives based on common mentions on social networks and blogs.
-
Ockam
Orchestrate end-to-end encryption, cryptographic identities, mutual authentication, and authorization policies between distributed applications โ at massive scale. -
exonum
An extensible open-source framework for creating private/permissioned blockchain applications -
sodiumoxide
DISCONTINUED. [DEPRECATED] Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium) -
RustCrypto Elliptic Curves
Collection of pure Rust elliptic curve implementations: NIST P-224, P-256, P-384, P-521, secp256k1, SM2 -
miscreant
DISCONTINUED. Meta-repository for Miscreant: misuse-resistant symmetric encryption library with AES-SIV (RFC 5297) and AES-PMAC-SIV support -
recrypt
A set of cryptographic primitives for building a multi-hop Proxy Re-encryption scheme, known as Transform Encryption. -
schannel-rs
Schannel API-bindings for rust (provides an interface for native SSL/TLS using windows APIs)
InfluxDB - Power Real-Time Data Analytics at Scale
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of orion or a related project?
Popular Comparisons
README
orion
About
orion is a cryptography library written in pure Rust. It aims to provide easy and usable crypto while trying to minimize the use of unsafe code. You can read more about orion in the wiki.
Currently supports:
- AEAD: (X)ChaCha20Poly1305.
- Stream ciphers: (X)ChaCha20.
- KDF: HKDF-HMAC-SHA512, PBKDF2-HMAC-SHA512, Argon2i.
- MAC: HMAC-SHA512, Poly1305.
- Hashing: BLAKE2b, SHA512.
Security
This library has not undergone any third-party security audit. Usage is at own risk.
More information about security regarding orion is available in the wiki.
Minimum Supported Rust Version
Rust 1.41 or later is supported however, the majority of testing happens with latest stable Rust.
MSRV may be changed at any point and will not be considered a SemVer breaking change.
Crate Features
By default orion targets stable Rust with std
. To use orion in a no_std
context, you need to specify the dependency as such:
orion = { version = "*", default-features = false }
# Replace * with the most recent version
When orion is used in a no_std
context, the high-level API is not available, since it relies on access to the systems random number generator.
Argon2i is not available with no_std
by default, but can be by enabling the alloc
feature:
[dependencies.orion]
version = "*" # Replace * with the most recent version
default-features = false
features = ["alloc"]
Documentation
Can be viewed here or built with:
cargo doc --no-deps
Tests and Fuzzing
The wiki has details on how orion is tested. To run all tests:
cargo test
Fuzzing is done using honggfuzz-rs in orion-fuzz. See orion-fuzz on how to start fuzzing orion.
Constant-time execution tests can be found at orion-dudect and orion-sidefuzz.
Benchmarks
An overview of the performance that can be expected from orion can be seen here.
The library can be benchmarked with Criterion as below. All benchmarking tests are located in benches/
.
cargo bench
Changelog
Please refer to the CHANGELOG.md list.
Contributing
Please refer to the guidelines in CONTRIBUTING.md for information on how to contribute to orion.
License
orion is licensed under the MIT license. See the LICENSE
file for more information.
*Note that all licence references and agreements mentioned in the orion README section above
are relevant to that project's source code only.