Jabber and Off-the-Record Messaging

In 2007 I wrote a diploma thesis on Off-the-Record (OTR) Messaging, which which was advised by Prof. Dr. Ruediger Weis. You can download the complete text of the thesis, it's written in german and has the title Sichere Nachrichtenübermittlung mit Off-the-Record-Messaging (pdf).
As part of the thesis I developed an OTR-plugin for Psi and some other tools, you'll find here. For using the OTR-plugin, it's necessary to patch the Psi source code. The patch adds some features to the incomplete plugin interface of Psi. The patch and the plugin have been updated several times since the first release in november 2007. Make sure you only use the plugin with the appropriate version of the patch.

For questions or comments feel free to write to timo-e ät freenet.de

OTR Plugin for Psi

For using the plugin, you need the plugin itself and a patched version of Psi. Basically, Psi has no plugin support. The plugin works only with the appropriate version of the patch, because the plugin interface has been extended with new versions. The patches are only available for certain versions of Psi. It's not possible to use an old version of Psi with a new plugin or vice versa.
The plugin only adds multi-purpose functions to the plugin interface. So it should be possible to develop other plugins using this patch. Have a look at the example plugin if you're interested in developing own plugins.

The source packages of the plugin contain instructions how to patch Psi and build the plugin.

Some screenshots from Psi-otr 0.4:

Psi 0.14

Patch for Psi
File Version Date Description
psi-plugin-patch-20091212.diff 200912122009-12-20 diff file for Psi 0.14
psi-patched-0.14.tar.gz 0.14 patched 2009-12-20 patched 0.14 source
psi-patched_0.14-1_i386.deb 0.14 patched 2009-12-20 inofficial debian package

The OTR plugin and the plugin interface did not change in Psi 0.14. Please use version 0.5 of the OTR plugin in combination with Psi 0.14.

Psi 0.13

OTR Plugin
File Version Date Description
psi-otr-0.5.tar.gz 0.5 2009-08-09 source package
psi-otr_0.5-1_i386.deb 0.5 2009-08-09inofficial debian package
psi-otr_0.5-1_amd64.deb 0.5 2009-11-10inofficial debian package amd64

Patch for Psi
File Version Date Description
psi-plugin-patch-20090805.diff 200908052009-08-05 diff files for Psi 0.13
psi-patched-0.13.tar.gz 0.13 patched 2009-08-09 patched 0.13 source
psi-patched_0.13-1_i386.deb 0.13 patched 2009-08-09 inofficial debian package
psi-patched_0.13-1_amd64.deb 0.13 patched 2009-11-10 inofficial debian package amd64

Example Plugin
This is a small code example for a Psi plugin.
File Version Date Description
testPlugin-0.4.tar.gz 0.4 2009-08-09 source package

Psi 0.12

OTR Plugin
The plugin requires libotr 3.0.0 or libotr 3.1.0. If you have libotr 3.2.0 it's necessary to change line 57 in otrconnection.cpp to
#if OTRL_VERSION_MAJOR==3 && OTRL_VERSION_MINOR==2
(Thanks to Steffen P.)
File Version Date Description
psi-otr-0.4.tar.gz 0.4 2008-09-05 source package
psi-otr_0.4-1_i386.deb 0.4 2007-09-05inofficial debian package

Patch for Psi
File Version Date Description
psi-plugin-patch-20080905.diff 200809052008-09-05 diff files for Psi 0.12
psi-patched-0.12.tar.gz 0.12 patched 2008-09-05 patched 0.12 source
psi-patched_0.12-1_i386.deb 0.12 patched 2008-01-07 inofficial debian package
The debian package contains the patched version of Psi. It was compiled with Qt 4.3, which is not part of the current stable release of debian.

Example Plugin
This is a small code example for a Psi plugin.
File Version Date Description
testPlugin-0.3.tar.gz 0.3 2008-08-16 source package

Other packages

Psi 0.11

OTR Plugin
File Version Date Description
psi-otr-0.3.tar.gz 0.3 2007-11-13 source package
psi-otr_0.3_i386.deb 0.3 2007-11-13inofficial debian package
psi-otr_0.3_amd64.deb 0.3 2007-11-18 inofficial debian package

Patch for Psi
File Version Date Description
psi-plugin-patch-0.11.tar.gz 2008-01-07 diff files for Psi 0.11
psi-plugins-0.11.tar.gz 0.11 patched 2008-01-07 patched 0.11 source
psi_0.11-1_i386.deb 0.11 patched 2008-01-07 inofficial debian package
psi_0.11-1_amd64.deb 0.11 patched 2008-01-07 inofficial debian package
The debian packages contain the patched version of Psi. They were compiled with Qt 4.3, which is not part of the current stable release of debian.

Example Plugin
This is a small code example for a Psi plugin.
File Version Date Description
testPlugin-0.2.tar.gz 0.2 2007-11-09 source package



Jabber OTR Command Line Tools

For testing and debugging purposes two small command line tools were created. With these tools you can send and receive OTR encrypted Jabber messages from the command line. jsnd reads the message from STDIN or from a file. jrcv writes the message to STDOUT.
The programs are written in C using the loudmouth jabber library (1.1.4), libotr2 (3.0.0) and GLib (2.12.4).
File Version Date Description
jsnd_jrcv_0.1.tar.gz 0.1 2007-08-30 jsnd / jrcv source package



2009-12-20 timo-e ät freenet.de