DataHoarder
588e83131a
All checks were successful
continuous-integration/drone/push Build is passing
76 lines
1.8 KiB
Go
76 lines
1.8 KiB
Go
package dns_api
|
|
|
|
import (
|
|
"net"
|
|
"testing"
|
|
)
|
|
|
|
const testZone = "example.com."
|
|
|
|
func TestRecordSign(t *testing.T) {
|
|
|
|
zone := NewZoneFromPrivateKey(testZone, DecodeTorPrivateKey(testPrivateKey))
|
|
t.Logf("zone name %s", zone.Name())
|
|
|
|
if err := zone.AddRecordA("test", net.IPv4(1, 2, 3, 4), 3600); err != nil {
|
|
t.Error(err)
|
|
}
|
|
if err := zone.AddRecordNS("@", "ns1."+zone.Name(), 3600*24); err != nil {
|
|
t.Error(err)
|
|
}
|
|
if err := zone.AddRecordNS("@", "ns2."+zone.Name(), 3600*24); err != nil {
|
|
t.Error(err)
|
|
}
|
|
if err := zone.AddRecordA("ns1", net.IPv4(1, 1, 1, 1), 3600*24); err != nil {
|
|
t.Error(err)
|
|
}
|
|
if err := zone.AddRecordA("ns2", net.IPv4(2, 2, 2, 2), 3600*24); err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
enforcedZone := NewZoneFromPublicKey(zone.BaseZoneName(), zone.PubKey())
|
|
if err := enforcedZone.AddRecordSOA("@", "ns1."+zone.Name(), "mail."+zone.Name(), 31337, 10800, 3600, 604800, 3600, 3600); err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
zone.SetEnforcedEntries(enforcedZone.GetRRSet())
|
|
|
|
zone.AddZoneAlias("testalias." + zone.BaseZoneName())
|
|
|
|
zones, err := zone.Sign()
|
|
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
for _, newZone := range zones {
|
|
t.Logf("====== ZONE %s ======", newZone.Name())
|
|
for _, rr := range newZone.GetRRSet() {
|
|
t.Logf(" %s\n", rr.String())
|
|
}
|
|
|
|
t.Logf("auto-generated GLUE records:")
|
|
for _, rr := range newZone.GetGlueRecords() {
|
|
t.Logf("GLUE: %s\n", rr.String())
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestRecordTopLevelCNAME(t *testing.T) {
|
|
|
|
zone := NewZoneFromPrivateKey(testZone, DecodeTorPrivateKey(testPrivateKey))
|
|
t.Logf("zone name %s", zone.Name())
|
|
|
|
if err := zone.AddRecordCNAME("@", "example.com.", 3600); err != nil {
|
|
t.Error(err)
|
|
}
|
|
|
|
_, err := zone.Sign()
|
|
|
|
if err == nil {
|
|
t.Error("expected CNAME error")
|
|
} else if err != TopLevelCNAMEError {
|
|
t.Error(err)
|
|
}
|
|
}
|