aboutsummaryrefslogtreecommitdiffstats
path: root/g10/keygen.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/keygen.c')
-rw-r--r--g10/keygen.c210
1 files changed, 1 insertions, 209 deletions
diff --git a/g10/keygen.c b/g10/keygen.c
index 3dbd9b402..bc98cee17 100644
--- a/g10/keygen.c
+++ b/g10/keygen.c
@@ -2860,184 +2860,6 @@ show_smartcard (struct agent_card_info_s *info)
free_public_key( pk );
}
-
-static char *
-smartcard_get_one_name (const char *prompt1, const char *prompt2)
-{
- char *name;
- int i;
-
- for (;;)
- {
- name = cpr_get (prompt1, prompt2);
- if (!name)
- return NULL;
- trim_spaces (name);
- cpr_kill_prompt ();
- for (i=0; name[i] && name[i] >= ' ' && name[i] <= 126; i++)
- ;
-
- /* The name must be in Latin-1 and not UTF-8 - lacking the code
- to ensure this we restrict it to ASCII. */
- if (name[i])
- tty_printf (_("Error: Only plain ASCII is currently allowed.\n"));
- else if (strchr (name, '<'))
- tty_printf (_("Error: The \"<\" character may not be used.\n"));
- else if (strstr (name, " "))
- tty_printf (_("Error: Double spaces are not allowed.\n"));
- else
- return name;
- xfree (name);
- }
-}
-
-static int
-smartcard_change_name (const char *current_name)
-{
- char *surname = NULL, *givenname = NULL;
- char *isoname, *p;
- int rc;
-
- surname = smartcard_get_one_name ("keygen.smartcard.surname",
- _("Cardholder's surname: "));
- givenname = smartcard_get_one_name ("keygen.smartcard.givenname",
- _("Cardholder's given name: "));
- if (!surname || !givenname || (!*surname && !*givenname))
- {
- xfree (surname);
- xfree (givenname);
- return -1; /*canceled*/
- }
-
- isoname = xmalloc ( strlen (surname) + 2 + strlen (givenname) + 1);
- strcpy (stpcpy (stpcpy (isoname, surname), "<<"), givenname);
- xfree (surname);
- xfree (givenname);
- for (p=isoname; *p; p++)
- if (*p == ' ')
- *p = '<';
-
- log_debug ("setting Name to `%s'\n", isoname);
- rc = agent_scd_setattr ("DISP-NAME", isoname, strlen (isoname) );
- if (rc)
- log_error ("error setting Name: %s\n", gpg_strerror (rc));
-
- xfree (isoname);
- return rc;
-}
-
-
-static int
-smartcard_change_url (const char *current_url)
-{
- char *url;
- int rc;
-
- url = cpr_get ("keygen.smartcard.url", _("URL to retrieve public key: "));
- if (!url)
- return -1;
- trim_spaces (url);
- cpr_kill_prompt ();
-
- rc = agent_scd_setattr ("PUBKEY-URL", url, strlen (url) );
- if (rc)
- log_error ("error setting URL: %s\n", gpg_strerror (rc));
- xfree (url);
- return rc;
-}
-
-static int
-smartcard_change_login_data (void)
-{
- char *data;
- int rc;
-
- data = cpr_get ("keygen.smartcard.login_data",
- _("Login data (account name): "));
- if (!data)
- return -1;
- trim_spaces (data);
- cpr_kill_prompt ();
-
- rc = agent_scd_setattr ("LOGIN-DATA", data, strlen (data) );
- if (rc)
- log_error ("error setting login data: %s\n", gpg_strerror (rc));
- xfree (data);
- return rc;
-}
-
-static int
-smartcard_change_lang (void)
-{
- char *data, *p;
- int rc;
-
- data = cpr_get ("keygen.smartcard.lang",
- _("Language preferences: "));
- if (!data)
- return -1;
- trim_spaces (data);
- cpr_kill_prompt ();
-
- if (strlen (data) > 8 || (strlen (data) & 1))
- {
- tty_printf (_("Error: invalid length of preference string.\n"));
- xfree (data);
- return -1;
- }
-
- for (p=data; *p && *p >= 'a' && *p <= 'z'; p++)
- ;
- if (*p)
- {
- tty_printf (_("Error: invalid characters in preference string.\n"));
- xfree (data);
- return -1;
- }
-
- rc = agent_scd_setattr ("DISP-LANG", data, strlen (data) );
- if (rc)
- log_error ("error setting lang: %s\n", gpg_strerror (rc));
- xfree (data);
- return rc;
-}
-
-
-static int
-smartcard_change_sex (void)
-{
- char *data;
- const char *str;
- int rc;
-
- data = cpr_get ("keygen.smartcard.sex",
- _("Sex ((M)ale, (F)emale or space): "));
- if (!data)
- return -1;
- trim_spaces (data);
- cpr_kill_prompt ();
-
- if (!*data)
- str = "9";
- else if ((*data == 'M' || *data == 'm') && !data[1])
- str = "1";
- else if ((*data == 'F' || *data == 'f') && !data[1])
- str = "2";
- else
- {
- tty_printf (_("Error: invalid response.\n"));
- xfree (data);
- return -1;
- }
-
- rc = agent_scd_setattr ("DISP-SEX", str, 1 );
- if (rc)
- log_error ("error setting sex: %s\n", gpg_strerror (rc));
- xfree (data);
- return rc;
-}
-
-
/* Return true if the SHA1 fingerprint FPR consists only of zeroes. */
static int
fpr_is_zero (const char *fpr)
@@ -3083,11 +2905,6 @@ check_smartcard (char **r_serialno)
show_smartcard (&info);
tty_printf ("\n"
- "N - change cardholder name\n"
- "U - change public key URL\n"
- "D - change login data\n"
- "L - change language preferences\n"
- "S - change sex\n"
"K - generate all keys\n"
"Q - quit\n"
"\n");
@@ -3098,32 +2915,7 @@ check_smartcard (char **r_serialno)
continue;
rc = 0;
- if ( *answer == 'N' || *answer == 'n')
- {
- if (!smartcard_change_name (info.disp_name))
- reread = 1;
- }
- else if ( *answer == 'U' || *answer == 'u')
- {
- if (!smartcard_change_url (info.pubkey_url))
- reread = 1;
- }
- else if ( *answer == 'D' || *answer == 'd')
- {
- if (!smartcard_change_login_data ())
- reread = 1;
- }
- else if ( *answer == 'L' || *answer == 'l')
- {
- if (!smartcard_change_lang ())
- reread = 1;
- }
- else if ( *answer == 'S' || *answer == 's')
- {
- if (!smartcard_change_sex ())
- reread = 1;
- }
- else if ( *answer == 'K' || *answer == 'k')
+ if ( *answer == 'K' || *answer == 'k')
{
if ( (info.fpr1valid && !fpr_is_zero (info.fpr1))
|| (info.fpr2valid && !fpr_is_zero (info.fpr2))