Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/textbrowser/smoke
In a burning world, there will always be Smoke. Completed.
https://github.com/textbrowser/smoke
Last synced: about 1 month ago
JSON representation
In a burning world, there will always be Smoke. Completed.
- Host: GitHub
- URL: https://github.com/textbrowser/smoke
- Owner: textbrowser
- License: other
- Created: 2016-12-17T23:38:31.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2024-06-24T21:25:24.000Z (6 months ago)
- Last Synced: 2024-08-01T12:29:31.232Z (4 months ago)
- Language: Java
- Homepage: https://textbrowser.github.io/smoke/
- Size: 79.7 MB
- Stars: 101
- Watchers: 8
- Forks: 11
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - textbrowser/smoke - In a burning world, there will always be Smoke. Completed. (others)
README
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](https://github.com/textbrowser/smoke/blob/master/Images/smoke.gif)
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
- Download and install Smoke.
- Download and install SmokeStack, Spot-On, or Spot-On-Lite. More
adventurous operators are welcome to create servers using ncat and socat. - Define a private or public listener.
- Connect Smoke to defined listener.
- Share aliases: super-alias-1, super-alias-2.
- Define aliases in respective Smoke instances.
- Share public keys.
- 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](https://github.com/textbrowser/smoke/blob/master/Images/smoke_7.png)
[](https://f-droid.org/packages/org.purple.smoke/)