diff --git a/openpgp/ecdsa/ecdsa.go b/openpgp/ecdsa/ecdsa.go index f94ae1b2..61361b47 100644 --- a/openpgp/ecdsa/ecdsa.go +++ b/openpgp/ecdsa/ecdsa.go @@ -3,10 +3,12 @@ package ecdsa import ( + "crypto/elliptic" "errors" - "github.com/ProtonMail/go-crypto/openpgp/internal/ecc" "io" "math/big" + + "github.com/ProtonMail/go-crypto/openpgp/internal/ecc" ) type PublicKey struct { @@ -19,6 +21,14 @@ type PrivateKey struct { D *big.Int } +// NewPublicKeyFromCurve takes an elliptic curve, and returns a PublicKey +// of that curve type. +func NewPublicKeyFromCurve(c elliptic.Curve) *PublicKey { + return &PublicKey{ + curve: ecc.NewGenericCurve(c), + } +} + func NewPublicKey(curve ecc.ECDSACurve) *PublicKey { return &PublicKey{ curve: curve,