Giter Club home page Giter Club logo

smoke's Introduction

Neither snow nor rain nor heat nor gloom of night stays these violet couriers from the swift completion of their appointed rounds. A project for the curious.

alt text

Smoke

Summary of Smoke

  • Aliases. Preserve your contacts.
  • Almost zero-dependency software.
  • Application lock.
  • Argon2id and PBKDF2 key-derivation functions.
  • Automatic, oscillatory public-key exchange protocol, via SipHash.
  • BSD 3-clause license.
  • Completed.
  • Content is recorded via authenticated encryption.
  • Decentralized. TCP, and UDP multicast and unicast.
  • Does not require Internet connectivity.
  • Does not require registration. Telephone numbers are not required.
  • Encrypted communications.
  • Eventful tasks. Limited polling.
  • F-Droid.
  • Fiasco forward secrecy.
  • Future-proof software.
  • Introduces Cryptographic Discovery. Cryptographic Discovery is a practical protocol which creates coordinated data paths.
  • Juggling Juggernaut Protocol!
  • Manufactured tool tips!
  • McEliece Fujisaka and Pointcheval.
  • Message structures do not explicitly expose contents. Header-less protocols! Some messages do include type information.
  • Mobile servers via SmokeStack.
  • Obfuscation of resident secret keys.
  • Optional foreground services.
  • Optional silence over the wires.
  • Original implementation of SipHash.
  • Ozone destinations: private and public repositories.
  • Post offices for messages of the past.
  • Private servers.
  • Public and private public-key servers.
  • Rainbow digital signature scheme.
  • Reliable distribution of archived messages.
  • Reliable distribution of deliverable text messages.
  • SPHINCS digital signature scheme.
  • SSL/TLS through SmokeStack.
  • Semi-compatible with Spot-On via Fire.
  • Share files with TCP utilities such as Netcat.
  • SipHash-128.
  • Smoke and mirrors.
  • Software congestion control.
  • Software manual included.
  • Steam, reliable file sharing. TCP over the Echo!
  • Steamrolling, or, real-time broadcasting of inbound Steams to fellow participants.
  • Super McEliece: m = 13, t = 118.

Please read https://github.com/textbrowser/smoke/tree/master/Documentation for more information.

Starting a Conversation

  1. Download and install Smoke.
  2. Download and install SmokeStack, Spot-On, or Spot-On-Lite. More adventurous operators are welcome to create servers using ncat and socat.
  3. Define a private or public listener.
  4. Connect Smoke to defined listener.
  5. Share aliases: super-alias-1, super-alias-2.
  6. Define aliases in respective Smoke instances.
  7. Share public keys.
  8. Done!
Steamrolling is the process of real-time broadcasting of complete and
incomplete inbound Steams. Let’s review a colorful example.
*---------------*
| Participant A | <--------------------------------------
*---------------*                                       |
       |                                                |
       | (Steam A)                                      |
       V                                                |
*---------------*  (Steam A)  *---------------*         | (Steam A)
| Participant B | ----------> | Participant C |         |
*---------------*             *---------------*         |
       |                                                |
       | (Steam A)                                      |
       V                                                |
*---------------*                                       |
| Participant D |                                       |
*---------------*                                       |
       |                                                |
       | (Steam A)                                      |
       V                                                |
*---------------*                                       |
| Participant E | ---------------------------------------
*---------------*
Participants C, D, and E shall receive Steam A data as participant B receives
and writes Steam A data. If the stream of bytes between A and B is interrupted,
the interruption will percolate throughout the network. Unique keys are
established between each of the paired participants.

alt text Get it on F-Droid!

smoke's People

Contributors

textbrowser avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.