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

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


Hey,

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)
https://hypothesis.readthedocs.io/
- changes to setup.py and add a requirements.txt
- use python attrs to eliminate boiler plate code in your classes
https://attrs.readthedocs.io/

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:

https://github.com/applied-mixnetworks/sphinxmixcrypto


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.


Cheers,

David



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