[Telepathy] Telepathy Support for OTR

WolfRage wolfrage8765 at gmail.com
Tue Dec 21 14:41:19 PST 2010

Hello Developers of Telepathy,

This is the beginning of many emails to come as we discuss and iron out the details of OTR support in Telepathy.

My purpose here is to patch this bug #296867 (Launch Pad) which is bug #16891 on the Free Desktop Bugzilla. After talking with sjoerd, smcv, wjt, Robot101, and danni; plus reviewing a lot of Telepathy code, specs and the mailing lists, I have decided to patch the bug by building OTR into each of the CMs and where able to utilize the existing e2e-encryption-spec branch by cosimoc.

This is my thought process or plan so far: If the CM that is being used has OTR built into then OTR will be available, but not started, it can be activated via the D-Bus. By available I mean that the CM will provide the preferences below signifying that the capability for OTR exists. User's will have preferences implemented through:
org.freedesktop.Telepathy.Connections.Interface.OTR.Advertise(b) {PROPOSED}
org.freedesktop.Telepathy.Connections.Interface.E2ESecurity.Opportunistic(b) {PROPOSED}

Default settings for the Securable properties of a OTR aviable channel will be:
org.freedesktop.Telepathy.Channel.Interfaces.Securable.EncryptionRequired(b)=FALSE {PROPOSED}
org.freedesktop.Telepathy.Channel.Interfaces.Securable.EncryptionInterface(s)="OTR" {PROPOSED}
org.freedesktop.Telepathy.Channel.Interfaces.Securable.EncryptionState(u)=0 {PROPOSED}
org.freedesktop.Telepathy.Channel.Interfaces.Securable.AuthenticationChannel(o)=org.freedesktop.Telepathy.Channel.Interface.OTRAuthentication {PROPOSED}

The Object org.freedesktop.Telepathy.Channel.Type.PeerAuthentication {DRAFT} will be inherited by org.freedesktop.Telepathy.Channel.Interface.OTRAuthentication {PROPOSED}

The Object org.freedesktop.Telepathy.Authentication.Proposal {DRAFT} will be inherited by org.freedesktop.Telepathy.Authentication.Proposal.OTR {PROPOSED}

Please note: I am recommending that org.freedesktop.Telepathy.Channel.Interfaces.Encryptable {DRAFT} be renamed, or that some of the properties and methods be moved to org.freedesktop.Telepathy.Channel.Interfaces.Securable as DRAFT properties.

I am looking for feedback on what people's thoughts on this plan so far are, also any suggestions and ideas that people have for input will be reviewed by myself. 

I still have a lot of developer reading to do, I have been working my way into and through the documentation for OTR, and Telepathy. I also need to do some code familiarization for Butterfly, but things are progressing smoothly as I have time I will continue to absorb all that I can. I have so far taken the e2e-encryption spec branch that was created by cosimoc and re-based it against the current spec branch. I will continue to keep my branch up to date as I work, I hope that re-base at least once a month, to reduce the headaches when we finally to try to merge the OTR branch back in. 
There is obviously still lots of work to be done just on Spec alone before I begin to program anything. I plan on programming support for OTR in Butterfly CM first as it is programmed in python, the language I am most comfortable, then I will port it to Haze (libpurple) and latter to the other CM's. 

In the mean time I figured I would put out this email that expresses my early ideas, and I can then begin to engage with all of you and continue to craft my thoughts into a solid plan. Once I am done with familiarization I will move on to actually doing Spec work.

I think this will be a challenge as it has been already so far, but one that I am up for and that I hope you all will join me in overcoming. Thank you all for you feedback, ideas, and most importantly your support.

Sources and Other Relevant Information: 
Important Sites:
1. git://gitorious.org/wolfrage-telepathy/otr.git  My git branch for Spec, re-based with Origin.
2. http://telepathy.freedesktop.org/wiki/ 
3. http://telepathy.freedesktop.org/doc/book/ 
4. git://git.collabora.co.uk/git/telepathy-spec.git Current Stable Spec & Code
5. http://git.collabora.co.uk/?p=user/cosimoc/telepathy-spec.git;a=shortlog;h=refs/heads/e2e-encryption  e2e-encryption Spec
6. git://git.collabora.co.uk/git/telepathy-butterfly.git  Butterfly CM

1. http://lists.freedesktop.org/archives/telepathy/2009-October/003936.html 
2. http://lists.freedesktop.org/archives/telepathy/2010-October/004961.html 
3. http://telepathy.freedesktop.org/wiki/DeveloperNotes 
4. http://www.cypherpunks.ca/otr/Protocol-v2-3.1.0.html 
5. http://www.cypherpunks.ca/otr/README-libotr-3.2.0.txt 
6. http://www.cacr.math.uwaterloo.ca/techreports/2009/cacr2009-27.pdf 
7. http://lists.cypherpunks.ca/pipermail/otr-users/2008-September/001479.html 
8. http://lists.freedesktop.org/archives/telepathy/2009-November/004021.html 
9. http://lists.freedesktop.org/archives/telepathy/2009-November/004025.html 
10. http://lists.freedesktop.org/archives/telepathy/2009-November/004050.html 
11. http://lists.freedesktop.org/archives/telepathy/2010-January/004103.html 
12. http://www.mail-archive.com/telepathy@lists.freedesktop.org/msg04555.html 

1. https://bugs.freedesktop.org/show_bug.cgi?id=16891 
2. https://bugs.launchpad.net/libtelepathy/+bug/296867 
3. https://bugzilla.gnome.org/show_bug.cgi?id=545347 
4. https://bugzilla.redhat.com/show_bug.cgi?id=533855 
5. https://bugs.maemo.org/show_bug.cgi?id=1921 

Other Links: 
1. http://bugs.freedesktop.org/show_bug.cgi?id=29904 
2. http://lwn.net/Articles/398545/  

- -
Quote: "Opportunities multiply as they are seized." "Can you imagine
what I would do if I could do all I can?" Sun Tzu, The Art of War.

More information about the telepathy mailing list