- TypeScript 58.9%
- Go 34.9%
- HTML 5.9%
- Makefile 0.2%
- Perl 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| ansistrip | ||
| client | ||
| doc | ||
| example | ||
| irc | ||
| web | ||
| .gitignore | ||
| chat.go | ||
| chat_openbsd.go | ||
| chat_other.go | ||
| chat_windows.go | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| README.md | ||
| TODO | ||
chat53
These are the clients for chat53, chat over DNS.
Security
This uses encryption, X25519 and AES-GCM. (Unfortunately post quantum algorithms are hard to fit in DNS). The use of X25519 is in some ways similar to DNSCurve, however this uses AES-GCM because browsers have support via the WebCrypto API for that.
The encryption has not been reviewed and also deliberately makes trade offs that leak metadata, so that the chat history can be cached in DNS. It is also not end-to-end encryption, the server sees decrypted messages when they are sent. See the spec for details.
(If you find any security issues, email dgl at dgl dot cx).
Go CLI version
The Go version was initially generated from the spec by Claude, but much refactoring by hand.
Installing
$ go install gi.tl/dgl/chat53@latest
$ chat53
[If that doesn't work:]
$ PATH="$PATH:$(go env GOPATH)/bin"
Screenshot
Web version
The web version is partly converted from the Go version with Claude, although
contains manual changes to keep the property that it can be served from a
file:// URL and still work.
It can also use either Google's JSON DoH backend, or any DoH server which sends
an Access-Control-Allow-Origin header which allows it (i.e. usually *).
Change this by setting google = false and changing the hardcoded server.
Server
The server can be found at https://codeberg.org/dgl/chat53-server.