code: func gogpgme_passfunc(hook unsafe.Pointer, uid_hint, passphrase_info *C.char, prev_was_bad, fd C.int) C.gpgme_error_t {
  	c := callbackLookup(uintptr(hook)).(*Context)
  	go_uid_hint := C.GoString(uid_hint)
  	f := os.NewFile(uintptr(fd), go_uid_hint)
  	defer f.Close()
  	err := c.callback(go_uid_hint, prev_was_bad != 0, f)
  	if err != nil {
  		return C.GPG_ERR_CANCELED
  	}
  	return 0
  }
docs: //export gogpgme_passfunc