diff --git a/forms/apple_client_secret_create.go b/forms/apple_client_secret_create.go index 990982cf..d5bfe983 100644 --- a/forms/apple_client_secret_create.go +++ b/forms/apple_client_secret_create.go @@ -1,9 +1,6 @@ package forms import ( - "crypto/ecdsa" - "crypto/x509" - "encoding/pem" "regexp" "strings" "time" @@ -68,7 +65,7 @@ func (form *AppleClientSecretCreate) Submit() (string, error) { return "", err } - signKey, err := parsePKCS8PrivateKeyFromPEM([]byte(strings.TrimSpace(form.PrivateKey))) + signKey, err := jwt.ParseECPrivateKeyFromPEM([]byte(strings.TrimSpace(form.PrivateKey))) if err != nil { return "", err } @@ -88,25 +85,3 @@ func (form *AppleClientSecretCreate) Submit() (string, error) { return token.SignedString(signKey) } - -// parsePKCS8PrivateKeyFromPEM parses PEM encoded Elliptic Curve Private Key Structure. -// -// https://github.com/dgrijalva/jwt-go/issues/179 -func parsePKCS8PrivateKeyFromPEM(key []byte) (*ecdsa.PrivateKey, error) { - block, _ := pem.Decode(key) - if block == nil { - return nil, jwt.ErrKeyMustBePEMEncoded - } - - parsedKey, err := x509.ParsePKCS8PrivateKey(block.Bytes) - if err != nil { - return nil, err - } - - pkey, ok := parsedKey.(*ecdsa.PrivateKey) - if !ok { - return nil, jwt.ErrNotECPrivateKey - } - - return pkey, nil -}