From fc0c71dfe5ea8f1c683101948c23f5d2064ee4cd Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 22 Jan 2016 10:35:19 +0100 Subject: gpg: Allow new user ids with only the mail address. * g10/keygen.c (ask_user_id): Allow empty name. -- The --quick-gen-key command allows this and further some mail providers require that a key has only the mail address to allow for anonymous accounts. Signed-off-by: Werner Koch --- g10/keygen.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/g10/keygen.c b/g10/keygen.c index 94ea1262f..0f7a6a0aa 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -2533,8 +2533,11 @@ ask_user_id (int mode, int full, KBNODE keyblock) } else if( digitp(aname) ) tty_printf(_("Name may not start with a digit\n")); - else if( strlen(aname) < 5 ) + else if (*aname && strlen (aname) < 5) + { tty_printf(_("Name must be at least 5 characters long\n")); + /* However, we allow an empty name. */ + } else break; } @@ -2577,11 +2580,20 @@ ask_user_id (int mode, int full, KBNODE keyblock) xfree(uid); uid = p = xmalloc(strlen(aname)+strlen(amail)+strlen(acomment)+12+10); - p = stpcpy(p, aname ); - if( *acomment ) - p = stpcpy(stpcpy(stpcpy(p," ("), acomment),")"); - if( *amail ) - p = stpcpy(stpcpy(stpcpy(p," <"), amail),">"); + if (!*aname && *amail && !*acomment && !random_is_faked ()) + { /* Empty name and comment but with mail address. Use + simplified form with only the non-angle-bracketed mail + address. */ + p = stpcpy (p, amail); + } + else + { + p = stpcpy (p, aname ); + if (*acomment) + p = stpcpy(stpcpy(stpcpy(p," ("), acomment),")"); + if (*amail) + p = stpcpy(stpcpy(stpcpy(p," <"), amail),">"); + } /* Append a warning if the RNG is switched into fake mode. */ if ( random_is_faked () ) -- cgit v1.2.3