diff options
Diffstat (limited to 'src/engine-gpg.c')
-rw-r--r-- | src/engine-gpg.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/engine-gpg.c b/src/engine-gpg.c index 376dad0a..b099f566 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -4017,6 +4017,38 @@ gpg_setexpire (void *engine, gpgme_key_t key, unsigned long expires, } +static gpgme_error_t +gpg_setownertrust (void *engine, gpgme_key_t key, const char *value) +{ + engine_gpg_t gpg = engine; + gpgme_error_t err; + + if (!have_gpg_version (gpg, "2.4.6")) + return gpg_error (GPG_ERR_NOT_SUPPORTED); + + if (!key || !key->fpr) + return gpg_error (GPG_ERR_INV_VALUE); + if (!value || !*value) + return gpg_error (GPG_ERR_INV_VALUE); + + err = add_arg (gpg, "--quick-set-ownertrust"); + + if (!err) + err = add_arg (gpg, "--"); + + if (!err) + err = add_arg (gpg, key->fpr); + + if (!err) + err = add_arg (gpg, value); + + if (!err) + err = start (gpg); + + return err; +} + + struct engine_ops _gpgme_engine_ops_gpg = { @@ -4056,6 +4088,7 @@ struct engine_ops _gpgme_engine_ops_gpg = gpg_verify, gpg_getauditlog, gpg_setexpire, + gpg_setownertrust, NULL, /* opassuan_transact */ NULL, /* conf_load */ NULL, /* conf_save */ |