aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugin/dnssec/dnskey.go6
-rw-r--r--plugin/sign/keys.go2
2 files changed, 6 insertions, 2 deletions
diff --git a/plugin/dnssec/dnskey.go b/plugin/dnssec/dnskey.go
index 1a2cf9343..5c67fca08 100644
--- a/plugin/dnssec/dnskey.go
+++ b/plugin/dnssec/dnskey.go
@@ -9,8 +9,9 @@ import (
"time"
"github.com/coredns/coredns/request"
-
"github.com/miekg/dns"
+
+ "golang.org/x/crypto/ed25519"
)
// DNSKEY holds a DNSSEC public and private key used for on-the-fly signing.
@@ -55,6 +56,9 @@ func ParseKeyFile(pubFile, privFile string) (*DNSKEY, error) {
if s, ok := p.(*ecdsa.PrivateKey); ok {
return &DNSKEY{K: dk, D: dk.ToDS(dns.SHA256), s: s, tag: dk.KeyTag()}, nil
}
+ if s, ok := p.(ed25519.PrivateKey); ok {
+ return &DNSKEY{K: dk, D: dk.ToDS(dns.SHA256), s: s, tag: dk.KeyTag()}, nil
+ }
return &DNSKEY{K: dk, D: dk.ToDS(dns.SHA256), s: nil, tag: 0}, errors.New("no private key found")
}
diff --git a/plugin/sign/keys.go b/plugin/sign/keys.go
index 346175be0..03065e8b4 100644
--- a/plugin/sign/keys.go
+++ b/plugin/sign/keys.go
@@ -97,7 +97,7 @@ func readKeyPair(public, private string) (Pair, error) {
switch signer := privkey.(type) {
case *ecdsa.PrivateKey:
return Pair{Public: dnskey.(*dns.DNSKEY), KeyTag: dnskey.(*dns.DNSKEY).KeyTag(), Private: signer}, nil
- case *ed25519.PrivateKey:
+ case ed25519.PrivateKey:
return Pair{Public: dnskey.(*dns.DNSKEY), KeyTag: dnskey.(*dns.DNSKEY).KeyTag(), Private: signer}, nil
case *rsa.PrivateKey:
return Pair{Public: dnskey.(*dns.DNSKEY), KeyTag: dnskey.(*dns.DNSKEY).KeyTag(), Private: signer}, nil