aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine-gpg.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2010-01-08 19:15:06 +0000
committerWerner Koch <[email protected]>2010-01-08 19:15:06 +0000
commit1b2fb1b737d1a0928cc9f7a210c9dbc5f374adff (patch)
tree07993ac73bb60ffaf4c6e4faef9eb35b7c768899 /src/engine-gpg.c
parent2010-01-07 Marcus Brinkmann <[email protected]> (diff)
downloadgpgme-1b2fb1b737d1a0928cc9f7a210c9dbc5f374adff.tar.gz
gpgme-1b2fb1b737d1a0928cc9f7a210c9dbc5f374adff.zip
Support gpgme_op_apsswd for GPG.
Diffstat (limited to '')
-rw-r--r--src/engine-gpg.c23
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
};