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)
-
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)