My name is Paul Schaub, I am a free software developer and computer science student from Germany.


I’m working on some free software projects in my spare time. In my opinion free software is very important to a free society, since only free software give the user freedom and control over the machine.


This is my most recent project that started as part of my bachelors thesis. smack-omemo is an implementation of OMEMO encryption for the XMPP library Smack. I chose this as the topic of my bachelors thesis, since I’m very interested in cryptography and I believe, that using strong encryption is necessary for a functional democracy. Implementing this functionality is my political activism against the growing surveillance state.

The project is split into two parts. First there is smack-omemo, which encapsulates the XMPP logic and stanza elements. This module does not contain any code related to the double ratchet algorithm as used in the Signal protocol, which OMEMO is based on. Instead it defines some interfaces and abstract methods.

The second part is smack-omemo-signal, which is a concrete implementation of smack-omemo. It contains libsignal-protocol-java, which implements the double ratchet algorithm.

I had to split the project, since libsignal-protocol-java is licensed under the GPL, Smack on the other hand is Apache licensed. Also the modularization makes it easy to port the module to another double ratchet library at a later point in time.

Here you can find the code. Contributors are welcome :)

smack-omemo, smack-omemo-signal.


As a reaction to the german interior ministers decision to allow government spying on popular messengers, I wrote a tutorial in which I show, how easy it is, to create an OMEMO encrypted messenger in less than 200 lines of Java code. This is my political resistance against a dangerous decision made out of either malice or plain stupidity. The tutorial can be found here, while the source code is hosted here (FSFE) or here (Github).

When the government fails (or refuses) to protect your communications, you’ll have to take action yourselves.



Currently I’m maintainig the dandelion* (inofficial) Android app for the social network diaspora* together with @gsantner. I spend many hours in enhancing the overall experience of the app by adding features like proxy support and sharing functionalities. Also I spiced up the UI by implementing customizable color themes and animated fragments!

Here you can find the project. We are always looking for new contributors and translators!



A simulation of the Enigma machine for Android. I reverse engineered the mechanics of the cipher machine from Wikipedia articles and tested the interoperability using an online simulator. The app is written in java as most of my projects are.

EnigmAndroid is available on FDroid only, since I want to support free software and do not agree with Googles politics.

If you are interested, please feel free to check it out :)

Other work

Bachelors Thesis

I wrote my bachelors thesis about OMEMO encryption (in German). Here you can take a look for yourselves.

Bachelors thesis - OMEMO encryption

Google Summer of Code

I’m participating in the Google Summer of Code as a student for the XMPP Standards Foundation. I’m contributing to Ignite Realtime’s Smack project to implement Jingle File Transfer (XEP-0234) combined with end-to-end encryption. The project page with an overview of my work can be found here.

Contact me

If you want to get in touch with me, you can find me on diaspora* or GNU Social. I’m also a member of the FSFE, so if you want to send me a mail, feel free to do so. Here you can find my PGP-Key.

You can also reach out to me via XMPP: vanitasvitae@jabberhead.tk (QR-Code).

If you want, you can support my work by donating bitcoins ;).