Signal Protocol in Javascript
Signal Protocol in Javascript
TLDR; for my project i wanted the signal protocol that would work in a browser. following a previous post i made about looking for the signal protocol in javascript, i couldnt find something suitable... so empowered by AI, i tried to create something myself. i dont want to inspire undue confidence.
IMPORTANT: this project is not professionally audited or production ready.
for my p2p messaging project (a webapp) i wanted to explore an usage of the Signal protocol.... the investigation is still in progress and far from finished. its clear that the Signal protocol is not intended for a p2p architecture with it needing things like pre-keys stored on servers. so it seems nessesary to adapt it.
i looked around for a suitable implementation i could use. compiling the implementation in lib-signal-go to a wasm seemed like an option that worked... but given AI is everywhere, i decided to see if it could put something better together. i started off creating something using browser-based cryptograpy primitives. i would have like to keep it that way, but an ealier AI audit disagreed to using those primitives and so here is an attempt in rust that compiles to wasm.
https://github.com/positive-intentions/cryptography/tree/staging/src/rust
i added several unit tests and and got AI to try create better securty audits, and i think its working well. (or at least well enough). AI's security audit points me to many things i can improve throughout (so i will when i can).
this is fairly complicated stuff and i know better than to ask people to spend their own time to review my experimental project... im not sharing for you to review my code; im sharing this here if this is interesting for anyone to take a look.
(note: the repo is getting a bit too "full" and i will be splitting it into a separate repo for just the signal implementation.)