Skip to content
This repository has been archived by the owner on Sep 18, 2019. It is now read-only.
/ xstream Public archive

Public key encryption system combining X25519 ephemeral Diffie-Hellman key exchange and STREAM-based symmetric cryptography

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
Unknown
LICENSE-MIT
Notifications You must be signed in to change notification settings

miscreant/xstream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

NOTE: This project has been archived! Please check out the STREAM functionality in JMSE as a spiritual successor

XSTREAM Build Status MIT/Apache 2.0 Licensed Gitter Chat

A public-key encryption system supporting streaming message encryption/decryption.

What is XSTREAM?

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.

Is it any good?

Yes.

Is it "Production Ready™"?

DANGER: EXPERIMENTAL

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

XSTREAM KDF

STREAM Construction

XSTREAM KDF

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, the N parameter passed to the underlying STREAM construction is fixed to all-zeroes.

The API is explicitly designed to prevent encrypting more than one message under the same ephemeral key.

Language Support

XSTREAM libraries are available for the following languages:

Language Version
Go N/A
JavaScript npm
Python pypi
Ruby gem
Rust crate

Help and Discussion

Have questions? Want to suggest a feature or change?

Documentation

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.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/miscreant/xstream

License

Copyright (c) 2017 The Miscreant Developers.

All XSTREAM libraries are licensed under either of:

at your option.

About

Public key encryption system combining X25519 ephemeral Diffie-Hellman key exchange and STREAM-based symmetric cryptography

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
Unknown
LICENSE-MIT

Code of conduct

Stars

Watchers

Forks

Packages

No packages published