Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

crate Docs Build Status MIT licensed Gitter Chat

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:

  • x86_64 CPU architecture
  • Rust nightly compiler

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.

Help and Discussion

Have questions? Want to suggest a feature or change?


Please see the Rustdocs on for API documentation.

Security Notice

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.

Code of Conduct

We abide by the Contributor Covenant and ask that you do as well.

For more information, please see


Bug reports and pull requests are welcome on GitHub at


Copyright (c) 2017 The Miscreant Developers.

All XSTREAM libraries are licensed under either of:

at your option.

You can’t perform that action at this time.