aboutsummaryrefslogtreecommitdiffstats
path: root/tests/run-genkey.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run-genkey.c')
-rw-r--r--tests/run-genkey.c26
1 files changed, 24 insertions, 2 deletions
diff --git a/tests/run-genkey.c b/tests/run-genkey.c
index 959e2ea1..20e7db50 100644
--- a/tests/run-genkey.c
+++ b/tests/run-genkey.c
@@ -203,9 +203,11 @@ show_usage (int ex)
" args: USERID [ALGO [USAGE [EXPIRESECONDS]]]\n"
" for addkey: FPR [ALGO [USAGE [EXPIRESECONDS]]]\n"
" for adduid: FPR USERID\n"
+ " for revuid: FPR USERID\n"
"Options:\n"
" --addkey add a subkey to the key with FPR\n"
" --adduid add a user id to the key with FPR\n"
+ " --revuid Revoke a user id from the key with FPR\n"
" --verbose run in verbose mode\n"
" --status print status lines from the backend\n"
" --progress print progress info\n"
@@ -231,6 +233,7 @@ main (int argc, char **argv)
int use_loopback = 0;
int addkey = 0;
int adduid = 0;
+ int revuid = 0;
const char *userid;
const char *algo = NULL;
const char *newuserid = NULL;
@@ -255,12 +258,21 @@ main (int argc, char **argv)
{
addkey = 1;
adduid = 0;
+ revuid = 0;
argc--; argv++;
}
else if (!strcmp (*argv, "--adduid"))
{
addkey = 0;
adduid = 1;
+ revuid = 0;
+ argc--; argv++;
+ }
+ else if (!strcmp (*argv, "--revuid"))
+ {
+ addkey = 0;
+ adduid = 0;
+ revuid = 1;
argc--; argv++;
}
else if (!strcmp (*argv, "--verbose"))
@@ -307,7 +319,7 @@ main (int argc, char **argv)
show_usage (1);
}
- if (adduid)
+ if (adduid || revuid)
{
if (argc != 2)
show_usage (1);
@@ -346,7 +358,7 @@ main (int argc, char **argv)
gpgme_set_passphrase_cb (ctx, passphrase_cb, NULL);
}
- if (addkey || adduid)
+ if (addkey || adduid || revuid)
{
gpgme_key_t akey;
@@ -378,6 +390,16 @@ main (int argc, char **argv)
exit (1);
}
}
+ else if (revuid)
+ {
+ err = gpgme_op_revuid (ctx, akey, newuserid, flags);
+ if (err)
+ {
+ fprintf (stderr, PGM ": gpgme_op_revuid failed: %s\n",
+ gpg_strerror (err));
+ exit (1);
+ }
+ }
gpgme_key_unref (akey);
}
else