security-union / videocall-rs

teleconference system written in rust
MIT License
1.34k stars 114 forks source link

This is naive error handling, at least we need to let the user know that they need to refresh the page #131

Open darioalessandro opened 11 months ago

darioalessandro commented 11 months ago
          This is naive error handling, at least we need to let the user know that they need to refresh the page

_Originally posted by @darioalessandro in https://github.com/security-union/videocall-rs/pull/130#discussion_r1288726357_

tusharkarle commented 11 months ago

@darioalessandro can i work on the above enhancement and get idea of exactly what is expected here

darioalessandro commented 11 months ago

Heck yeah! Thanks for chiming in! I'll do a write up

darioalessandro commented 11 months ago

Lets start small, how about this:

If we fail to decrypt an aes_packet from a given peer we should have a mechanism to trigger the key exchange.

This is a diagram of how key exchange works:

https://github.com/security-union/videocall-rs/blob/main/sequence-diagram.txt

Untitled

tusharkarle commented 11 months ago

Ok . will understand the flow and start working on the same

ronen commented 11 months ago

Hi @tusharkarle just a heads-up, once #137 gets merge (assuming it does :) all the encryption code will have moved from the Attendants component into a new VideoCallClient.

It's all basically the same code, it's just in a new place -- but this new place is behind an API surface, allowing the key exchange to be done "behind the scenes" as far as the UI code is concerned. And providing an opportunity for defining explicit errors/callbacks to be passed to the UI if such turn out to be needed.