XSTREAM (pronounced "extreme!") is a public key encryption system combining X25519 Elliptic Curve Diffie-Hellman ([RFC 7748]) with the [STREAM] construction.
The implementations in this repository are built on top of the [Miscreant] misuse-resistant symmetric encryption library, which provides the [AES-SIV] and [AES-PMAC-SIV] algorithms.
More information on XSTREAM is available in the Wiki.
This library presently requires the following:
This library implements the AES cipher using the [aesni] crate, which uses the [Intel AES-NI] CPU instructions to provide a fast, constant-time hardware-based implementation. No software-only implementation of AES is provided. Additionally it includes Intel assembly language implementations of certain secret-dependent functions which have verified constant-time operation.
Supporting stable Rust will require upstream changes in the [aesni] crate, which is nightly-only due to its use of inline assembly.
Have questions? Want to suggest a feature or change?
Please see the Rustdocs on docs.rs for API documentation.
Though this library is written by cryptographic professionals, it has not undergone a thorough security audit, and cryptographic professionals are still humans that make mistakes.
This library makes an effort to use constant time operations throughout its implementation, however actual constant time behavior has not been verified.
Use this library at your own risk.
We abide by the Contributor Covenant and ask that you do as well.
For more information, please see [CODEOFCONDUCT.md].
Bug reports and pull requests are welcome on GitHub at https://github.com/miscreant/xstream.
Copyright (c) 2017 The Miscreant Developers.
All XSTREAM libraries are licensed under either of:
at your option.