skynetservices/skydns

skydns can't build with go 1.7

ZeaLoVe opened this issue · 2 comments

with error:
..\github.com\skynetservices\skydns\server\dnssec.go:45: impossible type assertion:
*rsa.PrivateKey does not implement dns.PrivateKey (wrong type for Sign method)
have Sign(io.Reader, []byte, crypto.SignerOpts) ([]byte, error)
want Sign([]byte, uint8) ([]byte, error)
..\github.com\skynetservices\skydns\server\dnssec.go:48: impossible type assertion:
*ecdsa.PrivateKey does not implement dns.PrivateKey (wrong type for Sign method)
have Sign(io.Reader, []byte, crypto.SignerOpts) ([]byte, error)
want Sign([]byte, uint8) ([]byte, error)
..\github.com\skynetservices\skydns\server\dnssec.go:130: cannot use s.config.PrivKey (type crypto.Signer) as type dns.PrivateKey in argument to sig1.Sign:
crypto.Signer does not implement dns.PrivateKey (wrong type for Sign method)
have Sign(io.Reader, []byte, crypto.SignerOpts) ([]byte, error)
want Sign([]byte, uint8) ([]byte, error)

It like the interface in package crypto has changed, but skydns use the older one?
Does anybody know how to fix it ?

the error happened on my windows pc, I retry on my linux system, built success...maybe just something wrong with my go config ...

it's case by version of dns lib:github.com/miekg/dns, I got the code a years ago , go get can't get the latest one . so I remove the dir retry go get to fix it .

miekg commented

[ Quoting notifications@github.com in "[skynetservices/skydns] skydns can'..." ]

with error:
..\github.com\skynetservices\skydns\server\dnssec.go:45: impossible type assertion:
*rsa.PrivateKey does not implement dns.PrivateKey (wrong type for Sign method)
have Sign(io.Reader, []byte, crypto.SignerOpts) ([]byte, error)
want Sign([]byte, uint8) ([]byte, error)
..\github.com\skynetservices\skydns\server\dnssec.go:48: impossible type assertion:
*ecdsa.PrivateKey does not implement dns.PrivateKey (wrong type for Sign method)
have Sign(io.Reader, []byte, crypto.SignerOpts) ([]byte, error)
want Sign([]byte, uint8) ([]byte, error)
..\github.com\skynetservices\skydns\server\dnssec.go:130: cannot use s.config.PrivKey (type crypto.Signer) as type dns.PrivateKey in argument to sig1.Sign:
crypto.Signer does not implement dns.PrivateKey (wrong type for Sign method)
have Sign(io.Reader, []byte, crypto.SignerOpts) ([]byte, error)
want Sign([]byte, uint8) ([]byte, error)

It like the interface in package crypto has changed, but skydns use the older one?
Does anybody know how to fix it ?

Strange... Think your dependencies are out of date.