Go to file
Reynir Björnsson 3f43398866 Cleanup, reduce Lwd.set calls 2023-05-12 14:39:02 +02:00
README.md README: link to github users 2023-05-05 19:00:11 +02:00
config.ml Terminal User Interface! 2023-05-04 13:49:25 +02:00
message.ml Terminal User Interface! 2023-05-04 13:49:25 +02:00
message.mli Terminal User Interface! 2023-05-04 13:49:25 +02:00
nottui_mirage.ml Terminal User Interface! 2023-05-04 13:49:25 +02:00
notty_mirage.ml Terminal User Interface! 2023-05-04 13:49:25 +02:00
prompt.ml Cleanup, reduce Lwd.set calls 2023-05-12 14:39:02 +02:00
rb.ml Terminal User Interface! 2023-05-04 13:49:25 +02:00
rb.mli Terminal User Interface! 2023-05-04 13:49:25 +02:00
rope.ml Rope: Fix negative index 2023-05-12 14:27:27 +02:00
rope.mli Terminal User Interface! 2023-05-04 13:49:25 +02:00
rp.ml Terminal User Interface! 2023-05-04 13:49:25 +02:00
unikernel.ml Implement broken quit:wq 2023-05-12 14:37:35 +02:00
window.ml Cleanup, reduce Lwd.set calls 2023-05-12 14:39:02 +02:00

README.md

Banawá chat - Trust On First Use SSH Chat

Banawa-chat is a MirageOS unikernel that acts as a special SSH server that provides a chat room for connecting clients. Clients connect with a SSH key, and if the username has not been used before the key is then associated with that user. This is a trust of first use (TOFU) scheme for user authentication. The user database and chat log is kept in the memory of the unikernel, and the user interface is rendered on the server. Users don't require any other software than an SSH client in order to use the chat room.

Banawa-chat was written in May 2023 at the 12th MirageOS hack retreat. As the server was written in only a few days it suffers from a number of bugs and warts (though mostly usable). The awa-ssh was forked in order to support the TOFU scheme. During development of this application three bugs were discovered, and two of them fixed. See https://github.com/mirage/awa-ssh/pull/55, https://github.com/mirage/awa-ssh/pull/56 and https://github.com/mirage/awa-ssh/issues/57.

Thanks a lot to @dinosaure who provided code that I could steal for the nice terminal user interface and helped me debug many things. Thanks as well to @wyn who helped me test and debug RSA authentication from newer ssh clients.