diff options
Diffstat (limited to 'tests/run-genkey.c')
-rw-r--r-- | tests/run-genkey.c | 26 |
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 |