Skip to content
/ chat Public
forked from synrc/chat

💬 CHAT: Instant Messenger. ITU/IETF: 3394, 3565, 5280, 5480, 5652, 5755 8551, X.509, CMS, PKCS-10, PCKS-7, OCSP, LDAP, DNS; ANSI: X9-42, X9-62, X25519, X488; NIST: SECP384r1.

License

Notifications You must be signed in to change notification settings

erpuno/chat

 
 

Repository files navigation

SYNRC 💬 CHAT

image

💬 CHAT: Instant Messenger respects IETF 3394 3565 5280 5480 5652 5755 8551 ITU ASN.1 X.509 CMS PKCS-10 PCKS-7 OCSP LDAP DNS X9-42 X9-62 X25519 X488 SECP384r1.

Features

  • X.509 OpenSSL, LiberSSL for security;
  • SYN/MAIL message delivery system;
  • CA for X.509 client certificate enrollment;

CHAT protocol

The CHAT protocols communicates with actions/:client, events/:client, devices/:phone, contacts/:roster, private/:roster/:roster MQTT topics, sending through them Index, Typing, Search, Feature, Service, Desc, Presence, Friend, Tag, Link, Message, Member, Room, Contact, Star, RoomStar, Ack, Auth, Roster, Profile, History, push, io DER-serialized ASN.1 defined messages.

The CHAT protocol is implemented in the set of sub-protocol modules: FILE, HISTORY, LINK, MESSAGE, PRESENSE, PROFILE, PUSH, ROOM, ROSTER, SEARCH, AUTH. For full specification follow priv/design folder. The CHAT server implementation relies only on ISO/IETF connections such as DNSSEC, X.509 CSR, LDAP, QUIC, WebSocket.

CHAT is a simple instant messaging server based on ISO standards. It uses ASN.1 defined protocol and DER binary serialization from Erlang/OTP across applications: MAIL, LDAP, NS, CA. Secure by default. The CHAT application has Sign/Verify, Encrypt/Decrypt feature enabled for every single message passed by. The delivered messages are being deleted from instance after recipient acknowledgment. This is Keybase, OTR, PGP (you name it) replacement for secure X.509 ASN.1 defined communications.

CHAT server

$ sudo apt install erlang elixir
$ git clone git@github.com:synrc/chat && cd chat
$ mix deps.get
$ mix release
$ _build/dev/rel/chat/bin/chat daemon
$ _build/dev/rel/chat/bin/chat remote
Erlang/OTP 28 [erts-16.0.2] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit] [dtrace]

Eshell V16.0.2 (press Ctrl+G to abort, type help(). for help)
iex(1)> :application.which_applications
[
  {:chat, 'CHAT X.509 Instant Messenger tcp://chat.erp.uno', '9.1.2'},
  {:ssl_verify_fun, 'SSL verification functions for Erlang\n', '1.1.6'},
  {:mnesia, 'MNESIA  CXC 138 12', '4.20.1'},
  {:hex, 'hex', '2.0.0'},
  {:inets, 'INETS  CXC 138 49', '7.5'},
  {:ssl, 'Erlang/OTP SSL application', '10.6.1'},
  {:public_key, 'Public key infrastructure', '1.11.3'},
  {:asn1, 'The Erlang ASN1 compiler version 5.0.17', '5.0.17'},
  {:crypto, 'CRYPTO', '5.0.5'},
  {:mix, 'mix', '1.12.2'},
  {:iex, 'iex', '1.12.2'},
  {:elixir, 'elixir', '1.12.2'},
  {:compiler, 'ERTS  CXC 138 10', '8.0.4'},
  {:stdlib, 'ERTS  CXC 138 10', '3.17'},
  {:kernel, 'ERTS  CXC 138 10', '8.2'}
]

Development Reports

Credits

  • Namdak Tonpa

OM A HUM

About

💬 CHAT: Instant Messenger. ITU/IETF: 3394, 3565, 5280, 5480, 5652, 5755 8551, X.509, CMS, PKCS-10, PCKS-7, OCSP, LDAP, DNS; ANSI: X9-42, X9-62, X25519, X488; NIST: SECP384r1.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Erlang 100.0%