Skip to content

A simple experimental WebSocket-based application for broadcasting signed messages

License

Notifications You must be signed in to change notification settings

Rirush/crypto-chat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Crypto Chat

A very simple client-server application for sending signed messages between browsers using Web Crypto and WebSockets.

Why?

I wanted to poke at Web Crypto and do something with it.

Is it secure?

It looks good, but I'm not a cryptography expert, so probably not.

How to run it

Make sure you have Go 1.18+ installed.

To build and start the server:

go build -o server ./cmd/server
./server

No additional setup necessary, but there are some possible issues you might encounter:

  • Because this uses Web Crypto, in order to make this page functional, you need to have TLS working on non-localhost origins. This server doesn't support TLS, so you'll need to have a reverse-proxy that provides TLS. (that'll also require updating the frontend to use wss:// instead of ws:// protocol for WebSocket communication)

  • There's no way to export/import keys. If you refresh the page, the keys and message history are lost.

  • There's no way change listen address or port without modifying code, so you either have to accept that it runs on 0.0.0.0:8080 or change the code.

  • It's inconvenient and extremely basic.

Screenshot

image

About

A simple experimental WebSocket-based application for broadcasting signed messages

Topics

Resources

License

Stars

Watchers

Forks