type PrivateKey interface {
// Sign signs digest using key k. Sign(digest []byte) ([]byte, error)
// Return a public key paired with this private key PublicKey() PublicKey
}
PrivateKey represents a private key that can be used to
generate a public key and sign data