Yet another blog about getting rich (while doing GSoC 2015)

GSoC 2015 is over.

August 21, 2015 | 1 Minute Read

Finally, the Google Summer of Code 2015 concluded. Over 1,000 students - including myself - used the summer to develop amazing open-source software, making our daily life better.

DNSSEC for minidns

I successfully finished my project, to include support DNSSEC in minidns, a popular DNS client library for Java with support for Android. Just to summarize my previous posts, here is a list of things developed during the summer:

  • Parsing the wire format of various DNS records: DLV, DNSKEY, DS, NSEC, NSEC3, NSEC3PARAM, RRSIG, OPENPGPKEY, OPT, TLSA
  • Creating the wire format for all supported DNS records (required for proper validation)
  • Recursive resolving from the DNS root servers
  • Validating signatures (RRSIG) using RSA and DSA keys and MD5 (deprecated), SHA1, SHA-256 and SHA-512 hashes
  • Validating negative results using NSEC and NSEC3
  • Validating delegation using direct domain chain (DS) or DNSSEC lookaside validation (DLV)
  • Certificate validation using TLSA records (DANE)
  • Include DNSSEC resolving and DANE capabilities as optional features into smack

To ensure correctness of all features, I also added a lot of unit tests to minidns. Due to this I was able to find some relevant bugs in minidns. Unfortunately, some of the optionally desired features did not make it into usable state until today. I will further work on adding the following after this years GSoC:

  • Validate signatures using ECDSA keys
  • Include DNSSEC resolving, DANE capabilities and OPENPGPKEY DNS record support into OpenKeychain

Thanks

I’d like to say a warm thank you, to everyone involved with the organisation of the GSoC at XSF (which acted as my host organization) or supported me at my project. This includes, but is not limited to:

  • Rene Treffer
  • Florian Schmaus
  • Dave Cridland
  • Georg Lukas
  • Kevin Smith