native-dns-packet icon indicating copy to clipboard operation
native-dns-packet copied to clipboard

Add DNSSEC Support

Open techguy613 opened this issue 8 years ago • 2 comments

  • Add DNSSEC_ALGO_NAME_TO_NAME, DNSKEY_NAME_TO_NUM and DIGEST_TO_NUM to consts for DNSSEC support (and reverse_maps)
  • Add function hasType() to packet.js
  • Add ad and cd packet header fields
  • Export LABEL_POINTER, isPointer, nameUnpack(), and namePack()
  • Undate nameUnpack() to return raw name data
  • Update namePack() to handle isCanonical correctly (allows for name reuse)
  • Add parseTypeBitmap(), writeTypeBitmap() and mapToWire() to support NSEC/NSEC3 type bitmap use
  • Add WRITE_DS, WRITE_RRSIG, WRITE_DNSKEY, WRITE_NSEC3 and WRITE_SEC3PARAM state determination variables
  • Add PARSE_DS, PARSE_RRSIG, PARSE_DNSKEY, PARSE_NSEC, PARSE_NSEC3 and PARSE_SEC3PARAM state determination variables
  • Add writeRrsig(), writeDs(), writeDnskey(), writeNsec(), writeNserv3() and writeNsec3Param functions
  • Add parseDs(), parseRrsig(), parseDnskey(), parseNsec(), parseNsec3() and parseNsec3param() functions
  • Handle packet.do flag setting edns.ttl flag for DNSSEC
  • Update write() to handle DS, RRSIG, DNSKEY, NSEC3 and NSEC3PARAM message types
  • Update parse() to handle DS, RRSIG, DNSKEY, NSEC, NSEC3, and NSEC3PARAM message types
  • Change parseQuestion() and parseRR() to handle nameUnpack() raw return
  • Update various parse*() functions to handle raw return value in addition to existing name return
  • Added utility buildDnssecRequestPacket() to packet.js
  • Updated unittests to handle removing raw data
  • Update all fixtures/*.js names to end in a '.' correctly
  • Update _xmpp-server._tcp.gmail.srv.bin with new response, which uses compressed names correctly

techguy613 avatar Jul 29 '16 15:07 techguy613

This looks very nice. Do you have an example of this code been used?

FLYBYME avatar Apr 15 '17 15:04 FLYBYME

Hey @FLYBYME, I have since left my previous company where I was trying to use this update and I did have some code using this, but I don't believe I have access to it anymore. Apologies for my severe lag on this, but I've been working less on OSS stuff recently and only just today logged into GitHub.

Do we know if it's possible to get this merged at some point? @tjfontaine, if you're not going to actively manage these DNS repos, perhaps you might want to add some other project participants?

techguy613 avatar Dec 15 '17 21:12 techguy613