GSoC 2015 Project Ideas

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:

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:

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:

1 Like