Skip to content

textbrowser/smoke

Repository files navigation

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!

About

In a burning world, there will always be Smoke. Completed.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages