GSoC: Week Five

I’m back on track this week. I’ve implemented some of the more negotiate-y parts of XEPs 0155 and 0217, specifically message logging.

Some people want their encrypted sessions logged, others (I would wager most) don’t. XEP-155 provides a way of expressing your preference and letting both parties negotiate an acceptable situation. It’s important that we both agree, because your logs can potentially incriminate me (and vice versa).

I’ve implemented it like this: an option in Gajim’s Advanced Configuration Editor (which is very similar to Firefox’s about:config) lets you select whether or not you want encrypted sessions logged. When negotiating a session, Gajim will automatically select your preference if the other party offers it as an option; otherwise it will prompt you with a message like the one in the screenshot. This means that when negotiating a session between two Gajims, either the responder (as opposed to the initiator) gets his way or the session is cancelled. The alternative is to prompt the responder if the initiator expresses a preference other than the responder’s; I think my way makes for a minimum of user hassle, but I’m not entirely sure. We’ll see how it works in practice.

With this done I’ve implemented most of XEP-0217. This week: there are still a few bugs to fix, and then I’d best make an interface for SAS, figure out how to securely store SRSs, beef up the quality of my PRNG and start getting the test suite ready for release.

write a reply

this editor supports Markdown.