in sec/sign.go [150:170]
func ParsePubSignKey(keyBytes []byte) (PubSignKey, error) {
key := PubSignKey{}
itf, err := parsePubPemKey(keyBytes)
if err != nil {
return key, err
}
switch pub := itf.(type) {
case *rsa.PublicKey:
key.Rsa = pub
case *ecdsa.PublicKey:
key.Ec = pub
case ed25519.PublicKey:
key.Ed25519 = pub
default:
return key, errors.Errorf("unknown public signing key type: %T", pub)
}
return key, nil
}