aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine-gpg.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine-gpg.c')
-rw-r--r--src/engine-gpg.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/engine-gpg.c b/src/engine-gpg.c
index 0768ea74..66303263 100644
--- a/src/engine-gpg.c
+++ b/src/engine-gpg.c
@@ -4173,6 +4173,29 @@ gpg_setownertrust (void *engine, gpgme_key_t key, const char *value)
}
+static gpgme_error_t
+gpg_getdirect (void *engine, const char *argv[],
+ gpgme_data_t dataout, unsigned int flags)
+{
+ engine_gpg_t gpg = engine;
+ gpgme_error_t err;
+ int i;
+
+ if (!engine || !argv || !dataout || flags)
+ return gpg_error (GPG_ERR_INV_VALUE);
+
+ for (i=0; !err && argv[i]; i++)
+ if ((err = add_arg (gpg, argv[i])))
+ return err;
+
+ err = add_data (gpg, dataout, 1, 1);
+ if (!err)
+ err = start (gpg);
+
+ return err;
+}
+
+
struct engine_ops _gpgme_engine_ops_gpg =
{
@@ -4214,6 +4237,7 @@ struct engine_ops _gpgme_engine_ops_gpg =
gpg_setexpire,
gpg_setownertrust,
NULL, /* opassuan_transact */
+ gpg_getdirect,
NULL, /* conf_load */
NULL, /* conf_save */
NULL, /* conf_dir */