use jwt.ParseECPrivateKeyFromPEM instead of the custom one
This commit is contained in:
parent
a3d26a73c3
commit
a5ac83c7b0
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue