aboutsummaryrefslogtreecommitdiffstats
path: root/tests/run-genkey.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-09-14 09:40:34 +0000
committerWerner Koch <[email protected]>2016-09-14 09:40:34 +0000
commit3210f3e4725afc5ee2810b9a1361918ec9c42ca4 (patch)
tree742cdfee9596708ce838d88ca47236162821817e /tests/run-genkey.c
parentcore: New function gpgme_op_createsubkey. (diff)
downloadgpgme-3210f3e4725afc5ee2810b9a1361918ec9c42ca4.tar.gz
gpgme-3210f3e4725afc5ee2810b9a1361918ec9c42ca4.zip
core: New function gpgme_op_adduid.
* src/genkey.c: Replace most error codes GPG_ERR_INV_VALUE by GPG_ERR_INV_ARG. (struct op_data_t): Add field UIDMODE. (genkey_status_handler): Use UIDMODE. (adduid_start): New. (gpgme_op_adduid_start, gpgme_op_adduid): New. * src/gpgme.def, src/libgpgme.vers: Add them. * tests/run-genkey.c: Add option --adduid. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'tests/run-genkey.c')
-rw-r--r--tests/run-genkey.c72
1 files changed, 55 insertions, 17 deletions
diff --git a/tests/run-genkey.c b/tests/run-genkey.c
index 3b645025..959e2ea1 100644
--- a/tests/run-genkey.c
+++ b/tests/run-genkey.c
@@ -199,9 +199,13 @@ parse_usage_string (const char *string)
static int
show_usage (int ex)
{
- fputs ("usage: " PGM " [options] USERID [ALGO [USAGE [EXPIRESECONDS]]]\n\n"
+ fputs ("usage: " PGM " [options] ARGS\n"
+ " args: USERID [ALGO [USAGE [EXPIRESECONDS]]]\n"
+ " for addkey: FPR [ALGO [USAGE [EXPIRESECONDS]]]\n"
+ " for adduid: FPR USERID\n"
"Options:\n"
- " --addkey add a subkey to the key with USERID\n"
+ " --addkey add a subkey to the key with FPR\n"
+ " --adduid add a user id to the key with FPR\n"
" --verbose run in verbose mode\n"
" --status print status lines from the backend\n"
" --progress print progress info\n"
@@ -226,8 +230,10 @@ main (int argc, char **argv)
int print_progress = 0;
int use_loopback = 0;
int addkey = 0;
+ int adduid = 0;
const char *userid;
const char *algo = NULL;
+ const char *newuserid = NULL;
unsigned int flags = 0;
unsigned long expire = 0;
gpgme_genkey_result_t result;
@@ -248,6 +254,13 @@ main (int argc, char **argv)
else if (!strcmp (*argv, "--addkey"))
{
addkey = 1;
+ adduid = 0;
+ argc--; argv++;
+ }
+ else if (!strcmp (*argv, "--adduid"))
+ {
+ addkey = 0;
+ adduid = 1;
argc--; argv++;
}
else if (!strcmp (*argv, "--verbose"))
@@ -294,15 +307,25 @@ main (int argc, char **argv)
show_usage (1);
}
- if (!argc || argc > 4)
- show_usage (1);
- userid = argv[0];
- if (argc > 1)
- algo = argv[1];
- if (argc > 2)
- flags |= parse_usage_string (argv[2]);
- if (argc > 3)
- expire = parse_expire_string (argv[3]);
+ if (adduid)
+ {
+ if (argc != 2)
+ show_usage (1);
+ userid = argv[0];
+ newuserid = argv[1];
+ }
+ else
+ {
+ if (!argc || argc > 4)
+ show_usage (1);
+ userid = argv[0];
+ if (argc > 1)
+ algo = argv[1];
+ if (argc > 2)
+ flags |= parse_usage_string (argv[2]);
+ if (argc > 3)
+ expire = parse_expire_string (argv[3]);
+ }
init_gpgme (protocol);
@@ -323,7 +346,7 @@ main (int argc, char **argv)
gpgme_set_passphrase_cb (ctx, passphrase_cb, NULL);
}
- if (addkey)
+ if (addkey || adduid)
{
gpgme_key_t akey;
@@ -335,12 +358,25 @@ main (int argc, char **argv)
exit (1);
}
- err = gpgme_op_createsubkey (ctx, akey, algo, 0, expire, flags);
- if (err)
+ if (addkey)
{
- fprintf (stderr, PGM ": gpgme_op_createsubkey failed: %s\n",
- gpg_strerror (err));
- exit (1);
+ err = gpgme_op_createsubkey (ctx, akey, algo, 0, expire, flags);
+ if (err)
+ {
+ fprintf (stderr, PGM ": gpgme_op_createsubkey failed: %s\n",
+ gpg_strerror (err));
+ exit (1);
+ }
+ }
+ else if (adduid)
+ {
+ err = gpgme_op_adduid (ctx, akey, newuserid, flags);
+ if (err)
+ {
+ fprintf (stderr, PGM ": gpgme_op_adduid failed: %s\n",
+ gpg_strerror (err));
+ exit (1);
+ }
}
gpgme_key_unref (akey);
}
@@ -373,6 +409,8 @@ main (int argc, char **argv)
fprintf (stderr, PGM": primary key was not generated\n");
if (!result->sub)
fprintf (stderr, PGM": sub key was not generated\n");
+ if (!result->uid)
+ fprintf (stderr, PGM": uid was not generated\n");
gpgme_release (ctx);
return 0;