SimpleX - the first messaging network operating without user identifiers of any kind - 100% private by design! iOS, Android and desktop apps 📱!
README.md |
simplex-messaging
SMP server demo
This is a demo implementation of SMP (simplex messaging protocol) server.
It has a very limited utility (if any) for real applications, as it lacks the following protocol features:
- cryptographic signature verification, instead it simply compares provided "signature" with stored "public key", effectively treating them as plain text passwords.
- there is no transport encryption
Because of these limitations, it is easy to experiment with the protocol logic via telnet.
You can either run it locally or try with the deployed demo server:
telnet smp.simplex.im 5223
Run locally
Install stack and stack run
.
Usage example
Lines you should send are prefixed with >
character, you should not type them.
Comments are prefixed with --
, they are not part of transmissions.
>
on its own means you need to press return
- telnet should be configured to send it as CRLF.
- Create simplex message queue:
>
> abcd -- correlation ID, any string
>
> NEW 1234 -- 1234 is recipient's key
abcd
IDS QuCLU4YxgS7wcPFA YB4CCATREHkaQcEh -- recipient and sender IDs for the queue
- Sender can send their "key" to the queue:
> -- no signature (just press enter)
> bcda -- correlation ID, any string
> YB4CCATREHkaQcEh -- sender ID for the queue
> SEND :key abcd
bcda
YB4CCATREHkaQcEh
OK
- Secure queue with sender's "key"
> 1234 -- recipient's "signature" - same as "key" in the demo
> cdab
> QuCLU4YxgS7wcPFA -- recipient ID
> KEY abcd -- "key" provided by sender
cdab
QuCLU4YxgS7wcPFA
OK
- Sender can now send messages to the queue
> abcd -- sender's "signature" - same as "key" in the demo
> dabc -- correlation ID
> YB4CCATREHkaQcEh -- sender ID
> SEND :hello
dabc
YB4CCATREHkaQcEh
OK
- Recipient recieves the message and acknowledges it to receive further messages
-- no correlation ID for messages delivered without client command
QuCLU4YxgS7wcPFA
MSG ECA3w3ID 2020-10-18T20:19:36.874Z 5
hello
> 1234
> abcd
> QuCLU4YxgS7wcPFA
> ACK
abcd
QuCLU4YxgS7wcPFA
OK