diff options
author | 2019-10-16 08:32:11 +0200 | |
---|---|---|
committer | 2019-10-16 07:32:11 +0100 | |
commit | 9ccc736f6868fb63fa401e0c72343f91d63a3d07 (patch) | |
tree | 3f47093ae7184ac26d9fe76d0fda1ce213a81594 /plugin | |
parent | 34ffe2a0a5826b02cc56c83931c066f8d6715a18 (diff) | |
download | coredns-9ccc736f6868fb63fa401e0c72343f91d63a3d07.tar.gz coredns-9ccc736f6868fb63fa401e0c72343f91d63a3d07.tar.zst coredns-9ccc736f6868fb63fa401e0c72343f91d63a3d07.zip |
plugin/dnssec, plugin/sign: ed25519 support (#3380)
* add ed25519 dnskey support
Signed-off-by: Sean Liao <seankhliao@gmail.com>
* fix ed25519 type assertion
Signed-off-by: Sean Liao <seankhliao@gmail.com>
* clean up whitespace
Signed-off-by: Sean Liao <seankhliao@gmail.com>
Diffstat (limited to 'plugin')
-rw-r--r-- | plugin/dnssec/dnskey.go | 6 | ||||
-rw-r--r-- | plugin/sign/keys.go | 2 |
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 |