ProductPromotion
Logo

Elixir

made by https://0x3d.site

GitHub - synrc/chat: 💬 CHAT: Instant Messenger. ISO/IEC: 20922; 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.
💬 CHAT: Instant Messenger. ISO/IEC: 20922; 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. - synr...
Visit Site

GitHub - synrc/chat: 💬 CHAT: Instant Messenger. ISO/IEC: 20922; 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.

GitHub - synrc/chat: 💬 CHAT: Instant Messenger. ISO/IEC: 20922; 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.

SYNRC 💬 CHAT

image

💬 CHAT: Instant Messenger respects ISO 20922 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;
  • MQTT for CHAT application;
  • NS for DNSSEC domain security;
  • LDAP for user directory;
  • SYN/MAIL message delivery system;
  • CA for X.509 client certificate enrollment;
  • N2O based CHAT protocol.

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 ETF-serialized 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, MQTT.

CHAT is a simple instant messaging server based on ISO standards. It uses MQTT protocol and ETF binary serialization from Erlang/OTP across applications: MQTT, N2O, KVS, 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 MQTT instance after recipient acknowledgment. This is Keybase, OTR, PGP (you name it) replacement for secure X.509 ASN.1 defined communications.

MQTT server

$ sudo apt install mosquitto mosquitto-clients
$ mosquitto -c mosquitto.conf
$ mosquitto_sub -p 8883 -t topic --cafile "caroot.pem" \
                --cert "client.pem" --key "client.key"
$ mosquitto_pub -p 8883 -t topic --cafile "caroot.pem" \
                --cert "client.pem" --key "client.key" -m "HELLO"

CHAT server

$ sudo apt install erlang elixir build-essential libcsv3 libcsv-dev cmake
$ git clone [email protected]:synrc/mq && cd mq
$ mix deps.get
$ mix release
$ _build/dev/rel/chat/bin/chat daemon
$ _build/dev/rel/chat/bin/chat remote
Erlang/OTP 24 [erts-12.2.1] [source] [64-bit] [smp:12:12]
    [ds:12:12:10] [async-threads:1] [jit]

Interactive Elixir (1.12.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> :application.which_applications
[
  {:chat, 'CHAT X.509 Instant Messenger mqtt://chat.synrc.com', '6.6.14'},
  {:kvs, 'KVS Abstract Chain Database', '8.10.4'},
  {:ssl_verify_fun, 'SSL verification functions for Erlang\n', '1.1.6'},
  {:n2o, 'N2O MQTT TCP WebSocket', '8.8.1'},
  {:emqtt, 'Erlang MQTT v5.0 Client', '1.2.1'},
  {:mnesia, 'MNESIA  CXC 138 12', '4.20.1'},
  {:cowboy, 'Small, fast, modern HTTP server.', '2.5.0'},
  {:ranch, 'Socket acceptor pool for TCP protocols.', '1.6.2'},
  {:cowlib, 'Support library for manipulating Web protocols.', '2.6.0'},
  {: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'}
]

MQTT client

iex(2)> pid = :chat.connect
MQTT Server Connection: <0.790.0>#PID<0.790.0>
iex(3)> :chat.sub pid
{:ok, :undefined, [0]}
iex(4)> :chat.pub pid
:ok
iex(5)> flush
{:publish,
 %{
   client_pid: #PID<0.790.0>,
   dup: false,
   packet_id: :undefined,
   payload: "Hello World!",
   properties: :undefined,
   qos: 0,
   retain: false,
   topic: "hello"
 }}
:ok

CHAT client

The CHAT comes with Elixir shell console chat_x509 module.

Development Reports

  • [DR-1] 2010-10-18 LDAP
  • [DR-2] 2020-02-03 Кваліфікований Підпис
  • [DR-3] 2023-06-22 CMS Месенжер (Пітч)
  • [DR-4] 2023-06-30 ЧАТ X.509 (Домашня сторінка)
  • [DR-5] 2023-07-05 CMS S/MIME
  • [DR-6] 2023-07-16 CMS Compliance
  • [DR-7] 2023-07-20 LDAP Compliance
  • [DR-8] 2023-07-25 LDAP 13.7.24 (Домашня сторінка)
  • [DR-9] 2023-07-30 CA X.509 (Домашня сторінка)
  • [DR-10] 2023-07-21 CMP/CMC/EST
  • [DR-11] 2023-07-21 MLS ROOM CHAT
  • [DR-12] 2023-08-05 CA CURVE
  • [DR-13] 2023-08-07 CHAT ASN.1
  • [DR-14] 2023-08-08 ASN.1 Компілятор
  • [DR-15] 2023-08-10 CHAT Техзавдання
  • [DR-16] 2023-08-11 ITU X Series
  • [DR-17] 2023-08-13 SWIFT X.509
  • [DR-18] 2023-08-15 CHAT Техноробочий проєкт
  • [DR-19] 2023-09-01 ASN1.EX X.680 Тензори
  • [DR-20] 2023-09-07 Криптоніт

Credits

  • Namdak Tonpa

OM A HUM

Articles
to learn more about the elixir concepts.

Resources
which are currently available to browse on.

mail [email protected] to add your project or resources here 🔥.

FAQ's
to know more about the topic.

mail [email protected] to add your project or resources here 🔥.

Queries
or most google FAQ's about Elixir.

mail [email protected] to add more queries here 🔍.

More Sites
to check out once you're finished browsing here.

0x3d
https://www.0x3d.site/
0x3d is designed for aggregating information.
NodeJS
https://nodejs.0x3d.site/
NodeJS Online Directory
Cross Platform
https://cross-platform.0x3d.site/
Cross Platform Online Directory
Open Source
https://open-source.0x3d.site/
Open Source Online Directory
Analytics
https://analytics.0x3d.site/
Analytics Online Directory
JavaScript
https://javascript.0x3d.site/
JavaScript Online Directory
GoLang
https://golang.0x3d.site/
GoLang Online Directory
Python
https://python.0x3d.site/
Python Online Directory
Swift
https://swift.0x3d.site/
Swift Online Directory
Rust
https://rust.0x3d.site/
Rust Online Directory
Scala
https://scala.0x3d.site/
Scala Online Directory
Ruby
https://ruby.0x3d.site/
Ruby Online Directory
Clojure
https://clojure.0x3d.site/
Clojure Online Directory
Elixir
https://elixir.0x3d.site/
Elixir Online Directory
Elm
https://elm.0x3d.site/
Elm Online Directory
Lua
https://lua.0x3d.site/
Lua Online Directory
C Programming
https://c-programming.0x3d.site/
C Programming Online Directory
C++ Programming
https://cpp-programming.0x3d.site/
C++ Programming Online Directory
R Programming
https://r-programming.0x3d.site/
R Programming Online Directory
Perl
https://perl.0x3d.site/
Perl Online Directory
Java
https://java.0x3d.site/
Java Online Directory
Kotlin
https://kotlin.0x3d.site/
Kotlin Online Directory
PHP
https://php.0x3d.site/
PHP Online Directory
React JS
https://react.0x3d.site/
React JS Online Directory
Angular
https://angular.0x3d.site/
Angular JS Online Directory