NOTE: This project has been archived! Please check out the STREAM functionality in JMSE as a spiritual successor
A public-key encryption system supporting streaming message encryption/decryption.
What is XSTREAM?
More information on XSTREAM is available in the Wiki.
Is it any good?
Is it "Production Ready™"?
tl;dr: Not ready yet. Check back later.
XSTREAM is an experimental construction whose design has not yet been finalized which is still potentially subject to change. It is not yet suitable to use in production systems.
The design has not yet been thoroughly reviewed and we're presently soliciting feedback from cryptographers.
Additionally all XSTREAM libraries are v0.1, which is hopefully a sign, at least for a cryptography library, that you should probably wait before attempting to use it.
Key Derivation Function
NOTE: As XSTREAM derives a unique symmetric key every time the KDF is
invoked, and also supports an optional salt value passed directly to HKDF,
N parameter passed to the underlying STREAM construction is fixed to
The API is explicitly designed to prevent encrypting more than one message under the same ephemeral key.
XSTREAM libraries are available for the following languages:
Help and Discussion
Have questions? Want to suggest a feature or change?
- Gitter: web-based chat about Miscreant projects including XSTREAM
- Google Group: join via web or email (firstname.lastname@example.org)
Please see the XSTREAM Wiki for more information about XSTREAM.
Code of Conduct
We abide by the Contributor Covenant and ask that you do as well.
For more information, please see CODE_OF_CONDUCT.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:
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.