aboutsummaryrefslogtreecommitdiffstats
path: root/src/engine-gpg.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-09-14 10:41:16 +0000
committerWerner Koch <[email protected]>2016-09-14 10:42:12 +0000
commitc943380b7a2cc9b32f81c22224fc6f92e8ea8469 (patch)
treeb55cc4419c35a32fcca9f895d80e25b3efc53fc1 /src/engine-gpg.c
parentcore: Change a parameter for the engine's genkey function. (diff)
downloadgpgme-c943380b7a2cc9b32f81c22224fc6f92e8ea8469.tar.gz
gpgme-c943380b7a2cc9b32f81c22224fc6f92e8ea8469.zip
core: New function gpgme_op_revuid.
* src/engine.h (GENKEY_EXTRAFLAG_REVOKE): New. * src/genkey.c (adduid_start): Rename to addrevuid_start. Add arg REVOKE and pass it as extraflags. Remove useless ARMOR extraflag. Adjust callers. (gpgme_op_revuid_start, gpgme_op_revuid): New. * src/gpgme.def, src/libgpgme.vers: Add them. * tests/run-genkey.c: Add option --revuid. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'src/engine-gpg.c')
-rw-r--r--src/engine-gpg.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/engine-gpg.c b/src/engine-gpg.c
index db6637a2..534d5d10 100644
--- a/src/engine-gpg.c
+++ b/src/engine-gpg.c
@@ -2115,14 +2115,19 @@ gpg_addkey (engine_gpg_t gpg,
static gpgme_error_t
gpg_adduid (engine_gpg_t gpg,
gpgme_key_t key,
- const char *userid)
+ const char *userid,
+ unsigned int extraflags)
{
gpgme_error_t err;
if (!key || !key->fpr || !userid)
return gpg_error (GPG_ERR_INV_ARG);
- err = add_arg (gpg, "--quick-adduid");
+ if ((extraflags & GENKEY_EXTRAFLAG_REVOKE))
+ err = add_arg (gpg, "--quick-revuid");
+ else
+ err = add_arg (gpg, "--quick-adduid");
+
if (!err)
err = add_arg (gpg, "--");
if (!err)
@@ -2184,7 +2189,7 @@ gpg_genkey (void *engine,
else if (!userid && key)
err = gpg_addkey (gpg, algo, expires, key, flags, extraflags);
else if (userid && key && !algo)
- err = gpg_adduid (gpg, key, userid);
+ err = gpg_adduid (gpg, key, userid, extraflags);
else
err = gpg_error (GPG_ERR_INV_VALUE);