in sec/sign.go [172:192]
func ParsePrivSignKey(keyBytes []byte) (PrivSignKey, error) {
key := PrivSignKey{}
itf, err := parsePrivSignKeyItf(keyBytes)
if err != nil {
return key, err
}
switch priv := itf.(type) {
case *rsa.PrivateKey:
key.Rsa = priv
case *ecdsa.PrivateKey:
key.Ec = priv
case ed25519.PrivateKey:
key.Ed25519 = &priv
default:
return key, errors.Errorf("unknown private key type: %T", itf)
}
return key, nil
}