in sec/sign.go [284:313]
func (key *PubSignKey) Bytes() ([]byte, error) {
key.AssertValid()
var b []byte
var err error
typ, err := key.SigType()
if err != nil {
return nil, err
}
switch typ {
case SIG_TYPE_RSA2048, SIG_TYPE_RSA3072:
b, err = asn1.Marshal(*key.Rsa)
case SIG_TYPE_ECDSA224, SIG_TYPE_ECDSA256:
b, err = x509.MarshalPKIXPublicKey(key.Ec)
case SIG_TYPE_ED25519:
b, err = marshalEd25519([]byte(key.Ed25519))
default:
err = errors.Errorf("unknown sig type: %v", typ)
}
if err != nil {
return nil, err
}
return b, nil
}