diff options
author | Werner Koch <[email protected]> | 2010-01-08 19:15:06 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2010-01-08 19:15:06 +0000 |
commit | 1b2fb1b737d1a0928cc9f7a210c9dbc5f374adff (patch) | |
tree | 07993ac73bb60ffaf4c6e4faef9eb35b7c768899 /src/engine-gpg.c | |
parent | 2010-01-07 Marcus Brinkmann <[email protected]> (diff) | |
download | gpgme-1b2fb1b737d1a0928cc9f7a210c9dbc5f374adff.tar.gz gpgme-1b2fb1b737d1a0928cc9f7a210c9dbc5f374adff.zip |
Support gpgme_op_apsswd for GPG.
Diffstat (limited to '')
-rw-r--r-- | src/engine-gpg.c | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/src/engine-gpg.c b/src/engine-gpg.c index d4683b6e..abfaaa3c 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -1,7 +1,7 @@ /* engine-gpg.c - Gpg Engine. Copyright (C) 2000 Werner Koch (dd9jn) Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, - 2009 g10 Code GmbH + 2009, 2010 g10 Code GmbH This file is part of GPGME. @@ -1437,6 +1437,24 @@ gpg_delete (void *engine, gpgme_key_t key, int allow_secret) static gpgme_error_t +gpg_passwd (void *engine, gpgme_key_t key, unsigned int flags) +{ + engine_gpg_t gpg = engine; + gpgme_error_t err; + + if (!key || !key->subkeys || !key->subkeys->fpr) + return gpg_error (GPG_ERR_INV_CERT_OBJ); + + err = add_arg (gpg, "--passwd"); + if (!err) + err = add_arg (gpg, key->subkeys->fpr); + if (!err) + start (gpg); + return err; +} + + +static gpgme_error_t append_args_from_signers (engine_gpg_t gpg, gpgme_ctx_t ctx /* FIXME */) { gpgme_error_t err = 0; @@ -2370,5 +2388,6 @@ struct engine_ops _gpgme_engine_ops_gpg = gpg_set_io_cbs, gpg_io_event, gpg_cancel, - NULL /* cancel_op */ + NULL, /* cancel_op */ + gpg_passwd }; |