in image/create.go [244:281]
func GenerateSig(key sec.PrivSignKey, hash []byte) (sec.Sig, error) {
pub := key.PubKey()
typ, err := pub.SigType()
if err != nil {
return sec.Sig{}, err
}
var data []byte
switch typ {
case sec.SIG_TYPE_RSA2048, sec.SIG_TYPE_RSA3072:
data, err = GenerateSigRsa(key, hash)
case sec.SIG_TYPE_ECDSA224, sec.SIG_TYPE_ECDSA256:
data, err = GenerateSigEc(key, hash)
case sec.SIG_TYPE_ED25519:
data, err = GenerateSigEd25519(key, hash)
default:
err = errors.Errorf("unknown sig type: %v", typ)
}
if err != nil {
return sec.Sig{}, err
}
keyHash, err := pub.Hash()
if err != nil {
return sec.Sig{}, err
}
return sec.Sig{
Type: typ,
KeyHash: keyHash,
Data: data,
}, nil
}