in sec/sign.go [238:248]
func (key *PubSignKey) AssertValid() {
if key.Rsa == nil && key.Ec == nil && key.Ed25519 == nil {
panic("invalid public key; neither RSA nor ECC nor ED25519")
}
if key.Ed25519 != nil {
if _, err := marshalEd25519(key.Ed25519); err != nil {
panic("invalid public ed25519 key")
}
}
}