From 98e4b33cb598260fd9890069c285389192c25607 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Thu, 24 Feb 2011 16:22:14 +0100 Subject: [PATCH] formatting and documentation --- dns.go | 46 ++++++++++---------- dnssec.go | 46 ++++++++++---------- dnssec_test.go | 114 ++++++++++++++++++++++++------------------------- edns.go | 42 +++++++++--------- msg.go | 54 +++++++++++------------ resolver.go | 2 +- types.go | 54 +++++++++++------------ 7 files changed, 179 insertions(+), 179 deletions(-) diff --git a/dns.go b/dns.go index 84f0c6c4..1c15272d 100644 --- a/dns.go +++ b/dns.go @@ -99,36 +99,36 @@ func (h *RR_Header) String() string { } s = s + strconv.Itoa(int(h.Ttl)) + "\t" - if _, ok := Class_str[h.Class]; ok { - s += Class_str[h.Class] + "\t" - } else { - s += "CLASS" + strconv.Itoa(int(h.Class)) + "\t" - } + if _, ok := Class_str[h.Class]; ok { + s += Class_str[h.Class] + "\t" + } else { + s += "CLASS" + strconv.Itoa(int(h.Class)) + "\t" + } - if _, ok := Rr_str[h.Rrtype]; ok { - s += Rr_str[h.Rrtype] + "\t" - } else { - s += "TYPE" + strconv.Itoa(int(h.Rrtype)) + "\t" - } + if _, ok := Rr_str[h.Rrtype]; ok { + s += Rr_str[h.Rrtype] + "\t" + } else { + s += "TYPE" + strconv.Itoa(int(h.Rrtype)) + "\t" + } return s } // Return the number of labels in a domain name. func LabelCount(a string) (c uint8) { - // walk the string and count the dots - // except when it is escaped - esc := false + // walk the string and count the dots + // except when it is escaped + esc := false for _, v := range a { - switch v { - case '.': - if esc { - esc = !esc - continue - } - c++ - case '\\': - esc = true - } + switch v { + case '.': + if esc { + esc = !esc + continue + } + c++ + case '\\': + esc = true + } } return } diff --git a/dnssec.go b/dnssec.go index 5b619bac..683a021c 100644 --- a/dnssec.go +++ b/dnssec.go @@ -1,7 +1,7 @@ package dns import ( - "crypto" + "crypto" "crypto/md5" "crypto/sha1" "crypto/sha256" @@ -57,7 +57,7 @@ type dnskeyWireFmt struct { Flags uint16 Protocol uint8 Algorithm uint8 - PublicKey string "base64" + PublicKey string "base64" /* Nothing is left out */ } @@ -157,8 +157,8 @@ func (s *RR_RRSIG) Sign(k PrivateKey, rrset RRset) bool { } // s.Inception and s.Expiration may be 0 (rollover etc.), the rest must be set if s.KeyTag == 0 || len(s.SignerName) == 0 || s.Algorithm == 0 { - return false - } + return false + } s.Hdr.Rrtype = TypeRRSIG s.Hdr.Name = rrset[0].Header().Name @@ -167,11 +167,11 @@ func (s *RR_RRSIG) Sign(k PrivateKey, rrset RRset) bool { s.TypeCovered = rrset[0].Header().Rrtype s.TypeCovered = rrset[0].Header().Rrtype s.Labels = LabelCount(rrset[0].Header().Name) - if strings.HasPrefix(rrset[0].Header().Name, "*") { - s.Labels-- // wildcards, remove from label count - } + if strings.HasPrefix(rrset[0].Header().Name, "*") { + s.Labels-- // wildcards, remove from label count + } - sort.Sort(rrset) + sort.Sort(rrset) sigwire := new(rrsigWireFmt) sigwire.TypeCovered = s.TypeCovered @@ -190,10 +190,10 @@ func (s *RR_RRSIG) Sign(k PrivateKey, rrset RRset) bool { return false } signdata = signdata[:n] - wire := rawSignatureData(rrset, s) - if wire == nil { - return false - } + wire := rawSignatureData(rrset, s) + if wire == nil { + return false + } signdata = append(signdata, wire...) var signature []byte @@ -269,8 +269,8 @@ func (s *RR_RRSIG) Verify(k *RR_DNSKEY, rrset RRset) bool { if r.Header().Rrtype != s.TypeCovered { return false } - //wildcards! - //if LabelCount(r.Header().Name) > s.Labels + //wildcards! + //if LabelCount(r.Header().Name) > s.Labels } sort.Sort(rrset) @@ -292,11 +292,11 @@ func (s *RR_RRSIG) Verify(k *RR_DNSKEY, rrset RRset) bool { return false } signeddata = signeddata[:n] - wire := rawSignatureData(rrset, s) - if wire == nil { - return false - } - signeddata = append(signeddata, wire...) + wire := rawSignatureData(rrset, s) + if wire == nil { + return false + } + signeddata = append(signeddata, wire...) sigbuf := s.sigBuf() // Get the binary signature data @@ -424,7 +424,7 @@ func rawSignatureData(rrset RRset, s *RR_RRSIG) (buf []byte) { } // 6.2. Canonical RR Form. (4) - wildcards - // dont have to do anything + // dont have to do anything // 6.2. Canonical RR Form. (5) - origTTL ttl := h.Ttl @@ -440,9 +440,9 @@ func rawSignatureData(rrset RRset, s *RR_RRSIG) (buf []byte) { if !ok1 { return nil } - buf = append(buf, wire...) - } - return + buf = append(buf, wire...) + } + return } // Map for algorithm names. diff --git a/dnssec_test.go b/dnssec_test.go index ef2a9214..45e27cba 100644 --- a/dnssec_test.go +++ b/dnssec_test.go @@ -2,27 +2,27 @@ package dns import ( "testing" - "strings" + "strings" ) func TestSecure(t *testing.T) { - soa := new(RR_SOA) + soa := new(RR_SOA) soa.Hdr = RR_Header{"miek.nl.", TypeSOA, ClassINET, 14400, 0} soa.Ns = "open.nlnetlabs.nl." - soa.Mbox = "miekg.atoom.net." - soa.Serial = 1293945905 - soa.Refresh = 14400 - soa.Retry = 3600 - soa.Expire = 604800 - soa.Minttl = 86400 + soa.Mbox = "miekg.atoom.net." + soa.Serial = 1293945905 + soa.Refresh = 14400 + soa.Retry = 3600 + soa.Expire = 604800 + soa.Minttl = 86400 sig := new(RR_RRSIG) - sig.Hdr = RR_Header{"miek.nl.", TypeRRSIG, ClassINET, 14400, 0} + sig.Hdr = RR_Header{"miek.nl.", TypeRRSIG, ClassINET, 14400, 0} sig.TypeCovered = TypeSOA sig.Algorithm = AlgRSASHA256 sig.Labels = 2 - sig.Expiration = 1296534305 // date -u '+%s' -d"2011-02-01 04:25:05" - sig.Inception = 1293942305 // date -u '+%s' -d"2011-01-02 04:25:05" + sig.Expiration = 1296534305 // date -u '+%s' -d"2011-02-01 04:25:05" + sig.Inception = 1293942305 // date -u '+%s' -d"2011-01-02 04:25:05" sig.OrigTtl = 14400 sig.KeyTag = 12051 sig.SignerName = "miek.nl." @@ -37,11 +37,11 @@ func TestSecure(t *testing.T) { key.Algorithm = AlgRSASHA256 key.PublicKey = "AwEAAcNEU67LJI5GEgF9QLNqLO1SMq1EdoQ6E9f85ha0k0ewQGCblyW2836GiVsm6k8Kr5ECIoMJ6fZWf3CQSQ9ycWfTyOHfmI3eQ/1Covhb2y4bAmL/07PhrL7ozWBW3wBfM335Ft9xjtXHPy7ztCbV9qZ4TVDTW/Iyg0PiwgoXVesz" - // It should validate. Period is checked seperately, so this will keep on working - if ! sig.Verify(key, []RR{soa}) { - t.Log("Failure to validate") - t.Fail() - } + // It should validate. Period is checked seperately, so this will keep on working + if !sig.Verify(key, []RR{soa}) { + t.Log("Failure to validate") + t.Fail() + } } func TestSignature(t *testing.T) { @@ -87,7 +87,7 @@ func TestSignVerify(t *testing.T) { // With this key key := new(RR_DNSKEY) - key.Hdr.Rrtype = TypeDNSKEY + key.Hdr.Rrtype = TypeDNSKEY key.Hdr.Name = "miek.nl." key.Hdr.Class = ClassINET key.Hdr.Ttl = 14400 @@ -116,7 +116,7 @@ func TestSignVerify(t *testing.T) { if !sig.Verify(key, []RR{soa}) { t.Log("Failure to validate") t.Fail() - } + } } func TestKeyGen(t *testing.T) { @@ -128,7 +128,7 @@ func TestKeyGen(t *testing.T) { key.Flags = 256 key.Protocol = 3 key.Algorithm = AlgRSASHA256 - key.Generate(512) + key.Generate(512) } @@ -183,7 +183,7 @@ func TestDnskey(t *testing.T) { func TestTag(t *testing.T) { key := new(RR_DNSKEY) key.Hdr.Name = "miek.nl." - key.Hdr.Rrtype = TypeDNSKEY + key.Hdr.Rrtype = TypeDNSKEY key.Hdr.Class = ClassINET key.Hdr.Ttl = 3600 key.Flags = 256 @@ -191,57 +191,57 @@ func TestTag(t *testing.T) { key.Algorithm = AlgRSASHA256 key.PublicKey = "AwEAAcNEU67LJI5GEgF9QLNqLO1SMq1EdoQ6E9f85ha0k0ewQGCblyW2836GiVsm6k8Kr5ECIoMJ6fZWf3CQSQ9ycWfTyOHfmI3eQ/1Covhb2y4bAmL/07PhrL7ozWBW3wBfM335Ft9xjtXHPy7ztCbV9qZ4TVDTW/Iyg0PiwgoXVesz" - tag := key.KeyTag() - if tag != 12051 { - t.Logf("%v\n", key) - t.Logf("Wrong key tag: %d\n", tag) - t.Fail() - } + tag := key.KeyTag() + if tag != 12051 { + t.Logf("%v\n", key) + t.Logf("Wrong key tag: %d\n", tag) + t.Fail() + } } func TestKeyGenRSA(t *testing.T) { - return // Tijdelijk uit TODO(mg) + return // Tijdelijk uit TODO(mg) key := new(RR_DNSKEY) key.Hdr.Name = "miek.nl." - key.Hdr.Rrtype = TypeDNSKEY + key.Hdr.Rrtype = TypeDNSKEY key.Hdr.Class = ClassINET key.Hdr.Ttl = 3600 key.Flags = 256 key.Protocol = 3 key.Algorithm = AlgRSASHA256 - length := 2048 - priv, _ := key.Generate(length) + length := 2048 + priv, _ := key.Generate(length) - soa := new(RR_SOA) - soa.Hdr = RR_Header{"miek.nl.", TypeSOA, ClassINET, 14400, 0} - soa.Ns = "open.nlnetlabs.nl." - soa.Mbox = "miekg.atoom.net." - soa.Serial = 1293945905 - soa.Refresh = 14400 - soa.Retry = 3600 - soa.Expire = 604800 - soa.Minttl = 86400 + soa := new(RR_SOA) + soa.Hdr = RR_Header{"miek.nl.", TypeSOA, ClassINET, 14400, 0} + soa.Ns = "open.nlnetlabs.nl." + soa.Mbox = "miekg.atoom.net." + soa.Serial = 1293945905 + soa.Refresh = 14400 + soa.Retry = 3600 + soa.Expire = 604800 + soa.Minttl = 86400 - sig := new(RR_RRSIG) - sig.Hdr = RR_Header{"miek.nl.", TypeRRSIG, ClassINET, 14400, 0} - sig.TypeCovered = TypeSOA - sig.Algorithm = AlgRSASHA256 - sig.Labels = 2 - sig.Expiration = 1296534305 // date -u '+%s' -d"2011-02-01 04:25:05" - sig.Inception = 1293942305 // date -u '+%s' -d"2011-01-02 04:25:05" - sig.OrigTtl = 14400 - sig.KeyTag = key.KeyTag() - sig.SignerName = "miek.nl." + sig := new(RR_RRSIG) + sig.Hdr = RR_Header{"miek.nl.", TypeRRSIG, ClassINET, 14400, 0} + sig.TypeCovered = TypeSOA + sig.Algorithm = AlgRSASHA256 + sig.Labels = 2 + sig.Expiration = 1296534305 // date -u '+%s' -d"2011-02-01 04:25:05" + sig.Inception = 1293942305 // date -u '+%s' -d"2011-01-02 04:25:05" + sig.OrigTtl = 14400 + sig.KeyTag = key.KeyTag() + sig.SignerName = "miek.nl." - sig.Sign(priv, []RR{soa}) - //s := key.PrivateKeyString(priv) + sig.Sign(priv, []RR{soa}) + //s := key.PrivateKeyString(priv) } func TestKeyToDS(t *testing.T) { key := new(RR_DNSKEY) key.Hdr.Name = "miek.nl" - key.Hdr.Rrtype = TypeDNSKEY + key.Hdr.Rrtype = TypeDNSKEY key.Hdr.Class = ClassINET key.Hdr.Ttl = 3600 key.Flags = 256 @@ -249,9 +249,9 @@ func TestKeyToDS(t *testing.T) { key.Algorithm = AlgRSASHA256 key.PublicKey = "AwEAAcNEU67LJI5GEgF9QLNqLO1SMq1EdoQ6E9f85ha0k0ewQGCblyW2836GiVsm6k8Kr5ECIoMJ6fZWf3CQSQ9ycWfTyOHfmI3eQ/1Covhb2y4bAmL/07PhrL7ozWBW3wBfM335Ft9xjtXHPy7ztCbV9qZ4TVDTW/Iyg0PiwgoXVesz" - ds := key.ToDS(HashSHA1) - if strings.ToUpper(ds.Digest) != "B5121BDB5B8D86D0CC5FFAFBAAABE26C3E20BAC1" { - t.Logf("Wrong DS digest for Sha1\n%v\n", ds) - t.Fail() - } + ds := key.ToDS(HashSHA1) + if strings.ToUpper(ds.Digest) != "B5121BDB5B8D86D0CC5FFAFBAAABE26C3E20BAC1" { + t.Logf("Wrong DS digest for Sha1\n%v\n", ds) + t.Fail() + } } diff --git a/edns.go b/edns.go index f1736dac..497d9431 100644 --- a/edns.go +++ b/edns.go @@ -2,7 +2,7 @@ package dns import ( "strconv" - "encoding/hex" + "encoding/hex" ) // EDNS0 Options @@ -61,14 +61,14 @@ func (rr *RR_OPT) String() string { switch o.Code { case OptionCodeNSID: s += "\n; NSID: " + o.Data - h, e := hex.DecodeString(o.Data) - var r string - if e == nil { - for _, c := range h { - r += "(" + string(c) + ")" - } - s += " " + r - } + h, e := hex.DecodeString(o.Data) + var r string + if e == nil { + for _, c := range h { + r += "(" + string(c) + ")" + } + s += " " + r + } } } return s @@ -76,7 +76,7 @@ func (rr *RR_OPT) String() string { // Get the EDNS version (always 0 currently). func (rr *RR_OPT) Version() uint8 { - return 0 + return 0 } // Set the version of EDNS. @@ -106,17 +106,17 @@ func (rr *RR_OPT) SetUDPSize(size uint16) { // Get the DO bit. func (rr *RR_OPT) Do() bool { - return byte(rr.Hdr.Ttl >> 8) &_DO == _DO + return byte(rr.Hdr.Ttl>>8)&_DO == _DO } -// Set the DO bit +// Set the DO bit. func (rr *RR_OPT) SetDo() { - b1 := byte(rr.Hdr.Ttl >> 24) - b2 := byte(rr.Hdr.Ttl >> 16) - b3 := byte(rr.Hdr.Ttl >> 8) - b4 := byte(rr.Hdr.Ttl) - b3 |= _DO // Set it - rr.Hdr.Ttl = uint32(b1)<<24 | uint32(b2)<<16 | uint32(b3)<<8 | uint32(b4) + b1 := byte(rr.Hdr.Ttl >> 24) + b2 := byte(rr.Hdr.Ttl >> 16) + b3 := byte(rr.Hdr.Ttl >> 8) + b4 := byte(rr.Hdr.Ttl) + b3 |= _DO // Set it + rr.Hdr.Ttl = uint32(b1)<<24 | uint32(b2)<<16 | uint32(b3)<<8 | uint32(b4) } // Return the NSID as hex string. @@ -126,7 +126,7 @@ func (rr *RR_OPT) Nsid() string { // Set the NSID from a string which is represented as hex characters. func (rr *RR_OPT) SetNsid(hexnsid string) { - rr.Option = make([]Option, 1) // TODO(mg) check length first? - rr.Option[0].Code = OptionCodeNSID - rr.Option[0].Data = hexnsid + rr.Option = make([]Option, 1) // TODO(mg) check length first? + rr.Option[0].Code = OptionCodeNSID + rr.Option[0].Data = hexnsid } diff --git a/msg.go b/msg.go index 025408da..7190eb47 100644 --- a/msg.go +++ b/msg.go @@ -90,7 +90,7 @@ var Rr_str = map[uint16]string{ TypeAXFR: "AXFR", // Meta RR TypeIXFR: "IXFR", // Meta RR TypeALL: "ANY", // Meta RR - TypeURI: "URI", + TypeURI: "URI", TypeTA: "TA", TypeDLV: "DLV", } @@ -158,28 +158,28 @@ func packDomainName(s string, msg []byte, off int) (off1 int, ok bool) { // Emit sequence of counted strings, chopping at dots. begin := 0 - bs := []byte(s) - ls := len(bs) + bs := []byte(s) + ls := len(bs) for i := 0; i < ls; i++ { if bs[i] == '\\' { - for j := i; j < len(s)-1; j++ { - bs[j] = bs[j+1] - } - ls-- - continue + for j := i; j < len(s)-1; j++ { + bs[j] = bs[j+1] + } + ls-- + continue } if bs[i] == '.' { - if i-begin >= 1<<6 { // top two bits of length must be clear - return len(msg), false - } - msg[off] = byte(i - begin) - off++ - for j := begin; j < i; j++ { - msg[off] = bs[j] - off++ - } - begin = i + 1 + if i-begin >= 1<<6 { // top two bits of length must be clear + return len(msg), false + } + msg[off] = byte(i - begin) + off++ + for j := begin; j < i; j++ { + msg[off] = bs[j] + off++ + } + begin = i + 1 } } // Root label is special @@ -224,15 +224,15 @@ Loop: if off+c > len(msg) { return "", len(msg), false } - for j := off; j < off+c; j++ { - if msg[j] == '.' { - // literal dot, escape it - s += "\\." - } else { - s += string(msg[j]) - } - } - s += "." + for j := off; j < off+c; j++ { + if msg[j] == '.' { + // literal dot, escape it + s += "\\." + } else { + s += string(msg[j]) + } + } + s += "." off += c case 0xC0: // pointer to somewhere else in msg. diff --git a/resolver.go b/resolver.go index bc239d2f..1c1994d9 100644 --- a/resolver.go +++ b/resolver.go @@ -95,7 +95,7 @@ func (res *Resolver) Query(q *Msg) (d *Msg, err os.Error) { } // Start an AXFR, q should contain a message with the question -// for an AXFR ("miek.nl" ANY AXFR. All incoming axfr snippets +// for an AXFR: "miek.nl" ANY AXFR. All incoming axfr snippets // are returned on the channel m. The function closes the // channel to signal the end of the AXFR. func (res *Resolver) Axfr(q *Msg, m chan *Msg) { diff --git a/types.go b/types.go index a3d9a8b6..b1eb0064 100644 --- a/types.go +++ b/types.go @@ -65,8 +65,8 @@ const ( TypeMAILB = 253 TypeMAILA = 254 TypeALL = 255 - // newly defined types - TypeURI = 256 + // newly defined types + TypeURI = 256 TypeTA = 32768 TypeDLV = 32769 @@ -464,11 +464,11 @@ func (rr *RR_NSEC) Header() *RR_Header { func (rr *RR_NSEC) String() string { s := rr.Hdr.String() + rr.NextDomain for i := 0; i < len(rr.TypeBitMap); i++ { - if _, ok := Rr_str[rr.TypeBitMap[i]]; ok { - s += " " + Rr_str[rr.TypeBitMap[i]] - } else { - s += " " + "TYPE" + strconv.Itoa(int(rr.TypeBitMap[i])) - } + if _, ok := Rr_str[rr.TypeBitMap[i]]; ok { + s += " " + Rr_str[rr.TypeBitMap[i]] + } else { + s += " " + "TYPE" + strconv.Itoa(int(rr.TypeBitMap[i])) + } } return s } @@ -605,11 +605,11 @@ func (rr *RR_NSEC3) String() string { " " + strings.ToUpper(rr.Salt) + " " + rr.NextDomain for i := 0; i < len(rr.TypeBitMap); i++ { - if _, ok := Rr_str[rr.TypeBitMap[i]]; ok { - s += " " + Rr_str[rr.TypeBitMap[i]] - } else { - s += " " + "TYPE" + strconv.Itoa(int(rr.TypeBitMap[i])) - } + if _, ok := Rr_str[rr.TypeBitMap[i]]; ok { + s += " " + Rr_str[rr.TypeBitMap[i]] + } else { + s += " " + "TYPE" + strconv.Itoa(int(rr.TypeBitMap[i])) + } } return s } @@ -636,7 +636,7 @@ func (rr *RR_NSEC3PARAM) String() string { return s } -// See RFC 4408 +// See RFC 4408. type RR_SPF struct { Hdr RR_Header Txt string @@ -674,25 +674,25 @@ func (rr *RR_TKEY) String() string { // Unknown RR representation type RR_RFC3597 struct { - Hdr RR_Header - Rdata string "hex" + Hdr RR_Header + Rdata string "hex" } func (rr *RR_RFC3597) Header() *RR_Header { - return &rr.Hdr + return &rr.Hdr } func (rr *RR_RFC3597) String() string { - s := rr.Hdr.String() - s += "\\# " + strconv.Itoa(len(rr.Rdata)/2) + " " + rr.Rdata - return s + s := rr.Hdr.String() + s += "\\# " + strconv.Itoa(len(rr.Rdata)/2) + " " + rr.Rdata + return s } type RR_URI struct { - Hdr RR_Header - Priority uint16 - Weight uint16 - Target string + Hdr RR_Header + Priority uint16 + Weight uint16 + Target string } func (rr *RR_URI) Header() *RR_Header { @@ -700,9 +700,9 @@ func (rr *RR_URI) Header() *RR_Header { } func (rr *RR_URI) String() string { - return rr.Hdr.String() + strconv.Itoa(int(rr.Priority)) + - " " + strconv.Itoa(int(rr.Weight)) + - " " + rr.Target + return rr.Hdr.String() + strconv.Itoa(int(rr.Priority)) + + " " + strconv.Itoa(int(rr.Weight)) + + " " + rr.Target } // Translate the RRSIG's incep. and expir. time to the correct date. @@ -754,7 +754,7 @@ var rr_mk = map[int]func() RR{ TypeNSEC3PARAM: func() RR { return new(RR_NSEC3PARAM) }, TypeTKEY: func() RR { return new(RR_TKEY) }, TypeTSIG: func() RR { return new(RR_TSIG) }, - TypeURI: func() RR { return new(RR_URI) }, + TypeURI: func() RR { return new(RR_URI) }, TypeTA: func() RR { return new(RR_TA) }, TypeDLV: func() RR { return new(RR_DLV) }, }