return 0;
gpgme_data_t in = NULL; gpgme_data_t out = NULL; gpgme_error_t err; gpgme_ctx_t ctx = NULL; struct decrypt_key_s *hd;  err = gpgme_data_new_from_file (&in, infile, 1); if (err) return err;  hd = xcalloc (1, sizeof *hd); err = gpgme_new (&ctx); if (err) goto fail; gpgme_set_passphrase_cb (ctx, passphrase_callback_box, hd);  err = gpgme_data_new (&out); if (err) goto fail;  err = gpgme_op_decrypt (ctx, in, out); if (!err) err = data_to_file (&out, outfile);  fail: if (in != NULL) gpgme_data_release (in); if (out != NULL) gpgme_data_release (out); if (ctx != NULL) gpgme_release (ctx); xfree (hd); return err;
op_decrypt_file (const char *infile, const char *outfile){    return 0;}