gpgme.go
func (c *Context) AssuanSend(
	cmd string,
	data AssuanDataCallback,
	inquiry AssuanInquireCallback,
	status AssuanStatusCallback,
) error {
	var operr C.gpgme_error_t

	dataPtr := callbackAdd(&data)
	inquiryPtr := callbackAdd(&inquiry)
	statusPtr := callbackAdd(&status)
	cmdCStr := C.CString(cmd)
	defer C.free(unsafe.Pointer(cmdCStr))
	err := C.gogpgme_op_assuan_transact_ext(
		c.ctx,
		cmdCStr,
		C.uintptr_t(dataPtr),
		C.uintptr_t(inquiryPtr),
		C.uintptr_t(statusPtr),
		&operr,
	)

	if handleError(operr) != nil {
		return handleError(operr)
	}
	return handleError(err)
}
func (c *Context) AssuanSend(
	cmd string,
	data AssuanDataCallback,
	inquiry AssuanInquireCallback,
	status AssuanStatusCallback,
) error {
	var operr C.gpgme_error_t

	dataPtr := callbackAdd(&data)
	inquiryPtr := callbackAdd(&inquiry)
	statusPtr := callbackAdd(&status)
	cmdCStr := C.CString(cmd)
	defer C.free(unsafe.Pointer(cmdCStr))
	err := C.gogpgme_op_assuan_transact_ext(
		c.ctx,
		cmdCStr,
		C.uintptr_t(dataPtr),
		C.uintptr_t(inquiryPtr),
		C.uintptr_t(statusPtr),
		&operr,
	)

	if handleError(operr) != nil {
		return handleError(operr)
	}
	return handleError(err)
}
// AssuanSend sends a raw Assuan command to gpg-agent