- Notifications
You must be signed in to change notification settings - Fork41
Usable, easy and safe pure-Rust crypto
License
orion-rs/orion
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
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 thewiki.
Currently supports:
- AEAD: (X)ChaCha20-Poly1305.
- Hashing: BLAKE2b, SHA2, SHA3.
- XOF: SHAKE128, SHAKE256.
- KDF: HKDF, PBKDF2, Argon2i, scrypt.
- ECDH: X25519.
- MAC: HMAC, Poly1305.
- Stream ciphers: (X)ChaCha20.
- KEM: X-Wing, ML-KEM, DHKEM(X25519, HKDF-SHA256).
- HPKE:
- DHKEM(X25519, HKDF-SHA256), HKDF-SHA256, ChaCha20Poly1305
Experimental support (withexperimental
feature enabled):
- Committing AEAD: (X)ChaCha20-Poly1305-BLAKE2b.
This library hasnot undergone any third-party security audit. Usage is atown risk.
Orion uses formally verified arithmetic, generated by Fiat Crypto, for the X25519 and Poly1305 implementations.
See theSECURITY.md regarding recommendations on correct use, reporting security issues and more. Additional information about security regarding Orion is available in thewiki.
Rust 1.83 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.
default
/safe_api
: All functionality, requiresstd
.serde
: Automatically enables thealloc
feature.alloc
: Argon2i inhazardous
whendefault
/safe_api
is not available.no_std
: Implicit feature that represents no heap allocations. Enabled by disabling default features and not selecting any additional features.experimental
: These APIs may contain breaking changes in any non SemVer-breaking crate releases.
More detailed explanation of the features in thewiki.
Can be viewedhere or built with:
RUSTDOCFLAGS='--cfg docsrs' cargo +nightly doc --no-deps --all-features
Thewiki has details on how Orion is tested. To run all tests:
cargo test
Fuzzing is done usinghonggfuzz-rs inorion-fuzz. Seeorion-fuzz on how to start fuzzing Orion.
Constant-time execution tests can be found atorion-dudect andorion-sidefuzz.
An overview of the performance that can be expected from Orion can beseen here.
The library can be benchmarked withCriterion as below. All benchmarking tests are located inbenches/
.
cargo bench
Please refer to theCHANGELOG.md list.
Please refer to the guidelines inCONTRIBUTING.md for information on how to contribute to Orion.
Orion is licensed under the MIT license. See theLICENSE
file for more information.
About
Usable, easy and safe pure-Rust crypto
Topics
Resources
License
Security policy
Uh oh!
There was an error while loading.Please reload this page.