[tor-dev] GSoC 2017 - unMessage: a privacy enhanced instant messenger

dawuud dawuud at riseup.net
Tue Mar 28 21:43:12 UTC 2017


Cool project.

Yes... write unit tests with pytest. Sounds good but I would
suggest writing tests earlier in the development process next time.

Does your project have a specification for this software?
Otherwise I have to read the code to learn how it works.

Using automat for the fsm sounds like a great idea. You probably
will end up making several finite state machines and connecting them
together in a graph. If you end up doing that you should probably first
draw a picture... it helps to clarify.

I've recently started to experiment with automat myself and I've heard
good things about it from my associates.

also you could add :

- hypothesis tests (fuzzing/property based tests)
- changes to setup.py and add a requirements.txt
- use python attrs to eliminate boiler plate code in your classes

as an example here's my fork of sphinx, a mixnet crypto library with
100% unit test coverage, hypothesis fuzzing, usage of attrs and a
proper setup.py and requirements.txt file:


I'd be interested in collaborating with you and mentoring this project.
I'm not sure how much time I'll have in the coming months... we'll see.



On Tue, Mar 28, 2017 at 07:23:16PM +0000, Felipe Dau wrote:
> Hello,
> I am a Computer Engineering student at the Federal Technological
> University of Parana in Brazil and I would like to present you a
> peer-to-peer privacy enhanced instant messenger called unMessage [0].
> I have been working on it for a while with David Andersen [1] (my
> advisor) and we have recently released an alpha version which should
> be easy for developers to install and test.
> It uses the Double Ratchet Algorithm [2] for encryption, Onion
> Services for transport metadata minimization, its own protocol for
> application metadata minimization, and as a result, provides private
> and anonymous conversations. It currently has basic features such as
> message exchange, user authentication and we very recently enabled
> voice chat using the Opus codec [3] for constant bitrate encoding.
> unMessage is a Python application that mainly uses pyaxo's [4]
> implementation of Double Ratchet Algorithm and txtorcon's [5]
> implementation of the Tor Control Protocol.
> Since its current (alpha) release, we have been discussing it with
> Patrick Schleizer [6] and HulaHoop [7] from Whonix [8], who are making
> great contributions to help us test it, as well as suggesting new
> features and improvements. We are also working to run it on Whonix
> (which will also allow it to be run on Tails) with help from
> meejah [9] by adding a new feature to txtorcon to make unMessage (and
> all the apps that use txtorcon) "Control Port Filter friendly".
> As we believe unMessage has potential to become a great privacy
> enhancing app with a code that is simple, readable and therefore easy
> to maintain, Patrick suggested that I submitted a proposal to have
> unMessage as one of the GSoC projects. We expect to implement fixes,
> improvements and features from our discussions in order to turn it
> into a maintainable, feature-rich and useful app which the community
> can benefit from.
> There are currently some "developer centered" tasks I can work on
> such as:
> - Create a test suite (with pytest)
> - Make unMessage's own functions/methods behave like a Twisted API
>   should
> - Use automat for its finite-state machines
> - Make use of a logging tool
> - Improve comments/document the code
> As well as some "user centered" tasks:
> - Whonix/Tails support
> - Improve the GUI and CLI
> - File transfer
> - Use a friendlier approach for users to handle keys instead of
>   the current base32/64 encodings
> - Connect/launch Tor automatically depending on what is available
> - Offline messages
> (All the other ones can be found in the issue tracker [10])
> My intention with this post is not only to present unMessage to
> tor-dev but also see if someone is interested in mentoring me as it
> is not one of the official ideas but hopefully sounds like a good
> project. If someone gets interested, please let me know so that we can
> discuss which tasks would be interesting for this project and I am
> able to write a proposal.
> Thanks!
> -Felipe
> [0]: https://github.com/AnemoneLabs/unmessage
> [1]: https://github.com/rxcomm
> [2]: https://whispersystems.org/docs/specifications/doubleratchet
> [3]: https://opus-codec.org
> [4]: https://github.com/anemonelabs/pyaxo
> [5]: https://github.com/meejah/txtorcon
> [6]: https://github.com/adrelanos
> [7]: https://github.com/HulaHoopWhonix
> [8]: https://whonix.org
> [9]: https://github.com/meejah
> [10]: https://github.com/AnemoneLabs/unmessage/issues

> _______________________________________________
> tor-dev mailing list
> tor-dev at lists.torproject.org
> https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-dev

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.torproject.org/pipermail/tor-dev/attachments/20170328/0849ac07/attachment.sig>

More information about the tor-dev mailing list