github.com/s7techlab/cckit@v0.10.5/identity/key.go (about) 1 package identity 2 3 import ( 4 "crypto/ecdsa" 5 "crypto/x509" 6 "encoding/pem" 7 8 "github.com/pkg/errors" 9 ) 10 11 func PrivateKey(keyBytes []byte) (*ecdsa.PrivateKey, error) { 12 keyPEM, _ := pem.Decode(keyBytes) 13 if keyPEM == nil { 14 return nil, ErrInvalidPEMStructure 15 } 16 17 key, err := x509.ParsePKCS8PrivateKey(keyPEM.Bytes) 18 if err != nil { 19 return nil, errors.Wrap(err, `failed to parse private key`) 20 } 21 return key.(*ecdsa.PrivateKey), nil 22 }