Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Usable, easy and safe pure-Rust crypto

License

NotificationsYou must be signed in to change notification settings

orion-rs/orion

Repository files navigation

Daily testsdudectAuditcodecovDocumentationCrates.ioSafety DanceMSRVMatrix

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 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.

Security

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.

Minimum Supported Rust Version

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.

Crate Features

  • 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.

Documentation

Can be viewedhere or built with:

RUSTDOCFLAGS='--cfg docsrs' cargo +nightly doc --no-deps --all-features

Tests and Fuzzing

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.

Benchmarks

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

Changelog

Please refer to theCHANGELOG.md list.

Contributing

Please refer to the guidelines inCONTRIBUTING.md for information on how to contribute to Orion.

License

Orion is licensed under the MIT license. See theLICENSE file for more information.


[8]ページ先頭

©2009-2025 Movatter.jp