func (m *gpgmeSigningMechanism) Sign(input []byte, keyIdentity string) ([]byte, error) {
	key, err := m.ctx.GetKey(keyIdentity, true)
	if err != nil {
		return nil, err
	}
	inputData, err := gpgme.NewDataBytes(input)
	if err != nil {
		return nil, err
	}
	var sigBuffer bytes.Buffer
	sigData, err := gpgme.NewDataWriter(&sigBuffer)
	if err != nil {
		return nil, err
	}
	if err = m.ctx.Sign([]*gpgme.Key{key}, inputData, sigData, gpgme.SigModeNormal); err != nil {
		return nil, err
	}
	return sigBuffer.Bytes(), nil
}
func (m *gpgmeSigningMechanism) Sign(input []byte, keyIdentity string) ([]byte, error) {
	key, err := m.ctx.GetKey(keyIdentity, true)
	if err != nil {
		return nil, err
	}
	inputData, err := gpgme.NewDataBytes(input)
	if err != nil {
		return nil, err
	}
	var sigBuffer bytes.Buffer
	sigData, err := gpgme.NewDataWriter(&sigBuffer)
	if err != nil {
		return nil, err
	}
	if err = m.ctx.Sign([]*gpgme.Key{key}, inputData, sigData, gpgme.SigModeNormal); err != nil {
		return nil, err
	}
	return sigBuffer.Bytes(), nil
}
func ( m * gpgmeSigningMechanism ) Sign ( input [ ] byte , keyIdentity string ) ( [ ] byte , error ) { key , err := m . ctx . GetKey ( keyIdentity , true ) if err != nil { return nil , err } inputData , err := gpgme . NewDataBytes ( input ) if err != nil { return nil , err } var sigBuffer bytes . Buffer sigData , err := gpgme . NewDataWriter ( & sigBuffer ) if err != nil { return nil , err } if err = m . ctx . Sign ( [ ] * gpgme . Key { key } , inputData , sigData , gpgme . SigModeNormal ) ; err != nil { return nil , err } return sigBuffer . Bytes ( ) , nil }
// Sign creates a (non-detached) signature of input using keyIdentity.
// Fails with a SigningNotSupportedError if the mechanism does not support signing.
Sign creates a ( non - detached ) signature of input using keyIdentity . Fails with a SigningNotSupportedError if the mechanism does not support signing .