GSoC 2015 Project Ideas

Version 2

    Smack: Add support for XMPP Serverless Messaging (XEP-174)

     

    Brief explanation:

    Since 2009 there exists a patchset which adds serverless messaging

    (link-local) support to Smack. Unfortunately the patch design is no

    longer compatible with recent Smack versions and thorough examination

    has shown that it needs major rewriting (basically from scratch) in

    order to fulfill the requirements for inclusion in the 'master' branch.

    The 2009er patch should not be used as a starting point for the new

    code. But analyzing its weaknesses and problems will sure help providing

    a better end-result.

     

    Furthermore Guardian Project's ChatSecure uses an old version of aSmack

    with the serverless messaging patch. They need support for XEP-174 in

    order to switch from the old aSmack version they currently use to an

    newer Smack version. This also means that the code has to be Android

    compatible.

     

    Expected results:

    Implement support for XEP-174

    (http://www.xmpp.org/extensions/xep-0174.html) in Smack, fulfilling the

    following requirements:

    - Design and implement an easy to use Smack API for serverless

    messaging, try re-use existing Smack code wherever possible

    - Add smack-serverlesss subproject with XMPPLLConnection

    - XMPPLLConnection should manage a set of XMPPLLStreams (not the case

    with the 2009 patch)

    - Multiple XMPPLLConnections should be supported on the same host (not

    the case with the 2009 patch)

    - Use java.nio to manage connections

    - Use JmDNS for multicast DNS (smack-serverless-jmdns)

    - Use NsdManager on Android for multicast DNS (smack-servless-android)

     

    Knowledge Prerequisite: Java, Android,

     

    Implementation Languages: Java

     

    Mentor: Florian Schmaus

     

    Contact details:

    - IRC: #smack (freenode)

    - MUC: open_chat@conference.igniterealtime.org

    - Smack Dev Forum:

    https://community.igniterealtime.org/community/developers/smack

     

    More Info about this project idea can be found at

    https://github.com/igniterealtime/Smack/wiki/Smack-Jobs#create-xmppllconnection- for-serverless-link-local-messaging-xep-174

     

     

    Title: Add support for DNSSEC to MiniDNS

    Software Project: MiniDNS

    Software URL: https://github.com/rtreffer/minidns

    Software VCS URL: https://github.com/rtreffer/minidns

    Software Description: A minimal DNS client library for Android and JVMs

     

    Brief explanation:

    MiniDNS is a DNS client library, which allows Android Apps and Java programs to resolve DNS resource records (RR). On Android, some resource records could not be resolved using only the Android API, for example DNS SRV RRs. Which was one of the main reasons MiniDNS was invented. Adding support for DNSSEC would be the logical next step to improve the security of the software using MiniDNS.

     

     

    The list of Android Apps und Java programs that would benefit from a DNSSEC enabled MiniDNS include:

    - OpenKeyChain: https://github.com/open-keychain/open-keychain/wiki/Google-Summer-of-Code-2015#k eys-in-dnssecdane

    - Smack based Android Apps *and* Java programs

    - Other Android App using MiniDNS, e.g. Conversations

     

    Since MiniDNS runs also on JavaSE runtimes, i.e. it is not an Anroid exclusive library, all applications using it would also become DNSSEC enabled.

     

    See also: https://github.com/rtreffer/minidns/issues/7

     

    Expected results:

    - Add the ability to perform recursive DNS lookups (required for DNSSEC)

    - Add DNSSEC support to MiniDNS

    - Use Java/Android crypto primitives where possible

     

    Knowledge Prerequisite: Java, DNS, DNSSEC

    Implementation Languages: Java

    Mentor: Florian Schmaus (Smack), Dominik Schürman (OpenKeychain)

     

    Contact details:

    - IRC: #smack (freenode)

    - MUC: open_chat@conference.igniterealtime.org