// Extract the Curve public key from the Key record func (k *RR_DNSKEY) pubKeyCurve() *ecdsa.PublicKey { keybuf, err := packBase64([]byte(k.PublicKey)) if err != nil { return nil } var c *elliptic.Curve switch k.Algorithm { case ECDSAP256SHA256: c = elliptic.P256() case ECDSAP384SHA384: c = elliptic.P384() } x, y := c.Unmarshal(keybuf) pubkey := new(ecdsa.PublicKey) pubkey.X = x pubkey.Y = y pubkey.Curve = c return pubkey }