From 96918346beeca7a46de9f03f19502373994c21bc Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Tue, 27 Mar 2018 16:24:17 +0900 Subject: [PATCH 01/30] agent,scd: Use pointer to represent HANDLE. * agent/call-scd.c [HAVE_W32_SYSTEM] (start_scd): Format with %p. * scd/command.c [HAVE_W32_SYSTEM] (option_handler): Use void *. Signed-off-by: NIIBE Yutaka --- agent/call-scd.c | 4 ++-- scd/command.c | 16 ++++++++++------ 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/agent/call-scd.c b/agent/call-scd.c index cf61a3546..16139fdc9 100644 --- a/agent/call-scd.c +++ b/agent/call-scd.c @@ -404,8 +404,8 @@ start_scd (ctrl_t ctrl) char buf[100]; #ifdef HAVE_W32_SYSTEM - snprintf (buf, sizeof buf, "OPTION event-signal=%lx", - (unsigned long)get_agent_scd_notify_event ()); + snprintf (buf, sizeof buf, "OPTION event-signal=%p", + get_agent_scd_notify_event ()); #else snprintf (buf, sizeof buf, "OPTION event-signal=%d", SIGUSR2); #endif diff --git a/scd/command.c b/scd/command.c index 701151894..66d9fb971 100644 --- a/scd/command.c +++ b/scd/command.c @@ -79,7 +79,7 @@ struct server_local_s assuan_context_t assuan_ctx; #ifdef HAVE_W32_SYSTEM - unsigned long event_signal; /* Or 0 if not used. */ + void *event_signal; /* Or NULL if not used. */ #else int event_signal; /* Or 0 if not used. */ #endif @@ -178,7 +178,11 @@ option_handler (assuan_context_t ctx, const char *key, const char *value) #ifdef HAVE_W32_SYSTEM if (!*value) return gpg_error (GPG_ERR_ASS_PARAMETER); - ctrl->server_local->event_signal = strtoul (value, NULL, 16); +#ifdef _WIN64 + ctrl->server_local->event_signal = (void *)strtoull (value, NULL, 16); +#else + ctrl->server_local->event_signal = (void *)strtoul (value, NULL, 16); +#endif #else int i = *value? atoi (value) : -1; if (i < 0) @@ -1933,20 +1937,20 @@ send_client_notifications (app_t app, int removal) pid = assuan_get_pid (sl->assuan_ctx); #ifdef HAVE_W32_SYSTEM - handle = (void *)sl->event_signal; + handle = sl->event_signal; for (kidx=0; kidx < killidx; kidx++) if (killed[kidx].pid == pid && killed[kidx].handle == handle) break; if (kidx < killidx) - log_info ("event %lx (%p) already triggered for client %d\n", + log_info ("event %p (%p) already triggered for client %d\n", sl->event_signal, handle, (int)pid); else { - log_info ("triggering event %lx (%p) for client %d\n", + log_info ("triggering event %p (%p) for client %d\n", sl->event_signal, handle, (int)pid); if (!SetEvent (handle)) - log_error ("SetEvent(%lx) failed: %s\n", + log_error ("SetEvent(%p) failed: %s\n", sl->event_signal, w32_strerror (-1)); if (killidx < DIM (killed)) { From e610d51f0de11154050915b951bcc5c53c940f5e Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Wed, 28 Mar 2018 18:44:45 +0900 Subject: [PATCH 02/30] g10: Change ask_curve so that it can be used outside. * g10/call-agent.h (struct key_attr): New. * g10/keygen.c (ask_curve): Return const char *. No allocation. (quick_generate_keypair): Follow the change. (generate_keypair, generate_subkeypair): Likewise. (parse_algo_usage_expire): Return const char *. -- This change is intended for using ask_curve from card-util.c. Signed-off-by: NIIBE Yutaka --- g10/call-agent.h | 15 ++++++++------- g10/keygen.c | 38 +++++++++++++++----------------------- 2 files changed, 23 insertions(+), 30 deletions(-) diff --git a/g10/call-agent.h b/g10/call-agent.h index 8de0d13fd..7314ae87b 100644 --- a/g10/call-agent.h +++ b/g10/call-agent.h @@ -19,6 +19,13 @@ #ifndef GNUPG_G10_CALL_AGENT_H #define GNUPG_G10_CALL_AGENT_H +struct key_attr { + int algo; /* Algorithm identifier. */ + union { + unsigned int nbits; /* Supported keysize. */ + const char *curve; /* Name of curve. */ + }; +}; struct agent_card_info_s { @@ -57,13 +64,7 @@ struct agent_card_info_s int is_v2; /* True if this is a v2 card. */ int chvmaxlen[3]; /* Maximum allowed length of a CHV. */ int chvretry[3]; /* Allowed retries for the CHV; 0 = blocked. */ - struct { /* Array with key attributes. */ - int algo; /* Algorithm identifier. */ - union { - unsigned int nbits; /* Supported keysize. */ - const char *curve; /* Name of curve. */ - }; - } key_attr[3]; + struct key_attr key_attr[3]; struct { unsigned int ki:1; /* Key import available. */ unsigned int aac:1; /* Algorithm attributes are changeable. */ diff --git a/g10/keygen.c b/g10/keygen.c index 8de6538ca..109879854 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -141,8 +141,8 @@ static gpg_error_t parse_algo_usage_expire (ctrl_t ctrl, int for_subkey, const char *algostr, const char *usagestr, const char *expirestr, int *r_algo, unsigned int *r_usage, - u32 *r_expire, - unsigned int *r_nbits, char **r_curve); + u32 *r_expire, unsigned int *r_nbits, + const char **r_curve); static void do_generate_keypair (ctrl_t ctrl, struct para_data_s *para, struct output_control_s *outctrl, int card ); static int write_keyblock (iobuf_t out, kbnode_t node); @@ -2233,9 +2233,9 @@ ask_keysize (int algo, unsigned int primary_keysize) /* Ask for the curve. ALGO is the selected algorithm which this - function may adjust. Returns a malloced string with the name of - the curve. BOTH tells that gpg creates a primary and subkey. */ -static char * + function may adjust. Returns a const string of the name of the + curve. */ +static const char * ask_curve (int *algo, int *subkey_algo) { /* NB: We always use a complete algo list so that we have stable @@ -2267,7 +2267,7 @@ ask_curve (int *algo, int *subkey_algo) #undef MY_USE_ECDSADH int idx; char *answer; - char *result = NULL; + const char *result = NULL; gcry_sexp_t keyparms; tty_printf (_("Please select which elliptic curve you want:\n")); @@ -2358,16 +2358,16 @@ ask_curve (int *algo, int *subkey_algo) if (subkey_algo && *subkey_algo == PUBKEY_ALGO_ECDSA) *subkey_algo = PUBKEY_ALGO_EDDSA; *algo = PUBKEY_ALGO_EDDSA; - result = xstrdup (curves[idx].eddsa_curve); + result = curves[idx].eddsa_curve; } else - result = xstrdup (curves[idx].name); + result = curves[idx].name; break; } } if (!result) - result = xstrdup (curves[0].name); + result = curves[0].name; return result; } @@ -4058,7 +4058,7 @@ quick_generate_keypair (ctrl_t ctrl, const char *uid, const char *algostr, unsigned int use; u32 expire; unsigned int nbits; - char *curve; + const char *curve; err = parse_algo_usage_expire (ctrl, 0, algostr, usagestr, expirestr, &algo, &use, &expire, &nbits, &curve); @@ -4253,7 +4253,7 @@ generate_keypair (ctrl_t ctrl, int full, const char *fname, } else { - char *curve = NULL; + const char *curve = NULL; if (subkey_algo) { @@ -4316,8 +4316,7 @@ generate_keypair (ctrl_t ctrl, int full, const char *fname, { /* Need to switch to a different curve for the encryption key. */ - xfree (curve); - curve = xstrdup ("Curve25519"); + curve = "Curve25519"; } r = xmalloc_clear (sizeof *r + strlen (curve)); r->key = pSUBKEYCURVE; @@ -4377,8 +4376,6 @@ generate_keypair (ctrl_t ctrl, int full, const char *fname, r->next = para; para = r; } - - xfree (curve); } } else /* Default key generation. */ @@ -4921,7 +4918,7 @@ parse_algo_usage_expire (ctrl_t ctrl, int for_subkey, const char *algostr, const char *usagestr, const char *expirestr, int *r_algo, unsigned int *r_usage, u32 *r_expire, - unsigned int *r_nbits, char **r_curve) + unsigned int *r_nbits, const char **r_curve) { gpg_error_t err; int algo; @@ -4979,11 +4976,7 @@ parse_algo_usage_expire (ctrl_t ctrl, int for_subkey, return gpg_error (GPG_ERR_INV_VALUE); if (curve) - { - *r_curve = xtrystrdup (curve); - if (!*r_curve) - return gpg_error_from_syserror (); - } + *r_curve = curve; *r_algo = algo; *r_usage = use; *r_expire = expire; @@ -5008,7 +5001,7 @@ generate_subkeypair (ctrl_t ctrl, kbnode_t keyblock, const char *algostr, unsigned int use; u32 expire; unsigned int nbits = 0; - char *curve = NULL; + const char *curve = NULL; u32 cur_time; char *key_from_hexgrip = NULL; char *hexgrip = NULL; @@ -5160,7 +5153,6 @@ generate_subkeypair (ctrl_t ctrl, kbnode_t keyblock, const char *algostr, leave: xfree (key_from_hexgrip); - xfree (curve); xfree (hexgrip); xfree (serialno); xfree (cache_nonce); From 02d7bb819ff44cc90212568dd6ce24ae1dc5d17f Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Thu, 29 Mar 2018 10:48:37 +0900 Subject: [PATCH 03/30] g10: check_pin_for_key_operation should be just before genkey. * g10/card-util.c (generate_card_keys): Check PIN later. (card_generate_subkey): Likewise. -- Changing key attribute resets PIN authentication status. So, CHECKPIN should be after that, before key generation. Note that CHECKPIN is done for binding signature. Signed-off-by: NIIBE Yutaka --- g10/card-util.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/g10/card-util.c b/g10/card-util.c index d78e9bd8e..2aa9c3f28 100644 --- a/g10/card-util.c +++ b/g10/card-util.c @@ -1498,9 +1498,6 @@ generate_card_keys (ctrl_t ctrl) tty_printf ("\n"); } - if (check_pin_for_key_operation (&info, &forced_chv1)) - goto leave; - /* If the cards features changeable key attributes, we ask for the key size. */ if (info.is_v2 && info.extcap.aac) @@ -1533,6 +1530,9 @@ generate_card_keys (ctrl_t ctrl) the serialnumber and thus it won't harm. */ } + if (check_pin_for_key_operation (&info, &forced_chv1)) + goto leave; + generate_keypair (ctrl, 1, NULL, info.serialno, want_backup); leave: @@ -1587,10 +1587,6 @@ card_generate_subkey (ctrl_t ctrl, kbnode_t pub_keyblock) goto leave; } - err = check_pin_for_key_operation (&info, &forced_chv1); - if (err) - goto leave; - /* If the cards features changeable key attributes, we ask for the key size. */ if (info.is_v2 && info.extcap.aac) @@ -1621,6 +1617,10 @@ card_generate_subkey (ctrl_t ctrl, kbnode_t pub_keyblock) the serialnumber and thus it won't harm. */ } + err = check_pin_for_key_operation (&info, &forced_chv1); + if (err) + goto leave; + err = generate_card_subkeypair (ctrl, pub_keyblock, keyno, info.serialno); leave: From a1515b3bbc10a210040dda3b482bcdb933fa8d7c Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Thu, 29 Mar 2018 11:56:02 +0900 Subject: [PATCH 04/30] g10: Support key attribute change at --card-edit/generate. * g10/card-util.c (ask_card_rsa_keysize): Drop support for magic number 25519 for ed25519/cv25519. Rename from ask_card_keyattr. (ask_card_keyattr): Support ECC, as well as RSA. (do_change_keyattr): Support ECC dropping magical number 25519. * g10/keygen.c (ask_curve): Allow call from outside, adding last arg of CURRENT. (generate_keypair): Follow the change of ask_curve. (generate_subkeypair): Likewise. -- GnuPG-bug-id: 3781 Signed-off-by: NIIBE Yutaka --- g10/card-util.c | 246 ++++++++++++++++++++++++++++++++---------------- g10/keygen.c | 17 ++-- g10/main.h | 1 + 3 files changed, 178 insertions(+), 86 deletions(-) diff --git a/g10/card-util.c b/g10/card-util.c index 2aa9c3f28..263ab4ebd 100644 --- a/g10/card-util.c +++ b/g10/card-util.c @@ -1355,11 +1355,10 @@ show_keysize_warning (void) /* Ask for the size of a card key. NBITS is the current size - configured for the card. KEYNO is the number of the key used to - select the prompt. Returns 0 to use the default size (i.e. NBITS) - or the selected size. */ + configured for the card. Returns 0 to use the default size + (i.e. NBITS) or the selected size. */ static unsigned int -ask_card_keyattr (int keyno, unsigned int nbits) +ask_card_rsa_keysize (unsigned int nbits) { unsigned int min_nbits = 1024; unsigned int max_nbits = 4096; @@ -1368,78 +1367,175 @@ ask_card_keyattr (int keyno, unsigned int nbits) for (;;) { - prompt = xasprintf - (keyno == 0? - _("What keysize do you want for the Signature key? (%u) "): - keyno == 1? - _("What keysize do you want for the Encryption key? (%u) "): - _("What keysize do you want for the Authentication key? (%u) "), - nbits); + prompt = xasprintf (_("What keysize do you want? (%u) "), nbits); answer = cpr_get ("cardedit.genkeys.size", prompt); cpr_kill_prompt (); req_nbits = *answer? atoi (answer): nbits; xfree (prompt); xfree (answer); - if (req_nbits == 25519) + if (req_nbits != nbits && (req_nbits % 32) ) { - if (req_nbits == nbits) - return 0; /* Use default. */ + req_nbits = ((req_nbits + 31) / 32) * 32; + tty_printf (_("rounded up to %u bits\n"), req_nbits); + } - tty_printf (_("The card will now be re-configured" - " to generate a key of type: %s\n"), - keyno==1? "cv25519":"ed25519"); - show_keysize_warning (); - return req_nbits; + if (req_nbits == nbits) + return 0; /* Use default. */ + + if (req_nbits < min_nbits || req_nbits > max_nbits) + { + tty_printf (_("%s keysizes must be in the range %u-%u\n"), + "RSA", min_nbits, max_nbits); } else { - if (req_nbits != nbits && (req_nbits % 32) ) - { - req_nbits = ((req_nbits + 31) / 32) * 32; - tty_printf (_("rounded up to %u bits\n"), req_nbits); - } - - if (req_nbits == nbits) - return 0; /* Use default. */ - - if (req_nbits < min_nbits || req_nbits > max_nbits) - { - tty_printf (_("%s keysizes must be in the range %u-%u\n"), - "RSA", min_nbits, max_nbits); - } - else - { - tty_printf (_("The card will now be re-configured" - " to generate a key of %u bits\n"), req_nbits); - show_keysize_warning (); - return req_nbits; - } + tty_printf (_("The card will now be re-configured" + " to generate a key of %u bits\n"), req_nbits); + show_keysize_warning (); + return req_nbits; } } } - -/* Change the size of key KEYNO (0..2) to NBITS and show an error - * message if that fails. Using the magic value 25519 for NBITS - * switches to ed25519 or cv25519 depending on the KEYNO. */ -static gpg_error_t -do_change_keyattr (int keyno, unsigned int nbits) +/* Ask for the key attribute of a card key. CURRENT is the current + attribute configured for the card. KEYNO is the number of the key + used to select the prompt. Returns NULL to use the default + attribute or the selected attribute structure. */ +static struct key_attr * +ask_card_keyattr (int keyno, const struct key_attr *current) { - gpg_error_t err; + struct key_attr *key_attr = NULL; + char *answer = NULL; + int algo; + + tty_printf (_("Changing card key attribute for: ")); + if (keyno == 0) + tty_printf (_("Signature key\n")); + else if (keyno == 1) + tty_printf (_("Encryption key\n")); + else + tty_printf (_("Authentication key\n")); + + tty_printf (_("Please select what kind of key you want:\n")); + tty_printf (_(" (%d) RSA\n"), 1 ); + tty_printf (_(" (%d) ECC\n"), 2 ); + + for (;;) + { + xfree (answer); + answer = cpr_get ("cardedit.genkeys.algo", _("Your selection? ")); + cpr_kill_prompt (); + algo = *answer? atoi (answer) : 0; + + if (!*answer || algo == 1 || algo == 2) + break; + else + tty_printf (_("Invalid selection.\n")); + } + + if (algo == 0) + got leave; + + key_attr = xmalloc (sizeof (struct key_attr)); + + if (algo == 1) + { + unsigned int nbits, result_nbits; + + if (current->algo == PUBKEY_ALGO_RSA) + nbits = current->nbits; + else + nbits = 2048; + + result_nbits = ask_card_rsa_keysize (nbits); + if (result_nbits == 0) + { + if (current->algo == PUBKEY_ALGO_RSA) + { + xfree (key_attr); + key_attr = NULL; + } + else + result_nbits = nbits; + } + + if (key_attr) + { + key_attr->algo = PUBKEY_ALGO_RSA; + key_attr->nbits = result_nbits; + } + } + else + { + const char *curve; + const char *oid_str; + + if (current->algo == PUBKEY_ALGO_RSA) + { + if (keyno == 1) + /* Encryption key */ + algo = PUBKEY_ALGO_ECDH; + else /* Signature key or Authentication key */ + algo = PUBKEY_ALGO_ECDSA; + curve = NULL; + } + else + { + algo = current->algo; + curve = current->curve; + } + + curve = ask_curve (&algo, NULL, curve); + if (curve) + { + key_attr->algo = algo; + oid_str = openpgp_curve_to_oid (curve, NULL); + key_attr->curve = openpgp_oid_to_curve (oid_str, 0); + } + else + { + xfree (key_attr); + key_attr = NULL; + } + } + + leave: + if (!key_attr) + tty_printf (_("No change.")); + + return key_attr; +} + + + +/* Change the key attribute of key KEYNO (0..2) and show an error + * message if that fails. */ +static gpg_error_t +do_change_keyattr (int keyno, const struct key_attr *key_attr) +{ + gpg_error_t err = 0; char args[100]; - if (nbits == 25519) + if (key_attr->algo == PUBKEY_ALGO_RSA) + snprintf (args, sizeof args, "--force %d 1 rsa%u", keyno+1, + key_attr->nbits); + else if (key_attr->algo == PUBKEY_ALGO_ECDH + || key_attr->algo == PUBKEY_ALGO_ECDSA + || key_attr->algo == PUBKEY_ALGO_EDDSA) snprintf (args, sizeof args, "--force %d %d %s", - keyno+1, - keyno == 1? PUBKEY_ALGO_ECDH : PUBKEY_ALGO_EDDSA, - keyno == 1? "cv25519" : "ed25519"); + keyno+1, key_attr->algo, key_attr->curve); else - snprintf (args, sizeof args, "--force %d 1 rsa%u", keyno+1, nbits); + { + log_error (_("public key algorithm %d (%s) is not supported\n"), + key_attr->algo, gcry_pk_algo_name (key_attr->algo)); + return gpg_error (GPG_ERR_PUBKEY_ALGO); + } + err = agent_scd_setattr ("KEY-ATTR", args, strlen (args), NULL); if (err) - log_error (_("error changing size of key %d to %u bits: %s\n"), - keyno+1, nbits, gpg_strerror (err)); + log_error (_("error changing key attribute for key %d: %s\n"), + keyno+1, gpg_strerror (err)); return err; } @@ -1502,26 +1598,21 @@ generate_card_keys (ctrl_t ctrl) key size. */ if (info.is_v2 && info.extcap.aac) { - unsigned int nbits; - for (keyno = 0; keyno < DIM (info.key_attr); keyno++) { - if (info.key_attr[keyno].algo == PUBKEY_ALGO_RSA - || info.key_attr[keyno].algo == PUBKEY_ALGO_ECDH - || info.key_attr[keyno].algo == PUBKEY_ALGO_EDDSA) - { - if (info.key_attr[keyno].algo == PUBKEY_ALGO_RSA) - nbits = ask_card_keyattr (keyno, info.key_attr[keyno].nbits); - else - nbits = ask_card_keyattr (keyno, 25519 /* magic */); + struct key_attr *key_attr; - if (nbits && do_change_keyattr (keyno, nbits)) + if ((key_attr = ask_card_keyattr (keyno, &info.key_attr[keyno]))) + { + gpg_error_t err = do_change_keyattr (keyno, key_attr); + xfree (key_attr); + if (err) { - /* Error: Better read the default key size again. */ + /* Error: Better read the default key attribute again. */ agent_release_card_info (&info); if (get_info_for_key_operation (&info)) goto leave; - /* Ask again for this key size. */ + /* Ask again for this key. */ keyno--; } } @@ -1591,21 +1682,16 @@ card_generate_subkey (ctrl_t ctrl, kbnode_t pub_keyblock) key size. */ if (info.is_v2 && info.extcap.aac) { - if (info.key_attr[keyno-1].algo == PUBKEY_ALGO_RSA - || info.key_attr[keyno].algo == PUBKEY_ALGO_ECDH - || info.key_attr[keyno].algo == PUBKEY_ALGO_EDDSA) + struct key_attr *key_attr; + + ask_again: + if ((key_attr = ask_card_keyattr (keyno-1, &info.key_attr[keyno-1]))) { - unsigned int nbits; - - ask_again: - if (info.key_attr[keyno].algo == PUBKEY_ALGO_RSA) - nbits = ask_card_keyattr (keyno-1, info.key_attr[keyno-1].nbits); - else - nbits = ask_card_keyattr (keyno-1, 25519); - - if (nbits && do_change_keyattr (keyno-1, nbits)) + err = do_change_keyattr (keyno-1, key_attr); + xfree (key_attr); + if (err) { - /* Error: Better read the default key size again. */ + /* Error: Better read the default key attribute again. */ agent_release_card_info (&info); err = get_info_for_key_operation (&info); if (err) diff --git a/g10/keygen.c b/g10/keygen.c index 109879854..a4949f486 100644 --- a/g10/keygen.c +++ b/g10/keygen.c @@ -2235,8 +2235,8 @@ ask_keysize (int algo, unsigned int primary_keysize) /* Ask for the curve. ALGO is the selected algorithm which this function may adjust. Returns a const string of the name of the curve. */ -static const char * -ask_curve (int *algo, int *subkey_algo) +const char * +ask_curve (int *algo, int *subkey_algo, const char *current) { /* NB: We always use a complete algo list so that we have stable numbers in the menu regardless on how Gpg was configured. */ @@ -2327,7 +2327,12 @@ ask_curve (int *algo, int *subkey_algo) answer = cpr_get ("keygen.curve", _("Your selection? ")); cpr_kill_prompt (); idx = *answer? atoi (answer) : 1; - if (*answer && !idx) + if (!*answer && current) + { + xfree(answer); + return NULL; + } + else if (*answer && !idx) { /* See whether the user entered the name of the curve. */ for (idx=0; idx < DIM(curves); idx++) @@ -4263,7 +4268,7 @@ generate_keypair (ctrl_t ctrl, int full, const char *fname, || algo == PUBKEY_ALGO_EDDSA || algo == PUBKEY_ALGO_ECDH) { - curve = ask_curve (&algo, &subkey_algo); + curve = ask_curve (&algo, &subkey_algo, NULL); r = xmalloc_clear( sizeof *r + 20 ); r->key = pKEYTYPE; sprintf( r->u.value, "%d", algo); @@ -4333,7 +4338,7 @@ generate_keypair (ctrl_t ctrl, int full, const char *fname, || algo == PUBKEY_ALGO_EDDSA || algo == PUBKEY_ALGO_ECDH) { - curve = ask_curve (&algo, NULL); + curve = ask_curve (&algo, NULL, NULL); r = xmalloc_clear (sizeof *r + strlen (curve)); r->key = pKEYCURVE; strcpy (r->u.value, curve); @@ -5075,7 +5080,7 @@ generate_subkeypair (ctrl_t ctrl, kbnode_t keyblock, const char *algostr, else if (algo == PUBKEY_ALGO_ECDSA || algo == PUBKEY_ALGO_EDDSA || algo == PUBKEY_ALGO_ECDH) - curve = ask_curve (&algo, NULL); + curve = ask_curve (&algo, NULL, NULL); else nbits = ask_keysize (algo, 0); diff --git a/g10/main.h b/g10/main.h index 6c15a2a8d..af25d559c 100644 --- a/g10/main.h +++ b/g10/main.h @@ -292,6 +292,7 @@ u32 parse_expire_string(const char *string); u32 ask_expire_interval(int object,const char *def_expire); u32 ask_expiredate(void); unsigned int ask_key_flags (int algo, int subkey, unsigned int current); +const char *ask_curve (int *algo, int *subkey_algo, const char *current); void quick_generate_keypair (ctrl_t ctrl, const char *uid, const char *algostr, const char *usagestr, const char *expirestr); void generate_keypair (ctrl_t ctrl, int full, const char *fname, From 29692718768c28c524be6306081ab1852e75fe07 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Fri, 30 Mar 2018 09:59:09 +0900 Subject: [PATCH 05/30] scd: Support changing key attribute back to RSA. * scd/app-openpgp.c (change_rsa_keyattr): Try usual RSA. -- In the OpenPGP card specification, there are multiple options to support RSA (having P and Q or not, etc.), and it is implementation dependent. Since GnuPG doesn't have knowledge which card implementation support which option and there is no way (yet) for card to express itself which key attributes are supported, we haven't supported key attribute change back to RSA. But, many card implementation uses P and Q, try this option. If other cases, factory-reset would be easier option. Signed-off-by: NIIBE Yutaka --- scd/app-openpgp.c | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c index e0c9d5959..7bbec03ac 100644 --- a/scd/app-openpgp.c +++ b/scd/app-openpgp.c @@ -3208,21 +3208,33 @@ change_rsa_keyattr (app_t app, int keyno, unsigned int nbits, relptr = get_one_do (app, 0xC1+keyno, &buf, &buflen, NULL); if (!relptr) err = gpg_error (GPG_ERR_CARD); - else if (buflen < 6 || buf[0] != PUBKEY_ALGO_RSA) + else if (buflen < 6) { - /* Attriutes too short or not an RSA key. */ + /* Attributes too short. */ xfree (relptr); err = gpg_error (GPG_ERR_CARD); } else { - /* We only change n_bits and don't touch anything else. Before we - do so, we round up NBITS to a sensible way in the same way as - gpg's key generation does it. This may help to sort out problems - with a few bits too short keys. */ + /* If key attribute was RSA, we only change n_bits and don't + touch anything else. Before we do so, we round up NBITS to a + sensible way in the same way as gpg's key generation does it. + This may help to sort out problems with a few bits too short + keys. */ nbits = ((nbits + 31) / 32) * 32; buf[1] = (nbits >> 8); buf[2] = nbits; + + /* If it was not RSA, we need to fill other parts. */ + if (buf[0] != PUBKEY_ALGO_RSA) + { + buf[0] = PUBKEY_ALGO_RSA; + buf[3] = 0; + buf[4] = 32; + buf[5] = 0; + buflen = 6; + } + err = change_keyattr (app, keyno, buf, buflen, pincb, pincb_arg); xfree (relptr); } From 820380335a20391e0998fb1ba32ebfb9accedc5b Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Fri, 30 Mar 2018 10:59:10 +0900 Subject: [PATCH 06/30] g10: Add "key-attr" command for --card-edit. * g10/card-util.c (key_attr): New explicit command. (generate_card_keys, card_generate_subkey): Don't ask key attr change. (card_edit): Add for cmdKEYATTR. -- GnuPG-bug-id: 3781 Signed-off-by: NIIBE Yutaka --- g10/card-util.c | 105 ++++++++++++++++++++++++------------------------ 1 file changed, 52 insertions(+), 53 deletions(-) diff --git a/g10/card-util.c b/g10/card-util.c index 263ab4ebd..055c9fbb4 100644 --- a/g10/card-util.c +++ b/g10/card-util.c @@ -1435,7 +1435,7 @@ ask_card_keyattr (int keyno, const struct key_attr *current) } if (algo == 0) - got leave; + goto leave; key_attr = xmalloc (sizeof (struct key_attr)); @@ -1540,13 +1540,57 @@ do_change_keyattr (int keyno, const struct key_attr *key_attr) } +static void +key_attr (void) +{ + struct agent_card_info_s info; + gpg_error_t err; + int keyno; + + err = get_info_for_key_operation (&info); + if (err) + { + log_error (_("error getting card info: %s\n"), gpg_strerror (err)); + return; + } + + if (!(info.is_v2 && info.extcap.aac)) + { + log_error (_("This command is not supported by this card\n")); + goto leave; + } + + for (keyno = 0; keyno < DIM (info.key_attr); keyno++) + { + struct key_attr *key_attr; + + if ((key_attr = ask_card_keyattr (keyno, &info.key_attr[keyno]))) + { + err = do_change_keyattr (keyno, key_attr); + xfree (key_attr); + if (err) + { + /* Error: Better read the default key attribute again. */ + agent_release_card_info (&info); + if (get_info_for_key_operation (&info)) + goto leave; + /* Ask again for this key. */ + keyno--; + } + } + } + + leave: + agent_release_card_info (&info); +} + + static void generate_card_keys (ctrl_t ctrl) { struct agent_card_info_s info; int forced_chv1; int want_backup; - int keyno; if (get_info_for_key_operation (&info)) return; @@ -1594,32 +1638,6 @@ generate_card_keys (ctrl_t ctrl) tty_printf ("\n"); } - /* If the cards features changeable key attributes, we ask for the - key size. */ - if (info.is_v2 && info.extcap.aac) - { - for (keyno = 0; keyno < DIM (info.key_attr); keyno++) - { - struct key_attr *key_attr; - - if ((key_attr = ask_card_keyattr (keyno, &info.key_attr[keyno]))) - { - gpg_error_t err = do_change_keyattr (keyno, key_attr); - xfree (key_attr); - if (err) - { - /* Error: Better read the default key attribute again. */ - agent_release_card_info (&info); - if (get_info_for_key_operation (&info)) - goto leave; - /* Ask again for this key. */ - keyno--; - } - } - } - /* Note that INFO has not be synced. However we will only use - the serialnumber and thus it won't harm. */ - } if (check_pin_for_key_operation (&info, &forced_chv1)) goto leave; @@ -1678,31 +1696,6 @@ card_generate_subkey (ctrl_t ctrl, kbnode_t pub_keyblock) goto leave; } - /* If the cards features changeable key attributes, we ask for the - key size. */ - if (info.is_v2 && info.extcap.aac) - { - struct key_attr *key_attr; - - ask_again: - if ((key_attr = ask_card_keyattr (keyno-1, &info.key_attr[keyno-1]))) - { - err = do_change_keyattr (keyno-1, key_attr); - xfree (key_attr); - if (err) - { - /* Error: Better read the default key attribute again. */ - agent_release_card_info (&info); - err = get_info_for_key_operation (&info); - if (err) - goto leave; - goto ask_again; - } - } - /* Note that INFO has not be synced. However we will only use - the serialnumber and thus it won't harm. */ - } - err = check_pin_for_key_operation (&info, &forced_chv1); if (err) goto leave; @@ -2091,6 +2084,7 @@ enum cmdids cmdNAME, cmdURL, cmdFETCH, cmdLOGIN, cmdLANG, cmdSEX, cmdCAFPR, cmdFORCESIG, cmdGENERATE, cmdPASSWD, cmdPRIVATEDO, cmdWRITECERT, cmdREADCERT, cmdUNBLOCK, cmdFACTORYRESET, cmdKDFSETUP, + cmdKEYATTR, cmdINVCMD }; @@ -2124,6 +2118,7 @@ static struct { "unblock" , cmdUNBLOCK,0, N_("unblock the PIN using a Reset Code") }, { "factory-reset", cmdFACTORYRESET, 1, N_("destroy all keys and data")}, { "kdf-setup", cmdKDFSETUP, 1, N_("setup KDF for PIN authentication")}, + { "key-attr", cmdKEYATTR, 1, N_("change the key attribute")}, /* Note, that we do not announce these command yet. */ { "privatedo", cmdPRIVATEDO, 0, NULL }, { "readcert", cmdREADCERT, 0, NULL }, @@ -2411,6 +2406,10 @@ card_edit (ctrl_t ctrl, strlist_t commands) kdf_setup (); break; + case cmdKEYATTR: + key_attr (); + break; + case cmdQUIT: goto leave; From 0c097575a9cd923f648fb5bb695893d46400c3ad Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Fri, 30 Mar 2018 12:48:04 +0900 Subject: [PATCH 07/30] g10,scd: Support single salt for KDF data object. * g10/card-util.c (gen_kdf_data): Support single salt. (kdf_setup): Can have argument for single salt. * scd/app-openpgp.c (pin2hash_if_kdf): Support single salt. -- Gnuk has "admin-less" mode. To support "admin-less" mode with KDF feature, salt should be same for user and admin. Thus, I introduce a valid use of single salt. Signed-off-by: NIIBE Yutaka --- g10/card-util.c | 48 +++++++++++++++++++++++++++++++---------------- scd/app-openpgp.c | 29 +++++++++++++++++++++------- 2 files changed, 54 insertions(+), 23 deletions(-) diff --git a/g10/card-util.c b/g10/card-util.c index 055c9fbb4..367e31538 100644 --- a/g10/card-util.c +++ b/g10/card-util.c @@ -1978,11 +1978,12 @@ factory_reset (void) #define USER_PIN_DEFAULT "123456" #define ADMIN_PIN_DEFAULT "12345678" -#define KDF_DATA_LENGTH 110 +#define KDF_DATA_LENGTH_MIN 90 +#define KDF_DATA_LENGTH_MAX 110 /* Generate KDF data. */ static gpg_error_t -gen_kdf_data (unsigned char *data) +gen_kdf_data (unsigned char *data, int single_salt) { const unsigned char h0[] = { 0x81, 0x01, 0x03, 0x82, 0x01, 0x08, @@ -2015,14 +2016,19 @@ gen_kdf_data (unsigned char *data) salt_user = (p += sizeof h1); gcry_randomize (p, 8, GCRY_STRONG_RANDOM); p += 8; - memcpy (p, h2, sizeof h2); - p += sizeof h2; - gcry_randomize (p, 8, GCRY_STRONG_RANDOM); - p += 8; - memcpy (p, h3, sizeof h3); - salt_admin = (p += sizeof h3); - gcry_randomize (p, 8, GCRY_STRONG_RANDOM); - p += 8; + + if (!single_salt) + { + memcpy (p, h2, sizeof h2); + p += sizeof h2; + gcry_randomize (p, 8, GCRY_STRONG_RANDOM); + p += 8; + memcpy (p, h3, sizeof h3); + salt_admin = (p += sizeof h3); + gcry_randomize (p, 8, GCRY_STRONG_RANDOM); + p += 8; + } + memcpy (p, h4, sizeof h4); p += sizeof h4; err = gcry_kdf_derive (USER_PIN_DEFAULT, strlen (USER_PIN_DEFAULT), @@ -2043,11 +2049,12 @@ gen_kdf_data (unsigned char *data) /* Setup KDF data object which is used for PIN authentication. */ static void -kdf_setup (void) +kdf_setup (const char *args) { struct agent_card_info_s info; gpg_error_t err; - unsigned char kdf_data[KDF_DATA_LENGTH]; + unsigned char kdf_data[KDF_DATA_LENGTH_MAX]; + int single = (*args != 0); memset (&info, 0, sizeof info); @@ -2064,10 +2071,19 @@ kdf_setup (void) goto leave; } - if (!(err = gen_kdf_data (kdf_data)) - && !(err = agent_scd_setattr ("KDF", kdf_data, KDF_DATA_LENGTH, NULL))) - err = agent_scd_getattr ("KDF", &info); + err = gen_kdf_data (kdf_data, single); + if (err) + goto leave_error; + err = agent_scd_setattr ("KDF", kdf_data, + single ? KDF_DATA_LENGTH_MIN : KDF_DATA_LENGTH_MAX, + NULL); + if (err) + goto leave_error; + + err = agent_scd_getattr ("KDF", &info); + + leave_error: if (err) log_error (_("error for setup KDF: %s\n"), gpg_strerror (err)); @@ -2403,7 +2419,7 @@ card_edit (ctrl_t ctrl, strlist_t commands) break; case cmdKDFSETUP: - kdf_setup (); + kdf_setup (arg_string); break; case cmdKEYATTR: diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c index 7bbec03ac..ab57d90e6 100644 --- a/scd/app-openpgp.c +++ b/scd/app-openpgp.c @@ -2061,6 +2061,9 @@ get_prompt_info (app_t app, int chvno, unsigned long sigcount, int remaining) return result; } +#define KDF_DATA_LENGTH_MIN 90 +#define KDF_DATA_LENGTH_MAX 110 + /* Compute hash if KDF-DO is available. CHVNO must be 0 for reset code, 1 or 2 for user pin and 3 for admin pin. */ @@ -2068,21 +2071,33 @@ static gpg_error_t pin2hash_if_kdf (app_t app, int chvno, char *pinvalue, int *r_pinlen) { gpg_error_t err = 0; - void *relptr; + void *relptr = NULL; unsigned char *buffer; size_t buflen; if (app->app_local->extcap.kdf_do && (relptr = get_one_do (app, 0x00F9, &buffer, &buflen, NULL)) - && buflen == 110 && (buffer[2] == 0x03)) + && buflen >= KDF_DATA_LENGTH_MIN && (buffer[2] == 0x03)) { - char *salt; + const char *salt; unsigned long s2k_count; char dek[32]; + int salt_index; - salt = &buffer[(chvno==3 ? 34 : (chvno==0 ? 24 : 14))]; s2k_count = (((unsigned int)buffer[8] << 24) | (buffer[9] << 16) | (buffer[10] << 8) | buffer[11]); + + if (buflen == KDF_DATA_LENGTH_MIN) + salt_index =14; + else if (buflen == KDF_DATA_LENGTH_MAX) + salt_index = (chvno==3 ? 34 : (chvno==0 ? 24 : 14)); + else + { + err = gpg_error (GPG_ERR_INV_DATA); + goto leave; + } + + salt = &buffer[salt_index]; err = gcry_kdf_derive (pinvalue, strlen (pinvalue), GCRY_KDF_ITERSALTED_S2K, DIGEST_ALGO_SHA256, salt, 8, @@ -2094,12 +2109,12 @@ pin2hash_if_kdf (app_t app, int chvno, char *pinvalue, int *r_pinlen) memcpy (pinvalue, dek, *r_pinlen); wipememory (dek, *r_pinlen); } - - xfree (relptr); - } + } else *r_pinlen = strlen (pinvalue); + leave: + xfree (relptr); return err; } From 130ad98240c066383fa0a99bcf5e0ec72bc0dff9 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Fri, 30 Mar 2018 16:55:01 +0900 Subject: [PATCH 08/30] g10: Fix card-edit/kdf-setup for single salt. * g10/card-util.c (gen_kdf_data): Use SALT_USER. Signed-off-by: NIIBE Yutaka --- g10/card-util.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/g10/card-util.c b/g10/card-util.c index 367e31538..e33a41706 100644 --- a/g10/card-util.c +++ b/g10/card-util.c @@ -2017,7 +2017,9 @@ gen_kdf_data (unsigned char *data, int single_salt) gcry_randomize (p, 8, GCRY_STRONG_RANDOM); p += 8; - if (!single_salt) + if (single_salt) + salt_admin = salt_user; + else { memcpy (p, h2, sizeof h2); p += sizeof h2; From 6705ee42a4bd89eea3f959f75d3c14a69c1249a3 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Fri, 30 Mar 2018 19:32:02 +0900 Subject: [PATCH 09/30] po: Update Japanese translation. -- Signed-off-by: NIIBE Yutaka --- po/ja.po | 112 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 73 insertions(+), 39 deletions(-) diff --git a/po/ja.po b/po/ja.po index ac4ad784a..98979f8f0 100644 --- a/po/ja.po +++ b/po/ja.po @@ -8,9 +8,9 @@ # msgid "" msgstr "" -"Project-Id-Version: gnupg 2.2.3\n" +"Project-Id-Version: gnupg 2.2.6\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"PO-Revision-Date: 2017-12-18 14:07+0900\n" +"PO-Revision-Date: 2018-03-30 19:31+0900\n" "Last-Translator: NIIBE Yutaka \n" "Language-Team: none\n" "Language: ja\n" @@ -1325,21 +1325,8 @@ msgstr "" " 利用できる鍵長について確認ください。\n" #, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "署名鍵の鍵長は? (%u) " - -#, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "暗号化鍵の鍵長は? (%u) " - -#, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "認証鍵の鍵長は? (%u) " - -#, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" -"カードは、今、こちらのタイプの鍵を生成するように再コンフィグされました: %s\n" +msgid "What keysize do you want? (%u) " +msgstr "鍵長は? (%u) " #, c-format msgid "rounded up to %u bits\n" @@ -1353,9 +1340,45 @@ msgstr "%s 鍵長は %u-%u の範囲でなければなりません\n" msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "今、%uビットの鍵を生成するようにカードは再コンフィグされました\n" +msgid "Changing card key attribute for: " +msgstr "こちらのカード鍵の属性を変更します: " + +msgid "Signature key\n" +msgstr "署名鍵\n" + +msgid "Encryption key\n" +msgstr "暗号化鍵\n" + +msgid "Authentication key\n" +msgstr "認証鍵\n" + +msgid "Please select what kind of key you want:\n" +msgstr "ご希望の鍵の種類を選択してください:\n" + #, c-format -msgid "error changing size of key %d to %u bits: %s\n" -msgstr "鍵%dの長さを%u bit に変更する際にエラー: %s\n" +msgid " (%d) RSA\n" +msgstr " (%d) RSA\n" + +#, c-format +msgid " (%d) ECC\n" +msgstr " (%d) ECC\n" + +msgid "Invalid selection.\n" +msgstr "無効な選択です。\n" + +msgid "No change." +msgstr "変更なし。" + +#, c-format +msgid "error changing key attribute for key %d: %s\n" +msgstr "鍵%dの属性を変更する際にエラー: %s\n" + +#, c-format +msgid "error getting card info: %s\n" +msgstr "鍵情報の取得エラー: %s\n" + +msgid "This command is not supported by this card\n" +msgstr "このカードでは、このコマンドはサポートされていません。\n" msgid "Make off-card backup of encryption key? (Y/n) " msgstr "暗号化鍵のカード外バックアップを作成しますか? (Y/n) " @@ -1388,9 +1411,6 @@ msgstr " (2) 暗号化鍵\n" msgid " (3) Authentication key\n" msgstr " (3) 認証鍵\n" -msgid "Invalid selection.\n" -msgstr "無効な選択です。\n" - msgid "Please select where to store the key:\n" msgstr "鍵を保管する場所を選択してください:\n" @@ -1398,9 +1418,6 @@ msgstr "鍵を保管する場所を選択してください:\n" msgid "KEYTOCARD failed: %s\n" msgstr "KEYTOCARDが失敗しました: %s\n" -msgid "This command is not supported by this card\n" -msgstr "このカードでは、このコマンドはサポートされていません。\n" - msgid "Note: This command destroys all keys stored on the card!\n" msgstr "*注意*: このコマンドはカードに保管してあるすべての鍵を破壊します!\n" @@ -1410,6 +1427,10 @@ msgstr "続けますか? (y/N) " msgid "Really do a factory reset? (enter \"yes\") " msgstr "工場出荷リセットを行いますか? (本当なら \"yes\" と入力) " +#, c-format +msgid "error for setup KDF: %s\n" +msgstr "KDF設定のエラー: %s\n" + msgid "quit this menu" msgstr "このメニューを終了" @@ -1461,6 +1482,12 @@ msgstr "PINをリセット・コードでブロックを解除する" msgid "destroy all keys and data" msgstr "すべての鍵とデータを破壊します" +msgid "setup KDF for PIN authentication" +msgstr "PIN認証のKDFを設定する" + +msgid "change the key attribute" +msgstr "鍵の属性の変更" + msgid "gpg/card> " msgstr "gpg/card> " @@ -2080,6 +2107,10 @@ msgstr "\"%s\"は正しいメール・アドレスではありません\n" msgid "invalid pinentry mode '%s'\n" msgstr "無効な pinentry mode '%s'です\n" +#, c-format +msgid "invalid request origin '%s'\n" +msgstr "無効な送信元要求 '%s' です\n" + #, c-format msgid "'%s' is not a valid character set\n" msgstr "'%s'は、有効な文字集合ではありません\n" @@ -3099,12 +3130,12 @@ msgstr "" msgid "Key is revoked." msgstr "鍵は、失効されています。" -msgid "Really sign all user IDs? (y/N) " -msgstr "本当に全ユーザIDに署名しますか? (y/N) " - msgid "Really sign all text user IDs? (y/N) " msgstr "本当に全てのテキストユーザIDに署名しますか? (y/N) " +msgid "Really sign all user IDs? (y/N) " +msgstr "本当に全ユーザIDに署名しますか? (y/N) " + msgid "Hint: Select the user IDs to sign\n" msgstr "ヒント: まず署名するユーザIDを選択します\n" @@ -3643,9 +3674,6 @@ msgstr " (%c) 認証機能を反転する\n" msgid " (%c) Finished\n" msgstr " (%c) 完了\n" -msgid "Please select what kind of key you want:\n" -msgstr "ご希望の鍵の種類を選択してください:\n" - #, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) RSA と RSA (デフォルト)\n" @@ -3719,10 +3747,6 @@ msgstr "%s 鍵は %u から %u ビットの長さで可能です。\n" msgid "What keysize do you want for the subkey? (%u) " msgstr "副鍵の鍵長は? (%u) " -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "鍵長は? (%u) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "要求された鍵長は%uビット\n" @@ -6341,10 +6365,6 @@ msgstr "" "この証明書要求を完成するために今作った鍵のパスフレーズをもう一度入力してくだ" "さい。\n" -#, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA\n" - #, c-format msgid " (%d) Existing key\n" msgstr " (%d) 既存の鍵\n" @@ -8319,6 +8339,20 @@ msgstr "" "形式: gpg-check-pattern [オプション] パターンファイル\n" "パターンファイルに対して標準入力のパスフレーズを確認する\n" +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "署名鍵の鍵長は? (%u) " + +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "暗号化鍵の鍵長は? (%u) " + +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "認証鍵の鍵長は? (%u) " + +#~ msgid "The card will now be re-configured to generate a key of type: %s\n" +#~ msgstr "" +#~ "カードは、今、こちらのタイプの鍵を生成するように再コンフィグされました: " +#~ "%s\n" + #~ msgid "listen() failed: %s\n" #~ msgstr "listen() に失敗しました: %s\n" From a17d2d1f690ebe5d005b4589a5fe378b6487c657 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Mon, 2 Apr 2018 17:41:50 +0900 Subject: [PATCH 10/30] g10: Fix filtering by PK->REQ_USAGE. * g10/getkey.c (get_pubkey_byfprint): Filter by PK->REQ_USAGE. -- GnuPG-bug-id: 3844 Signed-off-by: NIIBE Yutaka --- g10/getkey.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/g10/getkey.c b/g10/getkey.c index dabd052e0..0405d1d21 100644 --- a/g10/getkey.c +++ b/g10/getkey.c @@ -1810,6 +1810,8 @@ get_pubkey_byfprint (ctrl_t ctrl, PKT_public_key *pk, kbnode_t *r_keyblock, ctx.items[0].mode = fprint_len == 16 ? KEYDB_SEARCH_MODE_FPR16 : KEYDB_SEARCH_MODE_FPR20; memcpy (ctx.items[0].u.fpr, fprint, fprint_len); + if (pk) + ctx.req_usage = pk->req_usage; rc = lookup (ctrl, &ctx, 0, &kb, &found_key); if (!rc && pk) pk_from_block (pk, kb, found_key); From cb1731c23cddfa524d3f51cfd82029bff853a073 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Tue, 3 Apr 2018 20:30:29 +0900 Subject: [PATCH 11/30] scd: Writing KDF resets auth state. * scd/app-openpgp.c (do_setattr): Clear auth state. Signed-off-by: NIIBE Yutaka --- scd/app-openpgp.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/scd/app-openpgp.c b/scd/app-openpgp.c index ab57d90e6..9fcfa191e 100644 --- a/scd/app-openpgp.c +++ b/scd/app-openpgp.c @@ -2459,7 +2459,7 @@ do_setattr (app_t app, const char *name, { "SM-KEY-MAC", 0x00D2, 3, 0, 1 }, { "KEY-ATTR", 0, 0, 3, 1 }, { "AESKEY", 0x00D5, 3, 0, 1 }, - { "KDF", 0x00F9, 3, 0, 1 }, + { "KDF", 0x00F9, 3, 4, 1 }, { NULL, 0 } }; int exmode; @@ -2507,6 +2507,12 @@ do_setattr (app_t app, const char *name, app->force_chv1 = (valuelen && *value == 0); else if (table[idx].special == 2) parse_login_data (app); + else if (table[idx].special == 4) + { + app->did_chv1 = 0; + app->did_chv2 = 0; + app->did_chv3 = 0; + } return rc; } From 83529e1bd14a6d39f2a8ecab9fb6aa4c1f344c73 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Wed, 4 Apr 2018 20:27:08 +0900 Subject: [PATCH 12/30] tests: Fix no gpg-agent upon removal of GNUPGHOME. * tests/gpgscm/gnupg.scm (with-ephemeral-home-directory): Add teadown-fn. * tests/gpgsm/export.scm: Use -no-atexit version and stop-agent. * tests/openpgp/decrypt-session-key.scm: Likewise. * tests/openpgp/decrypt-unwrap-verify.scm: Likewise. * tests/openpgp/defs.scm (have-opt-always-trust): Likewise. (setup-environment-no-atexit): New. (start-agent): Support no use of atexit. * tests/gpgsm/gpgsm-defs.scm (setup-gpgsm-environment-no-atexit): New. * tests/migrations/common.scm (untar-armored): Follow the change of with-ephemeral-home-directory. -- When gpg-agent detects homedir removal, it will automatically exit. Then, call of 'gpgconf --kill all' will fail. So, stop-agent should be called before the removal of homedir. Signed-off-by: NIIBE Yutaka --- tests/gpgscm/gnupg.scm | 13 +++++++++---- tests/gpgsm/export.scm | 2 +- tests/gpgsm/gpgsm-defs.scm | 6 ++++++ tests/migrations/common.scm | 2 +- tests/openpgp/decrypt-session-key.scm | 2 +- tests/openpgp/decrypt-unwrap-verify.scm | 2 +- tests/openpgp/defs.scm | 14 +++++++++----- 7 files changed, 28 insertions(+), 13 deletions(-) diff --git a/tests/gpgscm/gnupg.scm b/tests/gpgscm/gnupg.scm index 5fcf9fd21..77bf479ef 100644 --- a/tests/gpgscm/gnupg.scm +++ b/tests/gpgscm/gnupg.scm @@ -28,17 +28,22 @@ ;; Evaluate a sequence of expressions with an ephemeral home ;; directory. -(define-macro (with-ephemeral-home-directory setup-fn . expressions) +(define-macro (with-ephemeral-home-directory setup-fn teardown-fn . expressions) (let ((original-home-directory (gensym)) (ephemeral-home-directory (gensym)) - (setup (gensym))) + (setup (gensym)) + (teardown (gensym))) `(let ((,original-home-directory (getenv "GNUPGHOME")) (,ephemeral-home-directory (mkdtemp)) - (,setup (delay (,setup-fn)))) + (,setup (delay (,setup-fn))) + (,teardown (delay (,teardown-fn)))) (finally (unlink-recursively ,ephemeral-home-directory) (dynamic-wind (lambda () (setenv "GNUPGHOME" ,ephemeral-home-directory #t) (with-working-directory ,ephemeral-home-directory (force ,setup))) (lambda () ,@expressions) - (lambda () (setenv "GNUPGHOME" ,original-home-directory #t))))))) + (lambda () + (setenv "GNUPGHOME" ,ephemeral-home-directory #t) + (with-working-directory ,ephemeral-home-directory (force ,teardown)) + (setenv "GNUPGHOME" ,original-home-directory #t))))))) diff --git a/tests/gpgsm/export.scm b/tests/gpgsm/export.scm index d29b6cc48..4a8108bd3 100644 --- a/tests/gpgsm/export.scm +++ b/tests/gpgsm/export.scm @@ -25,7 +25,7 @@ (lambda (cert) (lettmp (exported) (call-check `(,@gpgsm --output ,exported --export ,cert::uid::CN)) - (with-ephemeral-home-directory setup-gpgsm-environment + (with-ephemeral-home-directory setup-gpgsm-environment-no-atexit stop-agent (call-check `(,@gpgsm --import ,exported)) (assert (sm-have-public-key? cert))))) (lambda (cert) cert::uid::CN) diff --git a/tests/gpgsm/gpgsm-defs.scm b/tests/gpgsm/gpgsm-defs.scm index c78a12797..f11864201 100644 --- a/tests/gpgsm/gpgsm-defs.scm +++ b/tests/gpgsm/gpgsm-defs.scm @@ -99,3 +99,9 @@ (call-check `(,(tool 'gpgtar) --extract --directory=. ,(cadr *args*))) (create-gpgsm-gpghome)) (start-agent)) + +(define (setup-gpgsm-environment-no-atexit) + (if (member "--unpack-tarball" *args*) + (call-check `(,(tool 'gpgtar) --extract --directory=. ,(cadr *args*))) + (create-gpgsm-gpghome)) + (start-agent #t)) diff --git a/tests/migrations/common.scm b/tests/migrations/common.scm index 54d33b987..cabfdff80 100644 --- a/tests/migrations/common.scm +++ b/tests/migrations/common.scm @@ -39,7 +39,7 @@ (define GPGTAR (path-join (getenv "objdir") "tools" (qualify "gpgtar"))) (define (untar-armored source-name) - (with-ephemeral-home-directory (lambda ()) + (with-ephemeral-home-directory (lambda ()) (lambda ()) (pipe:do (pipe:open source-name (logior O_RDONLY O_BINARY)) (pipe:spawn `(,@GPG --dearmor)) diff --git a/tests/openpgp/decrypt-session-key.scm b/tests/openpgp/decrypt-session-key.scm index 35aa7f36b..c3294e0c6 100755 --- a/tests/openpgp/decrypt-session-key.scm +++ b/tests/openpgp/decrypt-session-key.scm @@ -37,7 +37,7 @@ (lambda (name) (let* ((source (in-srcdir "tests" "openpgp" (string-append name ".asc"))) (key (get-session-key source))) - (with-ephemeral-home-directory setup-environment + (with-ephemeral-home-directory setup-environment-no-atexit stop-agent (tr:do (tr:open source) (tr:gpg "" `(--yes --decrypt --override-session-key ,key)) diff --git a/tests/openpgp/decrypt-unwrap-verify.scm b/tests/openpgp/decrypt-unwrap-verify.scm index bf7d14d41..addc2daac 100755 --- a/tests/openpgp/decrypt-unwrap-verify.scm +++ b/tests/openpgp/decrypt-unwrap-verify.scm @@ -35,7 +35,7 @@ ;; Then, verify the signature with a clean working directory ;; containing only Steve's public key. - (with-ephemeral-home-directory setup-environment + (with-ephemeral-home-directory setup-environment-no-atexit stop-agent (call-check `(,@gpg --import ,steve's-key)) (call-check `(,@gpg --verify ,unwrapped))))) '("encsig-2-keys-3" "encsig-2-keys-4"))) diff --git a/tests/openpgp/defs.scm b/tests/openpgp/defs.scm index a6347fe1f..95376521d 100644 --- a/tests/openpgp/defs.scm +++ b/tests/openpgp/defs.scm @@ -201,7 +201,7 @@ (define have-opt-always-trust (catch #f - (with-ephemeral-home-directory (lambda ()) + (with-ephemeral-home-directory (lambda ()) (lambda ()) (call-check `(,(tool 'gpg) --gpgconf-test --always-trust))) #t)) @@ -365,6 +365,10 @@ (create-gpghome) (start-agent)) +(define (setup-environment-no-atexit) + (create-gpghome) + (start-agent #t)) + (define (create-sample-files) (log "Creating sample data files") (for-each @@ -448,12 +452,12 @@ (preset-passphrases)) ;; Create the socket dir and start the agent. -(define (start-agent) +(define (start-agent . args) (log "Starting gpg-agent...") (let ((gnupghome (getenv "GNUPGHOME"))) - (atexit (lambda () - (with-home-directory gnupghome - (stop-agent))))) + (if (null? args) + (atexit (lambda () + (with-home-directory gnupghome (stop-agent)))))) (catch (log "Warning: Creating socket directory failed:" (car *error*)) (gpg-conf '--create-socketdir)) (call-check `(,(tool 'gpg-connect-agent) --verbose From 870527df0dd704c994928348c8c2910030776680 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Thu, 5 Apr 2018 10:37:23 +0900 Subject: [PATCH 13/30] g10: Let card-edit/key-attr show message when change. * g10/card-util.c (ask_card_rsa_keysize): Don't show message here. (ask_card_keyattr): Show message when change, also for ECC. Signed-off-by: NIIBE Yutaka --- g10/card-util.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/g10/card-util.c b/g10/card-util.c index e33a41706..896ead06b 100644 --- a/g10/card-util.c +++ b/g10/card-util.c @@ -1389,12 +1389,7 @@ ask_card_rsa_keysize (unsigned int nbits) "RSA", min_nbits, max_nbits); } else - { - tty_printf (_("The card will now be re-configured" - " to generate a key of %u bits\n"), req_nbits); - show_keysize_warning (); - return req_nbits; - } + return req_nbits; } } @@ -1501,8 +1496,19 @@ ask_card_keyattr (int keyno, const struct key_attr *current) } leave: - if (!key_attr) - tty_printf (_("No change.")); + if (key_attr) + { + if (key_attr->algo == PUBKEY_ALGO_RSA) + tty_printf (_("The card will now be re-configured" + " to generate a key of %u bits\n"), key_attr->nbits); + else if (key_attr->algo == PUBKEY_ALGO_ECDH + || key_attr->algo == PUBKEY_ALGO_ECDSA + || key_attr->algo == PUBKEY_ALGO_EDDSA) + tty_printf (_("The card will now be re-configured" + " to generate a key of type: %s\n"), key_attr->curve), + + show_keysize_warning (); + } return key_attr; } From d27417d3a571739329a86d9f25212f2da0c8ff72 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Thu, 5 Apr 2018 15:25:13 +0200 Subject: [PATCH 14/30] gpg: Add new OpenPGP card vendor. -- Signed-off-by: Werner Koch --- g10/card-util.c | 1 + 1 file changed, 1 insertion(+) diff --git a/g10/card-util.c b/g10/card-util.c index 896ead06b..1a249fb81 100644 --- a/g10/card-util.c +++ b/g10/card-util.c @@ -216,6 +216,7 @@ get_manufacturer (unsigned int no) case 0x1337: return "Warsaw Hackerspace"; case 0x2342: return "warpzone"; /* hackerspace Muenster. */ + case 0x63AF: return "Trustica"; case 0xBD0E: return "Paranoidlabs"; case 0xF517: return "FSIJ"; From 80b775bdbb852aa4a80292c9357e5b1876110c00 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Fri, 6 Apr 2018 14:58:14 +0900 Subject: [PATCH 15/30] agent: Support SSH signature flags. * agent/command-ssh.c (SSH_AGENT_RSA_SHA2_256): New. (SSH_AGENT_RSA_SHA2_512): New. (ssh_handler_sign_request): Override SPEC when FLAGS is specified. -- GnuPG-bug-id: 3880 Reported-by: Daniel Kahn Gillmor Signed-off-by: NIIBE Yutaka --- agent/command-ssh.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/agent/command-ssh.c b/agent/command-ssh.c index 517231a8c..d1158e70b 100644 --- a/agent/command-ssh.c +++ b/agent/command-ssh.c @@ -83,6 +83,8 @@ /* Other constants. */ #define SSH_DSA_SIGNATURE_PADDING 20 #define SSH_DSA_SIGNATURE_ELEMS 2 +#define SSH_AGENT_RSA_SHA2_256 0x02 +#define SSH_AGENT_RSA_SHA2_512 0x04 #define SPEC_FLAG_USE_PKCS1V2 (1 << 0) #define SPEC_FLAG_IS_ECDSA (1 << 1) #define SPEC_FLAG_IS_EdDSA (1 << 2) /*(lowercase 'd' on purpose.)*/ @@ -2880,11 +2882,24 @@ ssh_handler_sign_request (ctrl_t ctrl, estream_t request, estream_t response) if (err) goto out; - /* FIXME? */ err = stream_read_uint32 (request, &flags); if (err) goto out; + if (spec.algo == GCRY_PK_RSA) + { + if ((flags & SSH_AGENT_RSA_SHA2_256)) + { + spec.ssh_identifier = "rsa-sha2-256"; + spec.hash_algo = GCRY_MD_SHA256; + } + else if ((flags & SSH_AGENT_RSA_SHA2_512)) + { + spec.ssh_identifier = "rsa-sha2-512"; + spec.hash_algo = GCRY_MD_SHA512; + } + } + hash_algo = spec.hash_algo; if (!hash_algo) hash_algo = GCRY_MD_SHA1; /* Use the default. */ From 5ba74a134db431530884f03eea5410a68dbfe0f5 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 6 Apr 2018 10:18:53 +0200 Subject: [PATCH 16/30] gpg: Re-indent sig-check.c and use signature class macros. * g10/keydb.h (IS_BACK_SIG): New. * g10/sig-check.c: Re-indent and use macros. -- This makes the code easier to understand. Signed-off-by: Werner Koch --- g10/keydb.h | 1 + g10/sig-check.c | 764 ++++++++++++++++++++++++------------------------ 2 files changed, 375 insertions(+), 390 deletions(-) diff --git a/g10/keydb.h b/g10/keydb.h index 739376838..627564c3c 100644 --- a/g10/keydb.h +++ b/g10/keydb.h @@ -33,6 +33,7 @@ #define IS_KEY_SIG(s) ((s)->sig_class == 0x1f) #define IS_UID_SIG(s) (((s)->sig_class & ~3) == 0x10) #define IS_SUBKEY_SIG(s) ((s)->sig_class == 0x18) +#define IS_BACK_SIG(s) ((s)->sig_class == 0x19) #define IS_KEY_REV(s) ((s)->sig_class == 0x20) #define IS_UID_REV(s) ((s)->sig_class == 0x30) #define IS_SUBKEY_REV(s) ((s)->sig_class == 0x28) diff --git a/g10/sig-check.c b/g10/sig-check.c index 23af12b2e..1a90fd326 100644 --- a/g10/sig-check.c +++ b/g10/sig-check.c @@ -115,174 +115,177 @@ check_signature2 (ctrl_t ctrl, PKT_signature *sig, gcry_md_hd_t digest, u32 *r_expiredate, int *r_expired, int *r_revoked, PKT_public_key **r_pk) { - int rc=0; - PKT_public_key *pk; + int rc=0; + PKT_public_key *pk; - if (r_expiredate) - *r_expiredate = 0; - if (r_expired) - *r_expired = 0; - if (r_revoked) - *r_revoked = 0; - if (r_pk) - *r_pk = NULL; + if (r_expiredate) + *r_expiredate = 0; + if (r_expired) + *r_expired = 0; + if (r_revoked) + *r_revoked = 0; + if (r_pk) + *r_pk = NULL; - pk = xtrycalloc (1, sizeof *pk); - if (!pk) - return gpg_error_from_syserror (); + pk = xtrycalloc (1, sizeof *pk); + if (!pk) + return gpg_error_from_syserror (); - if ( (rc=openpgp_md_test_algo(sig->digest_algo)) ) - ; /* We don't have this digest. */ - else if (! gnupg_digest_is_allowed (opt.compliance, 0, sig->digest_algo)) - { - /* Compliance failure. */ - log_info (_("digest algorithm '%s' may not be used in %s mode\n"), - gcry_md_algo_name (sig->digest_algo), - gnupg_compliance_option_string (opt.compliance)); - rc = gpg_error (GPG_ERR_DIGEST_ALGO); - } - else if ((rc=openpgp_pk_test_algo(sig->pubkey_algo))) - ; /* We don't have this pubkey algo. */ - else if (!gcry_md_is_enabled (digest,sig->digest_algo)) - { - /* Sanity check that the md has a context for the hash that the - sig is expecting. This can happen if a onepass sig header does - not match the actual sig, and also if the clearsign "Hash:" - header is missing or does not match the actual sig. */ + if ((rc=openpgp_md_test_algo(sig->digest_algo))) + { + /* We don't have this digest. */ + } + else if (!gnupg_digest_is_allowed (opt.compliance, 0, sig->digest_algo)) + { + /* Compliance failure. */ + log_info (_("digest algorithm '%s' may not be used in %s mode\n"), + gcry_md_algo_name (sig->digest_algo), + gnupg_compliance_option_string (opt.compliance)); + rc = gpg_error (GPG_ERR_DIGEST_ALGO); + } + else if ((rc=openpgp_pk_test_algo(sig->pubkey_algo))) + { + /* We don't have this pubkey algo. */ + } + else if (!gcry_md_is_enabled (digest,sig->digest_algo)) + { + /* Sanity check that the md has a context for the hash that the + * sig is expecting. This can happen if a onepass sig header + * does not match the actual sig, and also if the clearsign + * "Hash:" header is missing or does not match the actual sig. */ + log_info(_("WARNING: signature digest conflict in message\n")); + rc = gpg_error (GPG_ERR_GENERAL); + } + else if (get_pubkey (ctrl, pk, sig->keyid)) + rc = gpg_error (GPG_ERR_NO_PUBKEY); + else if (!gnupg_pk_is_allowed (opt.compliance, PK_USE_VERIFICATION, + pk->pubkey_algo, pk->pkey, + nbits_from_pk (pk), + NULL)) + { + /* Compliance failure. */ + log_error (_("key %s may not be used for signing in %s mode\n"), + keystr_from_pk (pk), + gnupg_compliance_option_string (opt.compliance)); + rc = gpg_error (GPG_ERR_PUBKEY_ALGO); + } + else if (!pk->flags.valid) + { + /* You cannot have a good sig from an invalid key. */ + rc = gpg_error (GPG_ERR_BAD_PUBKEY); + } + else + { + if (r_expiredate) + *r_expiredate = pk->expiredate; - log_info(_("WARNING: signature digest conflict in message\n")); - rc = gpg_error (GPG_ERR_GENERAL); - } - else if( get_pubkey (ctrl, pk, sig->keyid ) ) - rc = gpg_error (GPG_ERR_NO_PUBKEY); - else if (! gnupg_pk_is_allowed (opt.compliance, PK_USE_VERIFICATION, - pk->pubkey_algo, pk->pkey, - nbits_from_pk (pk), - NULL)) - { - /* Compliance failure. */ - log_error (_("key %s may not be used for signing in %s mode\n"), - keystr_from_pk (pk), - gnupg_compliance_option_string (opt.compliance)); - rc = gpg_error (GPG_ERR_PUBKEY_ALGO); - } - else if(!pk->flags.valid) - { - /* You cannot have a good sig from an invalid key. */ - rc = gpg_error (GPG_ERR_BAD_PUBKEY); - } - else - { - if(r_expiredate) - *r_expiredate = pk->expiredate; + rc = check_signature_end (pk, sig, digest, r_expired, r_revoked, NULL); - rc = check_signature_end (pk, sig, digest, r_expired, r_revoked, NULL); + /* Check the backsig. This is a back signature (0x19) from + * the subkey on the primary key. The idea here is that it + * should not be possible for someone to "steal" subkeys and + * claim them as their own. The attacker couldn't actually + * use the subkey, but they could try and claim ownership of + * any signatures issued by it. */ + if (!rc && !pk->flags.primary && pk->flags.backsig < 2) + { + if (!pk->flags.backsig) + { + log_info (_("WARNING: signing subkey %s is not" + " cross-certified\n"),keystr_from_pk(pk)); + log_info (_("please see %s for more information\n"), + "https://gnupg.org/faq/subkey-cross-certify.html"); + /* The default option --require-cross-certification + * makes this warning an error. */ + if (opt.flags.require_cross_cert) + rc = gpg_error (GPG_ERR_GENERAL); + } + else if(pk->flags.backsig == 1) + { + log_info (_("WARNING: signing subkey %s has an invalid" + " cross-certification\n"), keystr_from_pk(pk)); + rc = gpg_error (GPG_ERR_GENERAL); + } + } - /* Check the backsig. This is a 0x19 signature from the - subkey on the primary key. The idea here is that it should - not be possible for someone to "steal" subkeys and claim - them as their own. The attacker couldn't actually use the - subkey, but they could try and claim ownership of any - signatures issued by it. */ - if (!rc && !pk->flags.primary && pk->flags.backsig < 2) - { - if (!pk->flags.backsig) - { - log_info(_("WARNING: signing subkey %s is not" - " cross-certified\n"),keystr_from_pk(pk)); - log_info(_("please see %s for more information\n"), - "https://gnupg.org/faq/subkey-cross-certify.html"); - /* --require-cross-certification makes this warning an - error. TODO: change the default to require this - after more keys have backsigs. */ - if(opt.flags.require_cross_cert) - rc = gpg_error (GPG_ERR_GENERAL); - } - else if(pk->flags.backsig == 1) - { - log_info(_("WARNING: signing subkey %s has an invalid" - " cross-certification\n"),keystr_from_pk(pk)); - rc = gpg_error (GPG_ERR_GENERAL); - } - } - - } - - if( !rc && sig->sig_class < 2 && is_status_enabled() ) { - /* This signature id works best with DLP algorithms because - * they use a random parameter for every signature. Instead of - * this sig-id we could have also used the hash of the document - * and the timestamp, but the drawback of this is, that it is - * not possible to sign more than one identical document within - * one second. Some remote batch processing applications might - * like this feature here. - * - * Note that before 2.0.10, we used RIPE-MD160 for the hash - * and accidentally didn't include the timestamp and algorithm - * information in the hash. Given that this feature is not - * commonly used and that a replay attacks detection should - * not solely be based on this feature (because it does not - * work with RSA), we take the freedom and switch to SHA-1 - * with 2.0.10 to take advantage of hardware supported SHA-1 - * implementations. We also include the missing information - * in the hash. Note also the SIG_ID as computed by gpg 1.x - * and gpg 2.x didn't matched either because 2.x used to print - * MPIs not in PGP format. */ - u32 a = sig->timestamp; - int nsig = pubkey_get_nsig( sig->pubkey_algo ); - unsigned char *p, *buffer; - size_t n, nbytes; - int i; - char hashbuf[20]; - - nbytes = 6; - for (i=0; i < nsig; i++ ) - { - if (gcry_mpi_print (GCRYMPI_FMT_USG, NULL, 0, &n, sig->data[i])) - BUG(); - nbytes += n; - } - - /* Make buffer large enough to be later used as output buffer. */ - if (nbytes < 100) - nbytes = 100; - nbytes += 10; /* Safety margin. */ - - /* Fill and hash buffer. */ - buffer = p = xmalloc (nbytes); - *p++ = sig->pubkey_algo; - *p++ = sig->digest_algo; - *p++ = (a >> 24) & 0xff; - *p++ = (a >> 16) & 0xff; - *p++ = (a >> 8) & 0xff; - *p++ = a & 0xff; - nbytes -= 6; - for (i=0; i < nsig; i++ ) - { - if (gcry_mpi_print (GCRYMPI_FMT_PGP, p, nbytes, &n, sig->data[i])) - BUG(); - p += n; - nbytes -= n; - } - gcry_md_hash_buffer (GCRY_MD_SHA1, hashbuf, buffer, p-buffer); - - p = make_radix64_string (hashbuf, 20); - sprintf (buffer, "%s %s %lu", - p, strtimestamp (sig->timestamp), (ulong)sig->timestamp); - xfree (p); - write_status_text (STATUS_SIG_ID, buffer); - xfree (buffer); } - if (r_pk) - *r_pk = pk; - else - { - release_public_key_parts (pk); - xfree (pk); - } + if (!rc && sig->sig_class < 2 && is_status_enabled ()) + { + /* This signature id works best with DLP algorithms because + * they use a random parameter for every signature. Instead of + * this sig-id we could have also used the hash of the document + * and the timestamp, but the drawback of this is, that it is + * not possible to sign more than one identical document within + * one second. Some remote batch processing applications might + * like this feature here. + * + * Note that before 2.0.10, we used RIPE-MD160 for the hash + * and accidentally didn't include the timestamp and algorithm + * information in the hash. Given that this feature is not + * commonly used and that a replay attacks detection should + * not solely be based on this feature (because it does not + * work with RSA), we take the freedom and switch to SHA-1 + * with 2.0.10 to take advantage of hardware supported SHA-1 + * implementations. We also include the missing information + * in the hash. Note also the SIG_ID as computed by gpg 1.x + * and gpg 2.x didn't matched either because 2.x used to print + * MPIs not in PGP format. */ + u32 a = sig->timestamp; + int nsig = pubkey_get_nsig (sig->pubkey_algo); + unsigned char *p, *buffer; + size_t n, nbytes; + int i; + char hashbuf[20]; - return rc; + nbytes = 6; + for (i=0; i < nsig; i++ ) + { + if (gcry_mpi_print (GCRYMPI_FMT_USG, NULL, 0, &n, sig->data[i])) + BUG(); + nbytes += n; + } + + /* Make buffer large enough to be later used as output buffer. */ + if (nbytes < 100) + nbytes = 100; + nbytes += 10; /* Safety margin. */ + + /* Fill and hash buffer. */ + buffer = p = xmalloc (nbytes); + *p++ = sig->pubkey_algo; + *p++ = sig->digest_algo; + *p++ = (a >> 24) & 0xff; + *p++ = (a >> 16) & 0xff; + *p++ = (a >> 8) & 0xff; + *p++ = a & 0xff; + nbytes -= 6; + for (i=0; i < nsig; i++ ) + { + if (gcry_mpi_print (GCRYMPI_FMT_PGP, p, nbytes, &n, sig->data[i])) + BUG(); + p += n; + nbytes -= n; + } + gcry_md_hash_buffer (GCRY_MD_SHA1, hashbuf, buffer, p-buffer); + + p = make_radix64_string (hashbuf, 20); + sprintf (buffer, "%s %s %lu", + p, strtimestamp (sig->timestamp), (ulong)sig->timestamp); + xfree (p); + write_status_text (STATUS_SIG_ID, buffer); + xfree (buffer); + } + + if (r_pk) + *r_pk = pk; + else + { + release_public_key_parts (pk); + xfree (pk); + } + + return rc; } @@ -307,87 +310,86 @@ static int check_signature_metadata_validity (PKT_public_key *pk, PKT_signature *sig, int *r_expired, int *r_revoked) { - u32 cur_time; + u32 cur_time; - if(r_expired) - *r_expired = 0; - if(r_revoked) - *r_revoked = 0; + if (r_expired) + *r_expired = 0; + if (r_revoked) + *r_revoked = 0; - if( pk->timestamp > sig->timestamp ) - { - ulong d = pk->timestamp - sig->timestamp; - if ( d < 86400 ) - { - log_info - (ngettext - ("public key %s is %lu second newer than the signature\n", - "public key %s is %lu seconds newer than the signature\n", - d), keystr_from_pk (pk), d); - } - else - { - d /= 86400; - log_info - (ngettext - ("public key %s is %lu day newer than the signature\n", - "public key %s is %lu days newer than the signature\n", - d), keystr_from_pk (pk), d); - } - if (!opt.ignore_time_conflict) - return GPG_ERR_TIME_CONFLICT; /* pubkey newer than signature. */ - } - - cur_time = make_timestamp(); - if( pk->timestamp > cur_time ) - { - ulong d = pk->timestamp - cur_time; - if (d < 86400) - { - log_info (ngettext("key %s was created %lu second" - " in the future (time warp or clock problem)\n", - "key %s was created %lu seconds" - " in the future (time warp or clock problem)\n", - d), keystr_from_pk (pk), d); - } - else - { - d /= 86400; - log_info (ngettext("key %s was created %lu day" - " in the future (time warp or clock problem)\n", - "key %s was created %lu days" - " in the future (time warp or clock problem)\n", - d), keystr_from_pk (pk), d); - } - if (!opt.ignore_time_conflict) - return GPG_ERR_TIME_CONFLICT; - } - - /* Check whether the key has expired. We check the has_expired - flag which is set after a full evaluation of the key (getkey.c) - as well as a simple compare to the current time in case the - merge has for whatever reasons not been done. */ - if( pk->has_expired || (pk->expiredate && pk->expiredate < cur_time)) { - char buf[11]; - if (opt.verbose) - log_info(_("Note: signature key %s expired %s\n"), - keystr_from_pk(pk), asctimestamp( pk->expiredate ) ); - sprintf(buf,"%lu",(ulong)pk->expiredate); - write_status_text(STATUS_KEYEXPIRED,buf); - if(r_expired) - *r_expired = 1; + if (pk->timestamp > sig->timestamp ) + { + ulong d = pk->timestamp - sig->timestamp; + if ( d < 86400 ) + { + log_info (ngettext + ("public key %s is %lu second newer than the signature\n", + "public key %s is %lu seconds newer than the signature\n", + d), keystr_from_pk (pk), d); + } + else + { + d /= 86400; + log_info (ngettext + ("public key %s is %lu day newer than the signature\n", + "public key %s is %lu days newer than the signature\n", + d), keystr_from_pk (pk), d); + } + if (!opt.ignore_time_conflict) + return GPG_ERR_TIME_CONFLICT; /* pubkey newer than signature. */ } - if (pk->flags.revoked) - { - if (opt.verbose) - log_info (_("Note: signature key %s has been revoked\n"), - keystr_from_pk(pk)); - if (r_revoked) - *r_revoked=1; - } + cur_time = make_timestamp (); + if (pk->timestamp > cur_time) + { + ulong d = pk->timestamp - cur_time; + if (d < 86400) + { + log_info (ngettext("key %s was created %lu second" + " in the future (time warp or clock problem)\n", + "key %s was created %lu seconds" + " in the future (time warp or clock problem)\n", + d), keystr_from_pk (pk), d); + } + else + { + d /= 86400; + log_info (ngettext("key %s was created %lu day" + " in the future (time warp or clock problem)\n", + "key %s was created %lu days" + " in the future (time warp or clock problem)\n", + d), keystr_from_pk (pk), d); + } + if (!opt.ignore_time_conflict) + return GPG_ERR_TIME_CONFLICT; + } - return 0; + /* Check whether the key has expired. We check the has_expired + * flag which is set after a full evaluation of the key (getkey.c) + * as well as a simple compare to the current time in case the + * merge has for whatever reasons not been done. */ + if (pk->has_expired || (pk->expiredate && pk->expiredate < cur_time)) + { + char buf[11]; + if (opt.verbose) + log_info (_("Note: signature key %s expired %s\n"), + keystr_from_pk(pk), asctimestamp( pk->expiredate ) ); + snprintf (buf, sizeof buf, "%lu",(ulong)pk->expiredate); + write_status_text (STATUS_KEYEXPIRED, buf); + if (r_expired) + *r_expired = 1; + } + + if (pk->flags.revoked) + { + if (opt.verbose) + log_info (_("Note: signature key %s has been revoked\n"), + keystr_from_pk(pk)); + if (r_revoked) + *r_revoked=1; + } + + return 0; } @@ -425,150 +427,165 @@ check_signature_end (PKT_public_key *pk, PKT_signature *sig, gcry_md_hd_t digest, int *r_expired, int *r_revoked, PKT_public_key *ret_pk) { - int rc = 0; - - if ((rc = check_signature_metadata_validity (pk, sig, - r_expired, r_revoked))) - return rc; - - if ((rc = check_signature_end_simple (pk, sig, digest))) - return rc; - - if(!rc && ret_pk) - copy_public_key(ret_pk,pk); + int rc = 0; + if ((rc = check_signature_metadata_validity (pk, sig, + r_expired, r_revoked))) return rc; + + if ((rc = check_signature_end_simple (pk, sig, digest))) + return rc; + + if (!rc && ret_pk) + copy_public_key(ret_pk,pk); + + return rc; } + /* This function is similar to check_signature_end, but it only checks - whether the signature was generated by PK. It does not check - expiration, revocation, etc. */ + * whether the signature was generated by PK. It does not check + * expiration, revocation, etc. */ static int check_signature_end_simple (PKT_public_key *pk, PKT_signature *sig, gcry_md_hd_t digest) { - gcry_mpi_t result = NULL; - int rc = 0; - const struct weakhash *weak; + gcry_mpi_t result = NULL; + int rc = 0; + const struct weakhash *weak; - if (!opt.flags.allow_weak_digest_algos) + if (!opt.flags.allow_weak_digest_algos) + { for (weak = opt.weak_digests; weak; weak = weak->next) if (sig->digest_algo == weak->algo) { print_digest_rejected_note(sig->digest_algo); return GPG_ERR_DIGEST_ALGO; } - - /* Make sure the digest algo is enabled (in case of a detached - signature). */ - gcry_md_enable (digest, sig->digest_algo); - - /* Complete the digest. */ - if( sig->version >= 4 ) - gcry_md_putc( digest, sig->version ); - gcry_md_putc( digest, sig->sig_class ); - if( sig->version < 4 ) { - u32 a = sig->timestamp; - gcry_md_putc( digest, (a >> 24) & 0xff ); - gcry_md_putc( digest, (a >> 16) & 0xff ); - gcry_md_putc( digest, (a >> 8) & 0xff ); - gcry_md_putc( digest, a & 0xff ); } - else { - byte buf[6]; - size_t n; - gcry_md_putc( digest, sig->pubkey_algo ); - gcry_md_putc( digest, sig->digest_algo ); - if( sig->hashed ) { - n = sig->hashed->len; - gcry_md_putc (digest, (n >> 8) ); - gcry_md_putc (digest, n ); - gcry_md_write (digest, sig->hashed->data, n); - n += 6; + + /* Make sure the digest algo is enabled (in case of a detached + * signature). */ + gcry_md_enable (digest, sig->digest_algo); + + /* Complete the digest. */ + if (sig->version >= 4) + gcry_md_putc (digest, sig->version); + + gcry_md_putc( digest, sig->sig_class ); + if (sig->version < 4) + { + u32 a = sig->timestamp; + gcry_md_putc (digest, ((a >> 24) & 0xff)); + gcry_md_putc (digest, ((a >> 16) & 0xff)); + gcry_md_putc (digest, ((a >> 8) & 0xff)); + gcry_md_putc (digest, ( a & 0xff)); + } + else + { + byte buf[6]; + size_t n; + gcry_md_putc (digest, sig->pubkey_algo); + gcry_md_putc (digest, sig->digest_algo); + if (sig->hashed) + { + n = sig->hashed->len; + gcry_md_putc (digest, (n >> 8) ); + gcry_md_putc (digest, n ); + gcry_md_write (digest, sig->hashed->data, n); + n += 6; } - else { + else + { /* Two octets for the (empty) length of the hashed - section. */ + * section. */ gcry_md_putc (digest, 0); gcry_md_putc (digest, 0); n = 6; } - /* add some magic per Section 5.2.4 of RFC 4880. */ - buf[0] = sig->version; - buf[1] = 0xff; - buf[2] = n >> 24; - buf[3] = n >> 16; - buf[4] = n >> 8; - buf[5] = n; - gcry_md_write( digest, buf, 6 ); + /* Add some magic per Section 5.2.4 of RFC 4880. */ + buf[0] = sig->version; + buf[1] = 0xff; + buf[2] = n >> 24; + buf[3] = n >> 16; + buf[4] = n >> 8; + buf[5] = n; + gcry_md_write( digest, buf, 6 ); } - gcry_md_final( digest ); + gcry_md_final( digest ); - /* Convert the digest to an MPI. */ - result = encode_md_value (pk, digest, sig->digest_algo ); - if (!result) - return GPG_ERR_GENERAL; + /* Convert the digest to an MPI. */ + result = encode_md_value (pk, digest, sig->digest_algo ); + if (!result) + return GPG_ERR_GENERAL; - /* Verify the signature. */ - rc = pk_verify( pk->pubkey_algo, result, sig->data, pk->pkey ); - gcry_mpi_release (result); + /* Verify the signature. */ + rc = pk_verify (pk->pubkey_algo, result, sig->data, pk->pkey); + gcry_mpi_release (result); - if( !rc && sig->flags.unknown_critical ) - { - log_info(_("assuming bad signature from key %s" - " due to an unknown critical bit\n"),keystr_from_pk(pk)); - rc = GPG_ERR_BAD_SIGNATURE; - } + if (!rc && sig->flags.unknown_critical) + { + log_info(_("assuming bad signature from key %s" + " due to an unknown critical bit\n"),keystr_from_pk(pk)); + rc = GPG_ERR_BAD_SIGNATURE; + } - return rc; + return rc; } /* Add a uid node to a hash context. See section 5.2.4, paragraph 4 - of RFC 4880. */ + * of RFC 4880. */ static void hash_uid_packet (PKT_user_id *uid, gcry_md_hd_t md, PKT_signature *sig ) { - if( uid->attrib_data ) { - if( sig->version >=4 ) { - byte buf[5]; - buf[0] = 0xd1; /* packet of type 17 */ - buf[1] = uid->attrib_len >> 24; /* always use 4 length bytes */ - buf[2] = uid->attrib_len >> 16; - buf[3] = uid->attrib_len >> 8; - buf[4] = uid->attrib_len; - gcry_md_write( md, buf, 5 ); + if (uid->attrib_data) + { + if (sig->version >=4) + { + byte buf[5]; + buf[0] = 0xd1; /* packet of type 17 */ + buf[1] = uid->attrib_len >> 24; /* always use 4 length bytes */ + buf[2] = uid->attrib_len >> 16; + buf[3] = uid->attrib_len >> 8; + buf[4] = uid->attrib_len; + gcry_md_write( md, buf, 5 ); } - gcry_md_write( md, uid->attrib_data, uid->attrib_len ); + gcry_md_write( md, uid->attrib_data, uid->attrib_len ); } - else { - if( sig->version >=4 ) { - byte buf[5]; - buf[0] = 0xb4; /* indicates a userid packet */ - buf[1] = uid->len >> 24; /* always use 4 length bytes */ - buf[2] = uid->len >> 16; - buf[3] = uid->len >> 8; - buf[4] = uid->len; - gcry_md_write( md, buf, 5 ); + else + { + if (sig->version >=4) + { + byte buf[5]; + buf[0] = 0xb4; /* indicates a userid packet */ + buf[1] = uid->len >> 24; /* always use 4 length bytes */ + buf[2] = uid->len >> 16; + buf[3] = uid->len >> 8; + buf[4] = uid->len; + gcry_md_write( md, buf, 5 ); } - gcry_md_write( md, uid->name, uid->len ); + gcry_md_write( md, uid->name, uid->len ); } } static void cache_sig_result ( PKT_signature *sig, int result ) { - if ( !result ) { - sig->flags.checked = 1; - sig->flags.valid = 1; + if (!result) + { + sig->flags.checked = 1; + sig->flags.valid = 1; } - else if ( gpg_err_code (result) == GPG_ERR_BAD_SIGNATURE ) { - sig->flags.checked = 1; - sig->flags.valid = 0; + else if (gpg_err_code (result) == GPG_ERR_BAD_SIGNATURE) + { + sig->flags.checked = 1; + sig->flags.valid = 0; } - else { - sig->flags.checked = 0; - sig->flags.valid = 0; + else + { + sig->flags.checked = 0; + sig->flags.valid = 0; } } @@ -686,14 +703,14 @@ check_revocation_keys (ctrl_t ctrl, PKT_public_key *pk, PKT_signature *sig) } /* Check that the backsig BACKSIG from the subkey SUB_PK to its - primary key MAIN_PK is valid. - - Backsigs (0x19) have the same format as binding sigs (0x18), but - this function is simpler than check_key_signature in a few ways. - For example, there is no support for expiring backsigs since it is - questionable what such a thing actually means. Note also that the - sig cache check here, unlike other sig caches in GnuPG, is not - persistent. */ + * primary key MAIN_PK is valid. + * + * Backsigs (0x19) have the same format as binding sigs (0x18), but + * this function is simpler than check_key_signature in a few ways. + * For example, there is no support for expiring backsigs since it is + * questionable what such a thing actually means. Note also that the + * sig cache check here, unlike other sig caches in GnuPG, is not + * persistent. */ int check_backsig (PKT_public_key *main_pk,PKT_public_key *sub_pk, PKT_signature *backsig) @@ -789,32 +806,18 @@ check_signature_over_key_or_uid (ctrl_t ctrl, PKT_public_key *signer, /* A signature's class indicates the type of packet that it signs. */ - if (/* Primary key binding (made by a subkey). */ - sig->sig_class == 0x19 - /* Direct key signature. */ - || sig->sig_class == 0x1f - /* Primary key revocation. */ - || sig->sig_class == 0x20) + if (IS_BACK_SIG (sig) || IS_KEY_SIG (sig) || IS_KEY_REV (sig)) { /* Key revocations can only be over primary keys. */ if (packet->pkttype != PKT_PUBLIC_KEY) return gpg_error (GPG_ERR_SIG_CLASS); } - else if (/* Subkey binding. */ - sig->sig_class == 0x18 - /* Subkey revocation. */ - || sig->sig_class == 0x28) + else if (IS_SUBKEY_SIG (sig) || IS_SUBKEY_REV (sig)) { if (packet->pkttype != PKT_PUBLIC_SUBKEY) return gpg_error (GPG_ERR_SIG_CLASS); } - else if (/* Certification. */ - sig->sig_class == 0x10 - || sig->sig_class == 0x11 - || sig->sig_class == 0x12 - || sig->sig_class == 0x13 - /* Certification revocation. */ - || sig->sig_class == 0x30) + else if (IS_UID_SIG (sig) || IS_UID_REV (sig)) { if (packet->pkttype != PKT_USER_ID) return gpg_error (GPG_ERR_SIG_CLASS); @@ -849,7 +852,7 @@ check_signature_over_key_or_uid (ctrl_t ctrl, PKT_public_key *signer, else { /* See if one of the subkeys was the signer (although this - is extremely unlikely). */ + * is extremely unlikely). */ kbnode_t ctx = NULL; kbnode_t n; @@ -909,40 +912,27 @@ check_signature_over_key_or_uid (ctrl_t ctrl, PKT_public_key *signer, /* Hash the relevant data. */ - if (/* Direct key signature. */ - sig->sig_class == 0x1f - /* Primary key revocation. */ - || sig->sig_class == 0x20) + if (IS_KEY_SIG (sig) || IS_KEY_REV (sig)) { log_assert (packet->pkttype == PKT_PUBLIC_KEY); hash_public_key (md, packet->pkt.public_key); rc = check_signature_end_simple (signer, sig, md); } - else if (/* Primary key binding (made by a subkey). */ - sig->sig_class == 0x19) + else if (IS_BACK_SIG (sig)) { log_assert (packet->pkttype == PKT_PUBLIC_KEY); hash_public_key (md, packet->pkt.public_key); hash_public_key (md, signer); rc = check_signature_end_simple (signer, sig, md); } - else if (/* Subkey binding. */ - sig->sig_class == 0x18 - /* Subkey revocation. */ - || sig->sig_class == 0x28) + else if (IS_SUBKEY_SIG (sig) || IS_SUBKEY_REV (sig)) { log_assert (packet->pkttype == PKT_PUBLIC_SUBKEY); hash_public_key (md, pripk); hash_public_key (md, packet->pkt.public_key); rc = check_signature_end_simple (signer, sig, md); } - else if (/* Certification. */ - sig->sig_class == 0x10 - || sig->sig_class == 0x11 - || sig->sig_class == 0x12 - || sig->sig_class == 0x13 - /* Certification revocation. */ - || sig->sig_class == 0x30) + else if (IS_UID_SIG (sig) || IS_UID_REV (sig)) { log_assert (packet->pkttype == PKT_USER_ID); hash_public_key (md, pripk); @@ -1073,7 +1063,7 @@ check_key_signature2 (ctrl_t ctrl, if (rc) return rc; - if (sig->sig_class == 0x20) /* key revocation */ + if (IS_KEY_REV (sig)) { u32 keyid[2]; keyid_from_pk( pk, keyid ); @@ -1091,8 +1081,7 @@ check_key_signature2 (ctrl_t ctrl, is_selfsig, ret_pk); } } - else if (sig->sig_class == 0x28 /* subkey revocation */ - || sig->sig_class == 0x18) /* key binding */ + else if (IS_SUBKEY_REV (sig) || IS_SUBKEY_SIG (sig)) { kbnode_t snode = find_prev_kbnode (root, node, PKT_PUBLIC_SUBKEY); @@ -1102,9 +1091,10 @@ check_key_signature2 (ctrl_t ctrl, r_expired, NULL); if (! rc) { - /* 0x28 must be a self-sig, but 0x18 needn't be. */ + /* A subkey revocation (0x28) must be a self-sig, but a + * subkey signature (0x18) needn't be. */ rc = check_signature_over_key_or_uid (ctrl, - sig->sig_class == 0x18 + IS_SUBKEY_SIG (sig) ? NULL : pk, sig, root, snode->pkt, is_selfsig, ret_pk); @@ -1114,7 +1104,7 @@ check_key_signature2 (ctrl_t ctrl, { if (opt.verbose) { - if (sig->sig_class == 0x28) + if (IS_SUBKEY_REV (sig)) log_info (_("key %s: no subkey for subkey" " revocation signature\n"), keystr_from_pk(pk)); else if (sig->sig_class == 0x18) @@ -1124,7 +1114,7 @@ check_key_signature2 (ctrl_t ctrl, rc = GPG_ERR_SIG_CLASS; } } - else if (sig->sig_class == 0x1f) /* direct key signature */ + else if (IS_KEY_SIG (sig)) /* direct key signature */ { rc = check_signature_metadata_validity (pk, sig, r_expired, NULL); @@ -1132,13 +1122,7 @@ check_key_signature2 (ctrl_t ctrl, rc = check_signature_over_key_or_uid (ctrl, pk, sig, root, root->pkt, is_selfsig, ret_pk); } - else if (/* Certification. */ - sig->sig_class == 0x10 - || sig->sig_class == 0x11 - || sig->sig_class == 0x12 - || sig->sig_class == 0x13 - /* Certification revocation. */ - || sig->sig_class == 0x30) + else if (IS_UID_SIG (sig) || IS_UID_REV (sig)) { kbnode_t unode = find_prev_kbnode (root, node, PKT_USER_ID); From cfd07798087f671c134eef056229bb30e08cc77c Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 6 Apr 2018 11:01:46 +0200 Subject: [PATCH 17/30] doc: Add a code comment about back signatures. -- --- g10/keydb.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/g10/keydb.h b/g10/keydb.h index 627564c3c..cc99241f5 100644 --- a/g10/keydb.h +++ b/g10/keydb.h @@ -26,7 +26,9 @@ #include "../common/util.h" #include "packet.h" -/* What qualifies as a certification (rather than a signature?) */ +/* What qualifies as a certification (key-signature in contrast to a + * data signature)? Note that a back signature is special and can be + * made by key and data signatures capable subkeys.) */ #define IS_CERT(s) (IS_KEY_SIG(s) || IS_UID_SIG(s) || IS_SUBKEY_SIG(s) \ || IS_KEY_REV(s) || IS_UID_REV(s) || IS_SUBKEY_REV(s)) #define IS_SIG(s) (!IS_CERT(s)) From 0336e5d1a7b9d46e06c838e6a98aecfcc9542882 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 6 Apr 2018 17:32:08 +0200 Subject: [PATCH 18/30] gpg: Emit FAILURE stati now in almost all cases. * g10/cpr.c (write_status_failure): Make it print only once. * g10/gpg.c (wrong_args): Bump error counter. (g10_exit): Print a FAILURE status if we ever did a log_error etc. (main): Use log_error instead of log_fatal at one place. Print a FAILURE status for a bad option. Ditto for certain exit points so that we can see different error locations. -- This makes it easier to detect errors by tools which have no way to get the exit code (e.g. due to double forking). GnuPG-bug-id: 3872 Signed-off-by: Werner Koch --- g10/cpr.c | 6 +++++- g10/gpg.c | 56 +++++++++++++++++++++++++++++++++++++++++++++++------- sm/gpgsm.c | 14 +++++++++++--- 3 files changed, 65 insertions(+), 11 deletions(-) diff --git a/g10/cpr.c b/g10/cpr.c index a7fd1aaba..435442636 100644 --- a/g10/cpr.c +++ b/g10/cpr.c @@ -245,9 +245,13 @@ write_status_errcode (const char *where, int errcode) void write_status_failure (const char *where, gpg_error_t err) { + static int any_failure_printed; + if (!statusfp || !status_currently_allowed (STATUS_FAILURE)) return; /* Not enabled or allowed. */ - + if (any_failure_printed) + return; + any_failure_printed = 1; es_fprintf (statusfp, "[GNUPG:] %s %s %u\n", get_status_string (STATUS_FAILURE), where, err); if (es_fflush (statusfp) && opt.exit_on_status_write_error) diff --git a/g10/gpg.c b/g10/gpg.c index bfff7a567..2c93a8380 100644 --- a/g10/gpg.c +++ b/g10/gpg.c @@ -1166,6 +1166,7 @@ static void wrong_args( const char *text) { es_fprintf (es_stderr, _("usage: %s [options] %s\n"), GPG_NAME, text); + log_inc_errorcount (); g10_exit(2); } @@ -3107,7 +3108,7 @@ main (int argc, char **argv) case oCommandFD: opt.command_fd = translate_sys2libc_fd_int (pargs.r.ret_int, 0); if (! gnupg_fd_valid (opt.command_fd)) - log_fatal ("command-fd is invalid: %s\n", strerror (errno)); + log_error ("command-fd is invalid: %s\n", strerror (errno)); break; case oCommandFile: opt.command_fd = open_info_file (pargs.r.ret_str, 0, 1); @@ -3563,7 +3564,16 @@ main (int argc, char **argv) case oNoop: break; default: - pargs.err = configfp? ARGPARSE_PRINT_WARNING:ARGPARSE_PRINT_ERROR; + if (configfp) + pargs.err = ARGPARSE_PRINT_WARNING; + else + { + pargs.err = ARGPARSE_PRINT_ERROR; + /* The argparse fucntion calls a plain exit and thus + * we need to print a status here. */ + write_status_failure ("option-parser", + gpg_error(GPG_ERR_GENERAL)); + } break; } } @@ -3582,7 +3592,10 @@ main (int argc, char **argv) } xfree(configname); configname = NULL; if (log_get_errorcount (0)) - g10_exit(2); + { + write_status_failure ("option-parser", gpg_error(GPG_ERR_GENERAL)); + g10_exit(2); + } /* The command --gpgconf-list is pretty simple and may be called directly after the option parsing. */ @@ -3603,7 +3616,10 @@ main (int argc, char **argv) "--print-pks-records", "--export-options export-pka"); if (log_get_errorcount (0)) - g10_exit(2); + { + write_status_failure ("option-checking", gpg_error(GPG_ERR_GENERAL)); + g10_exit(2); + } if( nogreeting ) @@ -3704,6 +3720,7 @@ main (int argc, char **argv) { log_info(_("will not run with insecure memory due to %s\n"), "--require-secmem"); + write_status_failure ("option-checking", gpg_error(GPG_ERR_GENERAL)); g10_exit(2); } @@ -3844,7 +3861,11 @@ main (int argc, char **argv) } if( log_get_errorcount(0) ) - g10_exit(2); + { + write_status_failure ("option-postprocessing", + gpg_error(GPG_ERR_GENERAL)); + g10_exit (2); + } if(opt.compress_level==0) opt.compress_algo=COMPRESS_ALGO_NONE; @@ -3945,7 +3966,10 @@ main (int argc, char **argv) /* Fail hard. */ if (log_get_errorcount (0)) + { + write_status_failure ("option-checking", gpg_error(GPG_ERR_GENERAL)); g10_exit (2); + } /* Set the random seed file. */ if( use_random_seed ) { @@ -4929,7 +4953,10 @@ main (int argc, char **argv) hd = keydb_new (); if (! hd) - g10_exit (1); + { + write_status_failure ("tofu-driver", gpg_error(GPG_ERR_GENERAL)); + g10_exit (1); + } tofu_begin_batch_update (ctrl); @@ -4943,6 +4970,7 @@ main (int argc, char **argv) { log_error (_("error parsing key specification '%s': %s\n"), argv[i], gpg_strerror (rc)); + write_status_failure ("tofu-driver", rc); g10_exit (1); } @@ -4956,6 +4984,8 @@ main (int argc, char **argv) log_error (_("'%s' does not appear to be a valid" " key ID, fingerprint or keygrip\n"), argv[i]); + write_status_failure ("tofu-driver", + gpg_error(GPG_ERR_GENERAL)); g10_exit (1); } @@ -4966,6 +4996,7 @@ main (int argc, char **argv) the string. */ log_error ("keydb_search_reset failed: %s\n", gpg_strerror (rc)); + write_status_failure ("tofu-driver", rc); g10_exit (1); } @@ -4974,6 +5005,7 @@ main (int argc, char **argv) { log_error (_("key \"%s\" not found: %s\n"), argv[i], gpg_strerror (rc)); + write_status_failure ("tofu-driver", rc); g10_exit (1); } @@ -4982,12 +5014,16 @@ main (int argc, char **argv) { log_error (_("error reading keyblock: %s\n"), gpg_strerror (rc)); + write_status_failure ("tofu-driver", rc); g10_exit (1); } merge_keys_and_selfsig (ctrl, kb); if (tofu_set_policy (ctrl, kb, policy)) - g10_exit (1); + { + write_status_failure ("tofu-driver", rc); + g10_exit (1); + } release_kbnode (kb); } @@ -5069,6 +5105,12 @@ emergency_cleanup (void) void g10_exit( int rc ) { + /* If we had an error but not printed an error message, do it now. + * Note that write_status_failure will never print a second failure + * status line. */ + if (log_get_errorcount (0)) + write_status_failure ("gpg-exit", gpg_error (GPG_ERR_GENERAL)); + gcry_control (GCRYCTL_UPDATE_RANDOM_SEED_FILE); if (DBG_CLOCK) log_clock ("stop"); diff --git a/sm/gpgsm.c b/sm/gpgsm.c index b81e3b6e8..da1783df2 100644 --- a/sm/gpgsm.c +++ b/sm/gpgsm.c @@ -1464,7 +1464,7 @@ main ( int argc, char **argv) DIM (compliance_options), opt.quiet); if (compliance < 0) - gpgsm_exit (1); + log_inc_errorcount (); /* Force later termination. */ opt.compliance = compliance; } break; @@ -1493,7 +1493,11 @@ main ( int argc, char **argv) NULL); if (log_get_errorcount(0)) - gpgsm_exit(2); + { + gpgsm_status_with_error (&ctrl, STATUS_FAILURE, + "option-parser", gpg_error (GPG_ERR_GENERAL)); + gpgsm_exit(2); + } if (pwfd != -1) /* Read the passphrase now. */ read_passphrase_from_fd (pwfd); @@ -1660,7 +1664,11 @@ main ( int argc, char **argv) gnupg_compliance_option_string (opt.compliance)); if (log_get_errorcount(0)) - gpgsm_exit(2); + { + gpgsm_status_with_error (&ctrl, STATUS_FAILURE, "option-postprocessing", + gpg_error (GPG_ERR_GENERAL)); + gpgsm_exit (2); + } /* Set the random seed file. */ if (use_random_seed) From 1a5d95e7319e7e6f0dd11064a26cbbc371b05214 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Fri, 6 Apr 2018 11:04:04 +0200 Subject: [PATCH 19/30] gpg: Check that a key may do certifications. * g10/sig-check.c (check_signature_end_simple): Check key usage for certifications. (check_signature_over_key_or_uid): Request usage certification. -- GnuPG-bug-id: 3844 Signed-off-by: Werner Koch --- g10/sig-check.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/g10/sig-check.c b/g10/sig-check.c index 1a90fd326..e5de025ca 100644 --- a/g10/sig-check.c +++ b/g10/sig-check.c @@ -464,6 +464,24 @@ check_signature_end_simple (PKT_public_key *pk, PKT_signature *sig, } } + /* For key signatures check that the key has a cert usage. We may + * do this only for subkeys because the primary may always issue key + * signature. The latter may not be reflected in the pubkey_usage + * field because we need to check the key signatures to extract the + * key usage. */ + if (!pk->flags.primary + && IS_CERT (sig) && !(pk->pubkey_usage & PUBKEY_USAGE_CERT)) + { + rc = gpg_error (GPG_ERR_WRONG_KEY_USAGE); + if (!opt.quiet) + log_info (_("bad key signature from key %s: %s (0x%02x, 0x%x)\n"), + keystr_from_pk (pk), gpg_strerror (rc), + sig->sig_class, pk->pubkey_usage); + return rc; + } + /* Fixme: Should we also check the signing capability here for data + * signature? */ + /* Make sure the digest algo is enabled (in case of a detached * signature). */ gcry_md_enable (digest, sig->digest_algo); @@ -893,6 +911,9 @@ check_signature_over_key_or_uid (ctrl_t ctrl, PKT_public_key *signer, signer_alloced = 2; } + if (IS_CERT (sig)) + signer->req_usage = PUBKEY_USAGE_CERT; + rc = get_pubkey (ctrl, signer, sig->keyid); if (rc) { From a4e26f2ee852003707857ab0635b783acb89a2f8 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 9 Apr 2018 10:36:02 +0200 Subject: [PATCH 20/30] doc: Document --key-edit:change-usage * g10/keyedit.c (menu_changeusage): Make strings translatable. -- GnuPG-bug-id: 3816 Signed-off-by: Werner Koch --- doc/gpg.texi | 9 +++++++++ g10/keyedit.c | 8 +++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/doc/gpg.texi b/doc/gpg.texi index d840b8573..3c505c94d 100644 --- a/doc/gpg.texi +++ b/doc/gpg.texi @@ -1007,6 +1007,15 @@ signing. Make the key as small as possible. This removes all signatures from each user ID except for the most recent self-signature. + @item change-usage + @opindex keyedit:change-usage + Change the usage flags (capabilities) of the primary key or of + subkeys. These usage flags (e.g. Certify, Sign, Authenticate, + Encrypt) are set during key creation. Sometimes it is useful to + have the opportunity to change them (for example to add + Authenticate) after they have been created. Please take care when + doing this, the possible usage flags depend on the key algorithm. + @item cross-certify @opindex keyedit:cross-certify Add cross-certification signatures to signing subkeys that may not diff --git a/g10/keyedit.c b/g10/keyedit.c index 4ade5cdba..7cd883d78 100644 --- a/g10/keyedit.c +++ b/g10/keyedit.c @@ -4535,10 +4535,10 @@ menu_changeusage (ctrl_t ctrl, kbnode_t keyblock) return 0; } else if (n1) - tty_printf ("Changing usage of a subkey.\n"); + tty_printf (_("Changing usage of a subkey.\n")); else { - tty_printf ("Changing usage of the primary key.\n"); + tty_printf (_("Changing usage of the primary key.\n")); mainkey = 1; } @@ -4578,6 +4578,8 @@ menu_changeusage (ctrl_t ctrl, kbnode_t keyblock) if ((mainkey && main_pk->version < 4) || (!mainkey && sub_pk->version < 4)) { + /* Note: This won't happen because we don't support + * v3 keys anymore. */ log_info ("You can't change the capabilities of a v3 key\n"); return 0; } @@ -4602,7 +4604,7 @@ menu_changeusage (ctrl_t ctrl, kbnode_t keyblock) if (rc) { log_error ("make_keysig_packet failed: %s\n", - gpg_strerror (rc)); + gpg_strerror (rc)); return 0; } From 519e4560e821e4c41432626b241bca7d37143e01 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 9 Apr 2018 10:44:44 +0200 Subject: [PATCH 21/30] doc: Add an example for --default-new-key-algo -- --- doc/examples/vsnfd.prf | 6 +++++- doc/gpg.texi | 13 +++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/doc/examples/vsnfd.prf b/doc/examples/vsnfd.prf index 1dc21e0a7..061e06982 100644 --- a/doc/examples/vsnfd.prf +++ b/doc/examples/vsnfd.prf @@ -1,12 +1,16 @@ # vsnfd.prf - Configure options for the VS-NfD mode -*- conf -*- +# +# The options for each tool are configured in a section ("[TOOL]"); +# see the respective man page for a description of these options and +# the gpgconf manpage for a description of this file's syntax. [gpg] compliance de-vs default-new-key-algo rsa3072/cert,sign+rsa3072/encr [gpgsm] -enable-crl-checks compliance de-vs +enable-crl-checks [gpg-agent] enable-extended-key-format diff --git a/doc/gpg.texi b/doc/gpg.texi index 3c505c94d..6537acd73 100644 --- a/doc/gpg.texi +++ b/doc/gpg.texi @@ -1014,7 +1014,7 @@ signing. Encrypt) are set during key creation. Sometimes it is useful to have the opportunity to change them (for example to add Authenticate) after they have been created. Please take care when - doing this, the possible usage flags depend on the key algorithm. + doing this; the allowed usage flags depend on the key algorithm. @item cross-certify @opindex keyedit:cross-certify @@ -3338,9 +3338,14 @@ absolute date in the form YYYY-MM-DD. Defaults to "0". @item --default-new-key-algo @var{string} @opindex default-new-key-algo @var{string} This option can be used to change the default algorithms for key -generation. Note that the advanced key generation commands can always -be used to specify a key algorithm directly. Please consult the -source code to learn the syntax of @var{string}. +generation. The @var{string} is similar to the arguments required for +the command @option{--quick-add-key} but slighly different. For +example the current default of @code{"rsa2048/cert,sign+rsa2048/encr"} +(or @code{"rsa3072"}) can be changed to the value of what we currently +call future default, which is @code{"ed25519/cert,sign+cv25519/encr"}. +You need to consult the source code to learn the details. Note that +the advanced key generation commands can always be used to specify a +key algorithm directly. @item --allow-secret-key-import @opindex allow-secret-key-import From 6da7aa1e7c80d214bd9dccb21744919ae191f2c8 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 9 Apr 2018 14:44:21 +0200 Subject: [PATCH 22/30] gpg,w32: Fix empty homedir when only a drive letter is used. * common/homedir.c (copy_dir_with_fixup): New. (default_homedir): Use here. (gnupg_set_homedir): And here . -- This actually fixes a couple of cases for Windows. Both --home-dir and GNUPGHOME. The interpretation of "c:" -> "c:/" might not be the correct one but because we need an absolute dir anyway it is the less surprising one. Note that this does not include a full syntax check and fixup and thus it is very well possible that the result is not an absolute directory. GnuPG-bug-id: 3720 Signed-off-by: Werner Koch --- common/homedir.c | 95 ++++++++++++++++++++++++++++++++---------------- 1 file changed, 63 insertions(+), 32 deletions(-) diff --git a/common/homedir.c b/common/homedir.c index 65cf50fe7..e9e75d01e 100644 --- a/common/homedir.c +++ b/common/homedir.c @@ -171,6 +171,62 @@ is_gnupg_default_homedir (const char *dir) } +/* Helper to remove trailing slashes from NEWDIR. Return a new + * allocated string if that has been done or NULL if there are no + * slashes to remove. Also inserts a missing slash after a Windows + * drive letter. */ +static char * +copy_dir_with_fixup (const char *newdir) +{ + char *result = NULL; + char *p; + + if (!*newdir) + return NULL; + +#ifdef HAVE_W32_SYSTEM + if (newdir[0] && newdir[1] == ':' + && !(newdir[2] == '/' || newdir[2] == '\\')) + { + /* Drive letter with missing leading slash. */ + p = result = xmalloc (strlen (newdir) + 1 + 1); + *p++ = newdir[0]; + *p++ = newdir[1]; + *p++ = '\\'; + strcpy (p, newdir+2); + + /* Remove trailing slashes. */ + p = result + strlen (result) - 1; + while (p > result+2 && (*p == '/' || *p == '\\')) + *p-- = 0; + } + else if (newdir[strlen (newdir)-1] == '/' + || newdir[strlen (newdir)-1] == '\\' ) + { + result = xstrdup (newdir); + p = result + strlen (result) - 1; + while (p > result + && (*p == '/' || *p == '\\') + && (p-1 > result && p[-1] != ':')) /* We keep "c:/". */ + *p-- = 0; + } + +#else /*!HAVE_W32_SYSTEM*/ + + if (newdir[strlen (newdir)-1] == '/') + { + result = xstrdup (newdir); + p = result + strlen (result) - 1; + while (p > result && *p == '/') + *p-- = 0; + } + +#endif /*!HAVE_W32_SYSTEM*/ + + return result; +} + + /* Get the standard home directory. In general this function should not be used as it does not consider a registry value (under W32) or the GNUPGHOME environment variable. It is better to use @@ -278,18 +334,11 @@ default_homedir (void) dir = GNUPG_DEFAULT_HOMEDIR; else { - /* Strip trailing slashes if any. */ - if (dir[strlen (dir)-1] == '/') - { - char *tmp, *p; + char *p; - tmp = xstrdup (dir); - p = tmp + strlen (tmp) - 1; - while (p > tmp && *p == '/') - *p-- = 0; - - dir = tmp; - } + p = copy_dir_with_fixup (dir); + if (p) + dir = p; if (!is_gnupg_default_homedir (dir)) non_default_homedir = 1; @@ -432,28 +481,10 @@ gnupg_set_homedir (const char *newdir) newdir = default_homedir (); else { - /* Remove trailing slashes from NEWSDIR. */ - if (newdir[strlen (newdir)-1] == '/' -#ifdef HAVE_W32_SYSTEM - || newdir[strlen (newdir)-1] == '\\' -#endif - ) - { - char *p; + tmp = copy_dir_with_fixup (newdir); + if (tmp) + newdir = tmp; - tmp = xstrdup (newdir); - p = tmp + strlen (tmp) - 1; - while (p > tmp - && (*p == '/' -#ifdef HAVE_W32_SYSTEM - || *p == '\\' -#endif - ) - ) - *p-- = 0; - - newdir = tmp; - } if (!is_gnupg_default_homedir (newdir)) non_default_homedir = 1; } From 7fa6f1481454ab8b4d166ac2d055abdba5f8baab Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 9 Apr 2018 19:46:54 +0200 Subject: [PATCH 23/30] doc: Typo fix in gpg.texi -- Reported-by: Cody Brownstein --- doc/gpg.texi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/gpg.texi b/doc/gpg.texi index 6537acd73..086b4fce5 100644 --- a/doc/gpg.texi +++ b/doc/gpg.texi @@ -306,7 +306,7 @@ List the specified secret keys. If no keys are specified, then all known secret keys are listed. A @code{#} after the initial tags @code{sec} or @code{ssb} means that the secret key or subkey is currently not usable. We also say that this key has been taken -offline (for example, a primary key can be taken offline by exported +offline (for example, a primary key can be taken offline by exporting the key using the command @option{--export-secret-subkeys}). A @code{>} after these tags indicate that the key is stored on a smartcard. See also @option{--list-keys}. From b46b14392540aec7726c8882c424e6d466c51c97 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 9 Apr 2018 20:39:48 +0200 Subject: [PATCH 24/30] po: Update German translation -- Signed-off-by: Werner Koch --- po/de.po | 125 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 83 insertions(+), 42 deletions(-) diff --git a/po/de.po b/po/de.po index 4351d32bd..ae5fef24b 100644 --- a/po/de.po +++ b/po/de.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg-2.1.0\n" "Report-Msgid-Bugs-To: translations@gnupg.org\n" -"PO-Revision-Date: 2017-12-19 12:28+0100\n" +"PO-Revision-Date: 2018-04-09 20:39+0200\n" "Last-Translator: Werner Koch \n" "Language-Team: German \n" "Language: de\n" @@ -1360,22 +1360,8 @@ msgstr "" " zu Rate.\n" #, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "Welche Schlüssellänge wünschen Sie für den Signatur-Schlüssel? (%u) " - -#, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "" -"Welche Schlüssellänge wünschen Sie für den Verschlüsselungs-Schlüssel? (%u) " - -#, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "" -"Welche Schlüssellänge wünschen Sie für den Authentisierungs-Schlüssel? (%u) " - -#, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "Die Karte wird nun rekonfiguriert für einen Schlüssel des Typs: %s\n" +msgid "What keysize do you want? (%u) " +msgstr "Welche Schlüssellänge wünschen Sie? (%u) " #, c-format msgid "rounded up to %u bits\n" @@ -1385,6 +1371,32 @@ msgstr "aufgerundet auf %u Bit\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "%s-Schlüssellängen müssen im Bereich %u-%u sein\n" +msgid "Changing card key attribute for: " +msgstr "Ändern des Schlüsselattributs für den: " + +msgid "Signature key\n" +msgstr "Signatur-Schlüssel\n" + +msgid "Encryption key\n" +msgstr "Verschlüsselungs-Schlüssel\n" + +msgid "Authentication key\n" +msgstr "Authentisierungs-Schlüssel\n" + +msgid "Please select what kind of key you want:\n" +msgstr "Bitte wählen Sie, welche Art von Schlüssel Sie möchten:\n" + +#, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA\n" + +#, c-format +msgid " (%d) ECC\n" +msgstr " (%d) ECC\n" + +msgid "Invalid selection.\n" +msgstr "Ungültige Auswahl.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" @@ -1392,8 +1404,19 @@ msgstr "" "erzeugen\n" #, c-format -msgid "error changing size of key %d to %u bits: %s\n" -msgstr "Fehler bem Ändern der Länge des Schlüssels %d auf %u Bit: %s\n" +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "Die Karte wird nun rekonfiguriert für einen Schlüssel des Typs: %s\n" + +#, c-format +msgid "error changing key attribute for key %d: %s\n" +msgstr "Fehler beim Ändern der Attributs des Schlüssels %d: %s\n" + +#, c-format +msgid "error getting card info: %s\n" +msgstr "Fehler beim Holen der aktuellen Schlüsselinfo: %s\n" + +msgid "This command is not supported by this card\n" +msgstr "Dieser Befehl wird von dieser Karte nicht unterstützt.\n" msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" @@ -1427,9 +1450,6 @@ msgstr " (2) Verschlüsselungs-Schlüssel\n" msgid " (3) Authentication key\n" msgstr " (3) Authentisierungs-Schlüssel\n" -msgid "Invalid selection.\n" -msgstr "Ungültige Auswahl.\n" - msgid "Please select where to store the key:\n" msgstr "Wählen Sie den Speicherort für den Schlüssel:\n" @@ -1437,9 +1457,6 @@ msgstr "Wählen Sie den Speicherort für den Schlüssel:\n" msgid "KEYTOCARD failed: %s\n" msgstr "Das KEYTOCARD Kommando schlug fehl: %s\n" -msgid "This command is not supported by this card\n" -msgstr "Dieser Befehl wird von dieser Karte nicht unterstützt.\n" - msgid "Note: This command destroys all keys stored on the card!\n" msgstr "" "Hinweis: Dieses Kommando zerstörrt alle auf der Karte gespeicherten " @@ -1451,6 +1468,10 @@ msgstr "Fortsetzen? (j/N) " msgid "Really do a factory reset? (enter \"yes\") " msgstr "Möchten Sie die Karte wirklich komplett löschen? (\"yes\" eingeben) " +#, c-format +msgid "error for setup KDF: %s\n" +msgstr "Fehler beim Einstellen der KDF: %s\n" + msgid "quit this menu" msgstr "Menü verlassen" @@ -1502,6 +1523,12 @@ msgstr "die PIN mit dem Rückstellcode wieder freigeben" msgid "destroy all keys and data" msgstr "alle Schlüssel und Daten löschen" +msgid "setup KDF for PIN authentication" +msgstr "Einrichten der KDF zur Authentifizierung" + +msgid "change the key attribute" +msgstr "Das Schlüsselattribut ändern" + msgid "gpg/card> " msgstr "gpg/card> " @@ -2149,6 +2176,10 @@ msgstr "\"%s\" ist keine gültige E-Mailadresse\n" msgid "invalid pinentry mode '%s'\n" msgstr "Ungültiger Subjekt-Name '%s'\n" +#, c-format +msgid "invalid request origin '%s'\n" +msgstr "Ungültiges \"Herkunft\"-Argument '%s'\n" + #, c-format msgid "'%s' is not a valid character set\n" msgstr "`%s' ist kein gültiger Zeichensatz\n" @@ -3212,12 +3243,12 @@ msgstr "" msgid "Key is revoked." msgstr "Schlüssel wurde widerrufen." -msgid "Really sign all user IDs? (y/N) " -msgstr "Wirklich alle User-IDs beglaubigen? (j/N) " - msgid "Really sign all text user IDs? (y/N) " msgstr "Wirklich alle textbasierten User-IDs beglaubigen? (j/N) " +msgid "Really sign all user IDs? (y/N) " +msgstr "Wirklich alle User-IDs beglaubigen? (j/N) " + msgid "Hint: Select the user IDs to sign\n" msgstr "Tip: Wählen Sie die User-IDs, die beglaubigt werden sollen\n" @@ -3563,6 +3594,12 @@ msgstr "Ändern des Verfallsdatums des Hauptschlüssels.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Sie können das Verfallsdatum eines v3-Schlüssels nicht ändern\n" +msgid "Changing usage of a subkey.\n" +msgstr "Ändern des Schlüsselverwendungszweckes des Unterschlüssels.\n" + +msgid "Changing usage of the primary key.\n" +msgstr "Ändern des Schlüsselverwendungszweckes des Hauptschlüssels.\n" + #, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "Signaturunterschlüssel %s ist bereits rücksigniert\n" @@ -3775,9 +3812,6 @@ msgstr " (%c) Umschalten der Authentisierungsnutzbarkeit\n" msgid " (%c) Finished\n" msgstr " (%c) Beenden\n" -msgid "Please select what kind of key you want:\n" -msgstr "Bitte wählen Sie, welche Art von Schlüssel Sie möchten:\n" - #, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) RSA und RSA (voreingestellt)\n" @@ -3851,10 +3885,6 @@ msgstr "%s-Schlüssel können zwischen %u und %u Bit lang sein.\n" msgid "What keysize do you want for the subkey? (%u) " msgstr "Welche Schlüssellänge wünschen Sie für den Unterschlüssel? (%u) " -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "Welche Schlüssellänge wünschen Sie? (%u) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Die verlangte Schlüssellänge beträgt %u Bit\n" @@ -5261,6 +5291,10 @@ msgstr "Hinweis: Signaturschlüssel %s ist am %s verfallen\n" msgid "Note: signature key %s has been revoked\n" msgstr "Hinweis: Signaturschlüssel %s wurde widerrufen\n" +#, c-format +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "Falsche Schlüsselsignatur von Schlüssel %s: %s (0x%02x, 0x%x)\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6733,10 +6767,6 @@ msgstr "" "Um die Zertifikatsanforderung fertigzustellen, geben Sie nun bitte\n" "noch einmal die Passphrase des soeben erzeugten Schlüssels ein.\n" -#, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA\n" - #, c-format msgid " (%d) Existing key\n" msgstr " (%d) Vorhandener Schlüssel\n" @@ -8755,6 +8785,20 @@ msgstr "" "Syntax: gpg-check-pattern [optionen] Musterdatei\n" "Die von stdin gelesene Passphrase gegen die Musterdatei prüfen\n" +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "" +#~ "Welche Schlüssellänge wünschen Sie für den Signatur-Schlüssel? (%u) " + +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "" +#~ "Welche Schlüssellänge wünschen Sie für den Verschlüsselungs-Schlüssel? " +#~ "(%u) " + +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "" +#~ "Welche Schlüssellänge wünschen Sie für den Authentisierungs-Schlüssel? " +#~ "(%u) " + #~ msgid "listen() failed: %s\n" #~ msgstr "Der listen()-Aufruf ist fehlgeschlagen: %s\n" @@ -9255,9 +9299,6 @@ msgstr "" #~ msgstr "" #~ "Verbindung zum gpg-agent nicht möglich - Ersatzmethode wird versucht\n" -#~ msgid " (%d) ECC\n" -#~ msgstr " (%d) ECC\n" - #~ msgid "can't create directory `%s': %s\n" #~ msgstr " git describe --match gnupg-2.1.*[0-9] --long" From f1f072c501cd6124f9193e00f0debc4685ff0851 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 9 Apr 2018 21:20:25 +0200 Subject: [PATCH 25/30] po: Auto-update. -- --- po/ca.po | 124 +++++++++++++++++++++++++++++++------------ po/cs.po | 135 ++++++++++++++++++++++++++++++++++------------- po/da.po | 137 +++++++++++++++++++++++++++++++++-------------- po/el.po | 124 +++++++++++++++++++++++++++++++------------ po/eo.po | 124 +++++++++++++++++++++++++++++++------------ po/es.po | 139 ++++++++++++++++++++++++++++++++++-------------- po/et.po | 124 +++++++++++++++++++++++++++++++------------ po/fi.po | 124 +++++++++++++++++++++++++++++++------------ po/fr.po | 149 ++++++++++++++++++++++++++++++++++++---------------- po/gl.po | 124 +++++++++++++++++++++++++++++++------------ po/hu.po | 124 +++++++++++++++++++++++++++++++------------ po/id.po | 124 +++++++++++++++++++++++++++++++------------ po/it.po | 124 +++++++++++++++++++++++++++++++------------ po/ja.po | 37 +++++++++---- po/nb.po | 135 ++++++++++++++++++++++++++++++++++------------- po/pl.po | 137 +++++++++++++++++++++++++++++++++-------------- po/pt.po | 124 +++++++++++++++++++++++++++++++------------ po/ro.po | 134 +++++++++++++++++++++++++++++++++------------- po/ru.po | 131 +++++++++++++++++++++++++++++++++------------ po/sk.po | 124 +++++++++++++++++++++++++++++++------------ po/sv.po | 145 +++++++++++++++++++++++++++++++++++--------------- po/tr.po | 134 +++++++++++++++++++++++++++++++++------------- po/uk.po | 139 +++++++++++++++++++++++++++++++++--------------- po/zh_CN.po | 132 +++++++++++++++++++++++++++++++++------------- po/zh_TW.po | 139 ++++++++++++++++++++++++++++++++++-------------- 25 files changed, 2289 insertions(+), 898 deletions(-) diff --git a/po/ca.po b/po/ca.po index a65380cb6..dd2407e46 100644 --- a/po/ca.po +++ b/po/ca.po @@ -1489,21 +1489,9 @@ msgid "" msgstr "" #, fuzzy, c-format -msgid "What keysize do you want for the Signature key? (%u) " +msgid "What keysize do you want? (%u) " msgstr "Quina grandària voleu? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Quina grandària voleu? (1024) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Quina grandària voleu? (1024) " - -#, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" - #, c-format msgid "rounded up to %u bits\n" msgstr "arrodonida fins a %u bits\n" @@ -1512,14 +1500,55 @@ msgstr "arrodonida fins a %u bits\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +msgid "Signature key\n" +msgstr "Aquesta signatura va caducar el %s\n" + +#, fuzzy +msgid "Encryption key\n" +msgstr " (%d) RSA (només xifrar)\n" + +msgid "Authentication key\n" +msgstr "" + +msgid "Please select what kind of key you want:\n" +msgstr "Seleccioneu quin tipus de clau voleu:\n" + +#, fuzzy, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA (només signar)\n" + +#, fuzzy, c-format +msgid " (%d) ECC\n" +msgstr " (%d) DSA i ElGamal (predeterminat)\n" + +msgid "Invalid selection.\n" +msgstr "La selecció és invàlida.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" + #, fuzzy, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "error mentre s'enviava a «%s»: %s\n" +#, fuzzy, c-format +msgid "error getting card info: %s\n" +msgstr "s'ha produït un error mentre s'escrivia l'anell secret «%s»: %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Aquesta ordre no està permesa mentre s'està en mode %s.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" @@ -1551,9 +1580,6 @@ msgstr " (%d) RSA (només xifrar)\n" msgid " (3) Authentication key\n" msgstr "" -msgid "Invalid selection.\n" -msgstr "La selecció és invàlida.\n" - #, fuzzy msgid "Please select where to store the key:\n" msgstr "Seleccioneu la raó de la revocació:\n" @@ -1562,11 +1588,6 @@ msgstr "Seleccioneu la raó de la revocació:\n" msgid "KEYTOCARD failed: %s\n" msgstr "ha fallat l'actualització: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Aquesta ordre no està permesa mentre s'està en mode %s.\n" - #, fuzzy msgid "Note: This command destroys all keys stored on the card!\n" msgstr "es descarta: la clau secreta ja és present\n" @@ -1578,6 +1599,10 @@ msgstr "Signar realment? " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +msgid "error for setup KDF: %s\n" +msgstr "error en la lectura de «%s»: %s\n" + msgid "quit this menu" msgstr "ix del menú" @@ -1637,6 +1662,16 @@ msgstr "" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use NAME as default recipient" +msgid "setup KDF for PIN authentication" +msgstr "|NOM|usa NOM com a destinatari predeterminat" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "canvia la confiança" + msgid "gpg/card> " msgstr "" @@ -2355,6 +2390,10 @@ msgstr "No és una adreça vàlida\n" msgid "invalid pinentry mode '%s'\n" msgstr "l'algoritme de dispersió és invàlid «%s»\n" +#, fuzzy, c-format +msgid "invalid request origin '%s'\n" +msgstr "opcions d'importació no vàlides\n" + #, fuzzy, c-format msgid "'%s' is not a valid character set\n" msgstr "%s no és un joc de caràcters vàlid\n" @@ -3485,11 +3524,11 @@ msgid "Key is revoked." msgstr "La clau està revocada." #, fuzzy -msgid "Really sign all user IDs? (y/N) " +msgid "Really sign all text user IDs? (y/N) " msgstr "Realment voleu signar tots els ID d'usuari? " #, fuzzy -msgid "Really sign all text user IDs? (y/N) " +msgid "Really sign all user IDs? (y/N) " msgstr "Realment voleu signar tots els ID d'usuari? " msgid "Hint: Select the user IDs to sign\n" @@ -3867,6 +3906,15 @@ msgstr "S'està canviant la data de caducitat per a una clau primària.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "No podeu canviar la data de caducitat de les claus v3\n" +#, fuzzy +msgid "Changing usage of a subkey.\n" +msgstr "S'està canviant la data de caducitat per a una clau secundària.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "S'està canviant la data de caducitat per a una clau primària.\n" + #, fuzzy, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "" @@ -4093,9 +4141,6 @@ msgstr "" msgid " (%c) Finished\n" msgstr "" -msgid "Please select what kind of key you want:\n" -msgstr "Seleccioneu quin tipus de clau voleu:\n" - #, fuzzy, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) DSA i ElGamal (predeterminat)\n" @@ -4174,10 +4219,6 @@ msgstr "" msgid "What keysize do you want for the subkey? (%u) " msgstr "Quina grandària voleu? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want? (%u) " -msgstr "Quina grandària voleu? (1024) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "La grandària sol·licitada és %u bits\n" @@ -5622,6 +5663,11 @@ msgstr "NOTA: la clau de signatura %08lX va caducar el %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "NOTA: aquesta clau ha estat revocada!" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "signatura autònoma de classe 0x%02x\n" + #, fuzzy, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -7051,10 +7097,6 @@ msgid "" "you just created once more.\n" msgstr "" -#, fuzzy, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA (només signar)\n" - #, fuzzy, c-format msgid " (%d) Existing key\n" msgstr " (%d) RSA (només xifrar)\n" @@ -9149,6 +9191,18 @@ msgid "" "Check a passphrase given on stdin against the patternfile\n" msgstr "" +#, fuzzy +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Quina grandària voleu? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Quina grandària voleu? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Quina grandària voleu? (1024) " + #, fuzzy #~ msgid "listen() failed: %s\n" #~ msgstr "ha fallat l'actualització: %s\n" diff --git a/po/cs.po b/po/cs.po index 4693f7308..79b4bc2d8 100644 --- a/po/cs.po +++ b/po/cs.po @@ -1360,21 +1360,8 @@ msgstr "" " své karty, kde se dozvíte, jaké velikosti jsou dovoleny.\n" #, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "Jakou délku klíče pro podepisování si přejete? (%u) " - -#, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Jakou délku klíče pro šifrování si přejete? (%u) " - -#, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Jakou délku klíče pro autentizaci si přejete? (%u) " - -#, fuzzy, c-format -#| msgid "The card will now be re-configured to generate a key of %u bits\n" -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "Karta bude nyní přenastavena na generování klíče dlouhého %u bitů\n" +msgid "What keysize do you want? (%u) " +msgstr "Jakou délku klíče si přejete? (%u) " #, c-format msgid "rounded up to %u bits\n" @@ -1384,14 +1371,61 @@ msgstr "zaokrouhleno na %u bitů\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "velikost klíče %s musí být v intervalu %u-%u\n" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +#| msgid " (1) Signature key\n" +msgid "Signature key\n" +msgstr " (1) Podepisovací klíč\n" + +#, fuzzy +#| msgid " (2) Encryption key\n" +msgid "Encryption key\n" +msgstr " (2) Šifrovací klíč\n" + +#, fuzzy +#| msgid " (3) Authentication key\n" +msgid "Authentication key\n" +msgstr " (3) Autentizační klíč\n" + +msgid "Please select what kind of key you want:\n" +msgstr "Prosím, vyberte druh klíče, který chcete:\n" + +#, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA\n" + +#, fuzzy, c-format +#| msgid " (%d) ECC and ECC\n" +msgid " (%d) ECC\n" +msgstr " (%d) ECC a ECC\n" + +msgid "Invalid selection.\n" +msgstr "Neplatný výběr.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "Karta bude nyní přenastavena na generování klíče dlouhého %u bitů\n" -#, c-format -msgid "error changing size of key %d to %u bits: %s\n" +#, fuzzy, c-format +#| msgid "The card will now be re-configured to generate a key of %u bits\n" +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "Karta bude nyní přenastavena na generování klíče dlouhého %u bitů\n" + +#, fuzzy, c-format +#| msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "chyba při změně velikosti klíče %d na %u bitů: %s\n" +#, fuzzy, c-format +#| msgid "error getting current key info: %s\n" +msgid "error getting card info: %s\n" +msgstr "chyba při získání informací o aktuálním klíči: %s\n" + +msgid "This command is not supported by this card\n" +msgstr "Tento příkaz není touto kartou podporován\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "Vytvořit zálohu šifrovacího klíče mimo kartu? (A/n) " @@ -1423,9 +1457,6 @@ msgstr " (2) Šifrovací klíč\n" msgid " (3) Authentication key\n" msgstr " (3) Autentizační klíč\n" -msgid "Invalid selection.\n" -msgstr "Neplatný výběr.\n" - msgid "Please select where to store the key:\n" msgstr "Prosím vyberte, kam uložit klíč:\n" @@ -1433,9 +1464,6 @@ msgstr "Prosím vyberte, kam uložit klíč:\n" msgid "KEYTOCARD failed: %s\n" msgstr "Volání KEYTOCARD selhalo: %s\n" -msgid "This command is not supported by this card\n" -msgstr "Tento příkaz není touto kartou podporován\n" - msgid "Note: This command destroys all keys stored on the card!\n" msgstr "Poznámka: Tento příkaz zničí všechny klíče uložené na kartě!\n" @@ -1446,6 +1474,11 @@ msgstr "Pokračovat (a/N) " msgid "Really do a factory reset? (enter \"yes\") " msgstr "Opravdu obnovit tovární nastavení (zadejte „yes“) " +#, fuzzy, c-format +#| msgid "error looking up: %s\n" +msgid "error for setup KDF: %s\n" +msgstr "chyba při vyhledávání: %s\n" + msgid "quit this menu" msgstr "ukončit toto menu" @@ -1497,6 +1530,16 @@ msgstr "odblokovat PIN pomocí resetačního kódu" msgid "destroy all keys and data" msgstr "zničit všechny klíče a data" +#, fuzzy +#| msgid "|NAME|use user NAME for authentication" +msgid "setup KDF for PIN authentication" +msgstr "|JMÉNO|pro autentizaci použije JMÉNO uživatele" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "změnit důvěryhodnost vlastníka klíče" + msgid "gpg/card> " msgstr "gpg/karta> " @@ -2139,6 +2182,11 @@ msgstr "„%s“ není správná e-mailová adresa\n" msgid "invalid pinentry mode '%s'\n" msgstr "neplatný režim pinentry „%s“\n" +#, fuzzy, c-format +#| msgid "invalid value for option '%s'\n" +msgid "invalid request origin '%s'\n" +msgstr "neplatný argument u volby „%s“\n" + #, c-format msgid "'%s' is not a valid character set\n" msgstr "„%s“ není platná znaková sada\n" @@ -3175,12 +3223,12 @@ msgstr "" msgid "Key is revoked." msgstr "Klíč je odvolán." -msgid "Really sign all user IDs? (y/N) " -msgstr "Opravdu podepsat všechny id uživatele? (a/N) " - msgid "Really sign all text user IDs? (y/N) " msgstr "Opravdu podepsat všechna textová ID uživatele? (a/N) " +msgid "Really sign all user IDs? (y/N) " +msgstr "Opravdu podepsat všechny id uživatele? (a/N) " + msgid "Hint: Select the user IDs to sign\n" msgstr "Nápověda: Vyberte id uživatele k podepsání\n" @@ -3515,6 +3563,16 @@ msgstr "Měním dobu expirace primárního klíče.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Nemůžete změnit dobu platnosti klíče verze 3\n" +#, fuzzy +#| msgid "Changing expiration time for a subkey.\n" +msgid "Changing usage of a subkey.\n" +msgstr "Měním dobu expirace podklíče.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Měním dobu expirace primárního klíče.\n" + #, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "podepisovací podklíč %s je již křížově certifikován\n" @@ -3724,9 +3782,6 @@ msgstr " (%c) Zapnout/vypnout schopnost autentizovat\n" msgid " (%c) Finished\n" msgstr " (%c) Konec\n" -msgid "Please select what kind of key you want:\n" -msgstr "Prosím, vyberte druh klíče, který chcete:\n" - #, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) RSA a RSA (implicitní)\n" @@ -3800,10 +3855,6 @@ msgstr "klíč %s může mít délku v intervalu %u až %u bitů.\n" msgid "What keysize do you want for the subkey? (%u) " msgstr "Jakou délku podklíče si přejete? (%u) " -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "Jakou délku klíče si přejete? (%u) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Požadovaná délka klíče je %u bitů.\n" @@ -5180,6 +5231,11 @@ msgstr "Poznámka: podpisovému klíči %s skončila platnost v %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "Poznámka: podpisový klíč %s byl odvolán\n" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "samostatný podpis třídy 0x%02x\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6566,10 +6622,6 @@ msgstr "" "Žádost o certifikát dokončíte tím, že zadáte heslo pro klíč, který jste " "právě vytvořili, ještě jednou.\n" -#, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA\n" - #, c-format msgid " (%d) Existing key\n" msgstr " (%d) Existující klíč\n" @@ -8560,6 +8612,15 @@ msgstr "" "Syntaxe: gpg-check-pattern [volby] soubor_se_vzorem\n" "Prověří heslo zadané na vstupu proti souboru se vzory\n" +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Jakou délku klíče pro podepisování si přejete? (%u) " + +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Jakou délku klíče pro šifrování si přejete? (%u) " + +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Jakou délku klíče pro autentizaci si přejete? (%u) " + #~ msgid "listen() failed: %s\n" #~ msgstr "volání listen() selhalo: %s\n" diff --git a/po/da.po b/po/da.po index e30e3b617..156dabce6 100644 --- a/po/da.po +++ b/po/da.po @@ -1458,21 +1458,8 @@ msgstr "" " er tilladt.\n" #, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "Hvilken nøglestørrelse ønsker du for underskriftsnøglen (%u) " - -#, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Hvilken nøglestørrelse ønsker du for krypteringsnøglen? (%u) " - -#, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Hvilken nøglestørrelse ønsker du for godkendelsesnøglen? (%u) " - -#, fuzzy, c-format -#| msgid "The card will now be re-configured to generate a key of %u bits\n" -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "Kortet vil nu blive omkonfigureret til at oprette en nøgle på %u bit\n" +msgid "What keysize do you want? (%u) " +msgstr "Hvilken nøglestørrelse ønsker du? (%u) " #, c-format msgid "rounded up to %u bits\n" @@ -1482,14 +1469,63 @@ msgstr "afrundet op til %u bit\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "%s nøglestørrelser skal være i intervallet %u-%u\n" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +#| msgid " (1) Signature key\n" +msgid "Signature key\n" +msgstr " (1) Underskriftsnøgle\n" + +#, fuzzy +#| msgid " (2) Encryption key\n" +msgid "Encryption key\n" +msgstr " (2) Krypteringsnøgle\n" + +#, fuzzy +#| msgid " (3) Authentication key\n" +msgid "Authentication key\n" +msgstr " (3) Godkendelsesnøgle\n" + +msgid "Please select what kind of key you want:\n" +msgstr "Vælg venligst hvilken slags nøgle du vil have:\n" + +#, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA\n" + +#, fuzzy, c-format +#| msgid " (%d) DSA and Elgamal\n" +msgid " (%d) ECC\n" +msgstr " (%d) DSA og Elgamal\n" + +msgid "Invalid selection.\n" +msgstr "Ugyldigt valg.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "Kortet vil nu blive omkonfigureret til at oprette en nøgle på %u bit\n" -#, c-format -msgid "error changing size of key %d to %u bits: %s\n" +#, fuzzy, c-format +#| msgid "The card will now be re-configured to generate a key of %u bits\n" +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "Kortet vil nu blive omkonfigureret til at oprette en nøgle på %u bit\n" + +#, fuzzy, c-format +#| msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "fejl ved ændring af størrelsen på nøglen %d til %u bit: %s\n" +#, fuzzy, c-format +#| msgid "error getting current key info: %s\n" +msgid "error getting card info: %s\n" +msgstr "fejl ved indhentelse af aktuel nøgleinformation: %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Denne kommando er ikke tilladt i tilstanden %s.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" "Lav sikkerhedskopi et andet sted end på kortet for krypteringsnøglen? (J/n) " @@ -1528,9 +1564,6 @@ msgstr " (2) Krypteringsnøgle\n" msgid " (3) Authentication key\n" msgstr " (3) Godkendelsesnøgle\n" -msgid "Invalid selection.\n" -msgstr "Ugyldigt valg.\n" - msgid "Please select where to store the key:\n" msgstr "Vælg venligst hvor nøglen skal gemmes:\n" @@ -1539,11 +1572,6 @@ msgstr "Vælg venligst hvor nøglen skal gemmes:\n" msgid "KEYTOCARD failed: %s\n" msgstr "læsning mislykkedes: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Denne kommando er ikke tilladt i tilstanden %s.\n" - #, fuzzy #| msgid "NOTE: keys are already stored on the card!\n" msgid "Note: This command destroys all keys stored on the card!\n" @@ -1557,6 +1585,11 @@ msgstr "Underskriv? (j/N) " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +#| msgid "error closing %s: %s\n" +msgid "error for setup KDF: %s\n" +msgstr "fejl ved lukning af %s: %s\n" + msgid "quit this menu" msgstr "afslut denne menu" @@ -1608,6 +1641,14 @@ msgstr "fjern blokering for PIN'en med en nulstillingskode" msgid "destroy all keys and data" msgstr "" +msgid "setup KDF for PIN authentication" +msgstr "" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "ændr ejertroværdigheden" + msgid "gpg/card> " msgstr "gpg/card> " @@ -2315,6 +2356,11 @@ msgstr "linje %d: ikke en gyldig e-post-adresse\n" msgid "invalid pinentry mode '%s'\n" msgstr "ugyldig landekode i »%s«, linje %d\n" +#, fuzzy, c-format +#| msgid "missing argument for option \"%.50s\"\n" +msgid "invalid request origin '%s'\n" +msgstr "manglende parameter for indstilling »%.50s«\n" + #, fuzzy, c-format #| msgid "`%s' is not a valid character set\n" msgid "'%s' is not a valid character set\n" @@ -3409,14 +3455,14 @@ msgstr "" msgid "Key is revoked." msgstr "Nøglen er tilbagekaldt." -msgid "Really sign all user IDs? (y/N) " -msgstr "Vil du gerne underskrive alle bruger-id'er (j/N) " - #, fuzzy #| msgid "Really sign all user IDs? (y/N) " msgid "Really sign all text user IDs? (y/N) " msgstr "Vil du gerne underskrive alle bruger-id'er (j/N) " +msgid "Really sign all user IDs? (y/N) " +msgstr "Vil du gerne underskrive alle bruger-id'er (j/N) " + msgid "Hint: Select the user IDs to sign\n" msgstr "Fif: Vælg bruger-id'erne at underskrive\n" @@ -3780,6 +3826,16 @@ msgstr "Ændrer udløbstidspunkt for den primære nøgle.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Du kan ikke ændre udløbsdatoen for en v3-nøgle\n" +#, fuzzy +#| msgid "Changing expiration time for a subkey.\n" +msgid "Changing usage of a subkey.\n" +msgstr "Ændrer udløbstidspunkt for en undernøgle.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Ændrer udløbstidspunkt for den primære nøgle.\n" + #, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "underskriftsundernøgle %s er allerede krydscertificeret\n" @@ -3997,9 +4053,6 @@ msgstr " (%c) Skift evnen til at godkende\n" msgid " (%c) Finished\n" msgstr " (%c) Afsluttet\n" -msgid "Please select what kind of key you want:\n" -msgstr "Vælg venligst hvilken slags nøgle du vil have:\n" - #, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) RSA og RSA (standard)\n" @@ -4082,10 +4135,6 @@ msgstr "%s nøgler kan være mellem %u og %u bit lange.\n" msgid "What keysize do you want for the subkey? (%u) " msgstr "Hvilken nøglestørrelse ønsker du for undernøglen? (%u) " -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "Hvilken nøglestørrelse ønsker du? (%u) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Ønsket nøglestørrelse er %u bit\n" @@ -5526,6 +5575,11 @@ msgstr "BEMÆRK: underskriftnøgle %s udløb %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "BEMÆRK: underskriftnøgle %s er blevet tilbagekaldt\n" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "uafhængig underskrift for klasse 0x%02x\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6940,10 +6994,6 @@ msgstr "" "For at færdiggøre denne certifikatanmodning så indtast venligst " "adgangsfrasen for nøglen du netop oprettede endnu en gang.\n" -#, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA\n" - #, c-format msgid " (%d) Existing key\n" msgstr " (%d) Eksisterende nøgle\n" @@ -9209,6 +9259,15 @@ msgstr "" "Syntaks: gpg-check-pattern [tilvalg] mønsterfil\n" "Kontroller en adgangsfrase angivet på stdin mod mønsterfilen\n" +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Hvilken nøglestørrelse ønsker du for underskriftsnøglen (%u) " + +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Hvilken nøglestørrelse ønsker du for krypteringsnøglen? (%u) " + +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Hvilken nøglestørrelse ønsker du for godkendelsesnøglen? (%u) " + #~ msgid "listen() failed: %s\n" #~ msgstr "listen() mislykkedes: %s\n" diff --git a/po/el.po b/po/el.po index 749b333ee..def69a414 100644 --- a/po/el.po +++ b/po/el.po @@ -1424,21 +1424,9 @@ msgid "" msgstr "" #, fuzzy, c-format -msgid "What keysize do you want for the Signature key? (%u) " +msgid "What keysize do you want? (%u) " msgstr "Τι μέγεθος κλειδιού θα θέλατε; (1024) " -#, fuzzy, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Τι μέγεθος κλειδιού θα θέλατε; (1024) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Τι μέγεθος κλειδιού θα θέλατε; (1024) " - -#, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" - #, c-format msgid "rounded up to %u bits\n" msgstr "στρογγυλοποιήθηκε έως τα %u bits\n" @@ -1447,14 +1435,55 @@ msgstr "στρογγυλοποιήθηκε έως τα %u bits\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +msgid "Signature key\n" +msgstr "Υπογραφή έληξε στις %s.\n" + +#, fuzzy +msgid "Encryption key\n" +msgstr " (%d) RSA (για κρυπτογράφηση μόνο)\n" + +msgid "Authentication key\n" +msgstr "" + +msgid "Please select what kind of key you want:\n" +msgstr "Παρακαλώ επιλέξτε τον τύπο του κλειδιού που θέλετε:\n" + +#, fuzzy, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA (για υπογραφή μόνο)\n" + +#, fuzzy, c-format +msgid " (%d) ECC\n" +msgstr " (%d) DSA και ElGamal (προκαθορισμένο)\n" + +msgid "Invalid selection.\n" +msgstr "Μη έγκυρη επιλογή.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" + #, fuzzy, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "σφάλμα στη αποστολή προς το `%s': %s\n" +#, fuzzy, c-format +msgid "error getting card info: %s\n" +msgstr "αδυναμία εγγραφής μυστικής κλειδοθήκης `%s': %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Αυτή η εντολή απαγορεύετε σε αυτή την κατάσταση %s.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" @@ -1487,9 +1516,6 @@ msgstr " (%d) RSA (για κρυπτογράφηση μόνο)\n" msgid " (3) Authentication key\n" msgstr "" -msgid "Invalid selection.\n" -msgstr "Μη έγκυρη επιλογή.\n" - #, fuzzy msgid "Please select where to store the key:\n" msgstr "Παρακαλώ επιλέξτε την αιτία για την ανάκληση:\n" @@ -1498,11 +1524,6 @@ msgstr "Παρακαλώ επιλέξτε την αιτία για την ανά msgid "KEYTOCARD failed: %s\n" msgstr "η ενημέρωση απέτυχε: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Αυτή η εντολή απαγορεύετε σε αυτή την κατάσταση %s.\n" - #, fuzzy msgid "Note: This command destroys all keys stored on the card!\n" msgstr "παραλείφθηκε: μυστικό κλειδί ήδη παρών\n" @@ -1514,6 +1535,10 @@ msgstr "Σίγουρα να υπογραφεί; " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +msgid "error for setup KDF: %s\n" +msgstr "σφάλμα κατά την ανάγνωση του `%s': %s\n" + msgid "quit this menu" msgstr "τερματισμός αυτού του μενού" @@ -1571,6 +1596,16 @@ msgstr "" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use NAME as default recipient" +msgid "setup KDF for PIN authentication" +msgstr "|ΟΝΟΜΑ|χρήση του ΟΝΟΜΑτος ως προκαθορισμένου παραλήπτη" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "αλλαγή της εμπιστοσύνης ιδιοκτήτη" + msgid "gpg/card> " msgstr "" @@ -2277,6 +2312,10 @@ msgstr "Μη έγκυρη διεύθυνση Email\n" msgid "invalid pinentry mode '%s'\n" msgstr "μη έγκυρος αλγόριθμος hash `%s'\n" +#, fuzzy, c-format +msgid "invalid request origin '%s'\n" +msgstr "μη έγκυρες επιλογές ειγαγωγής\n" + #, fuzzy, c-format msgid "'%s' is not a valid character set\n" msgstr "το %s δεν είναι έγκυρο σετ χαρακτήρων\n" @@ -3392,11 +3431,11 @@ msgid "Key is revoked." msgstr "Το κλειδί ανακλήθηκε." #, fuzzy -msgid "Really sign all user IDs? (y/N) " +msgid "Really sign all text user IDs? (y/N) " msgstr "Σίγουρα να υπογραφούν όλα τα user ID; " #, fuzzy -msgid "Really sign all text user IDs? (y/N) " +msgid "Really sign all user IDs? (y/N) " msgstr "Σίγουρα να υπογραφούν όλα τα user ID; " msgid "Hint: Select the user IDs to sign\n" @@ -3773,6 +3812,15 @@ msgstr "Αλλαγή ημερομηνίας λήξης για ένα πρωτε msgid "You can't change the expiration date of a v3 key\n" msgstr "Δεν μπορείτε να αλλάξετε την ημερομηνία λήξης σε ένα v3 κλειδί\n" +#, fuzzy +msgid "Changing usage of a subkey.\n" +msgstr "Αλλαγή ημερομηνίας λήξης για ένα δευτερεύον κλειδί.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Αλλαγή ημερομηνίας λήξης για ένα πρωτεύον κλειδί.\n" + #, fuzzy, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "" @@ -3996,9 +4044,6 @@ msgstr "" msgid " (%c) Finished\n" msgstr "" -msgid "Please select what kind of key you want:\n" -msgstr "Παρακαλώ επιλέξτε τον τύπο του κλειδιού που θέλετε:\n" - #, fuzzy, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) DSA και ElGamal (προκαθορισμένο)\n" @@ -4077,10 +4122,6 @@ msgstr "" msgid "What keysize do you want for the subkey? (%u) " msgstr "Τι μέγεθος κλειδιού θα θέλατε; (1024) " -#, fuzzy, c-format -msgid "What keysize do you want? (%u) " -msgstr "Τι μέγεθος κλειδιού θα θέλατε; (1024) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Το μέγεθος κλειδιού που ζητήθηκε είναι %u bits\n" @@ -5510,6 +5551,11 @@ msgstr "ΣΗΜΕΙΩΣΗ: το κλειδί υπογραφής %08lX έληξε msgid "Note: signature key %s has been revoked\n" msgstr "ΣΗΜΕΙΩΣΗ: το κλειδί έχει ανακληθεί" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "ανεξάρτητη υπογραφή κλάσης 0x%02x\n" + #, fuzzy, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "υπόθεση κακής υπογραφής από κλειδί %08lX λόγω άγνωστου κρίσιμου bit\n" @@ -6895,10 +6941,6 @@ msgid "" "you just created once more.\n" msgstr "" -#, fuzzy, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA (για υπογραφή μόνο)\n" - #, fuzzy, c-format msgid " (%d) Existing key\n" msgstr " (%d) RSA (για κρυπτογράφηση μόνο)\n" @@ -8975,6 +9017,18 @@ msgid "" "Check a passphrase given on stdin against the patternfile\n" msgstr "" +#, fuzzy +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Τι μέγεθος κλειδιού θα θέλατε; (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Τι μέγεθος κλειδιού θα θέλατε; (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Τι μέγεθος κλειδιού θα θέλατε; (1024) " + #, fuzzy #~ msgid "listen() failed: %s\n" #~ msgstr "η ενημέρωση απέτυχε: %s\n" diff --git a/po/eo.po b/po/eo.po index 002e2dc17..0e3f40c27 100644 --- a/po/eo.po +++ b/po/eo.po @@ -1426,21 +1426,9 @@ msgid "" msgstr "" #, fuzzy, c-format -msgid "What keysize do you want for the Signature key? (%u) " +msgid "What keysize do you want? (%u) " msgstr "Kiun ŝlosilgrandon vi deziras? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Kiun ŝlosilgrandon vi deziras? (1024) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Kiun ŝlosilgrandon vi deziras? (1024) " - -#, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" - #, c-format msgid "rounded up to %u bits\n" msgstr "rondigita ĝis %u bitoj\n" @@ -1449,14 +1437,55 @@ msgstr "rondigita ĝis %u bitoj\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +msgid "Signature key\n" +msgstr "Ĉi tiu ŝlosilo eksvalidiĝos je %s.\n" + +#, fuzzy +msgid "Encryption key\n" +msgstr " (%d) RSA (nur ĉifri)\n" + +msgid "Authentication key\n" +msgstr "" + +msgid "Please select what kind of key you want:\n" +msgstr "Bonvolu elekti, kian ŝlosilon vi deziras:\n" + +#, fuzzy, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA (nur subskribi)\n" + +#, fuzzy, c-format +msgid " (%d) ECC\n" +msgstr " (%d) DSA kaj ElGamal (implicita elekto)\n" + +msgid "Invalid selection.\n" +msgstr "Nevalida elekto.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" + #, fuzzy, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "eraro dum sendo al '%s': %s\n" +#, fuzzy, c-format +msgid "error getting card info: %s\n" +msgstr "eraro dum skribado de sekreta ŝlosilaro '%s': %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Tiu komando ne eblas en la reĝimo %s.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" @@ -1489,9 +1518,6 @@ msgstr " (%d) RSA (nur ĉifri)\n" msgid " (3) Authentication key\n" msgstr "" -msgid "Invalid selection.\n" -msgstr "Nevalida elekto.\n" - #, fuzzy msgid "Please select where to store the key:\n" msgstr "Kialo por revoko: " @@ -1500,11 +1526,6 @@ msgstr "Kialo por revoko: " msgid "KEYTOCARD failed: %s\n" msgstr "aktualigo malsukcesis: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Tiu komando ne eblas en la reĝimo %s.\n" - #, fuzzy msgid "Note: This command destroys all keys stored on the card!\n" msgstr "ignorita: sekreta ŝlosilo jam ĉeestas\n" @@ -1516,6 +1537,10 @@ msgstr "Ĉu vere subskribi? " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +msgid "error for setup KDF: %s\n" +msgstr "eraro dum legado de '%s': %s\n" + msgid "quit this menu" msgstr "forlasi ĉi tiun menuon" @@ -1573,6 +1598,16 @@ msgstr "" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use NAME as default recipient" +msgid "setup KDF for PIN authentication" +msgstr "|NOMO|uzi NOMOn kiel implicitan ricevonton" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "ŝanĝi la posedantofidon" + msgid "gpg/card> " msgstr "" @@ -2257,6 +2292,10 @@ msgstr "Nevalida retadreso\n" msgid "invalid pinentry mode '%s'\n" msgstr "nevalida kompendi-metodo '%s'\n" +#, fuzzy, c-format +msgid "invalid request origin '%s'\n" +msgstr "nevalida kiraso" + #, fuzzy, c-format msgid "'%s' is not a valid character set\n" msgstr "%s ne estas valida signaro\n" @@ -3377,11 +3416,11 @@ msgid "Key is revoked." msgstr "Ŝlosilo estas revokita.\n" #, fuzzy -msgid "Really sign all user IDs? (y/N) " +msgid "Really sign all text user IDs? (y/N) " msgstr "Ĉu vere subskribi ĉiujn uzantidentigilojn? " #, fuzzy -msgid "Really sign all text user IDs? (y/N) " +msgid "Really sign all user IDs? (y/N) " msgstr "Ĉu vere subskribi ĉiujn uzantidentigilojn? " msgid "Hint: Select the user IDs to sign\n" @@ -3745,6 +3784,15 @@ msgstr "Ŝanĝas la daton de eksvalidiĝo de la ĉefa ŝlosilo.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Vi ne povas ŝanĝi la daton de eksvalidiĝo de v3-ŝlosilo\n" +#, fuzzy +msgid "Changing usage of a subkey.\n" +msgstr "Ŝanĝas la daton de eksvalidiĝo de flanka ŝlosilo.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Ŝanĝas la daton de eksvalidiĝo de la ĉefa ŝlosilo.\n" + #, fuzzy, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "Uzantidentigilo \"%s\" estas revokita.\n" @@ -3969,9 +4017,6 @@ msgstr "" msgid " (%c) Finished\n" msgstr "" -msgid "Please select what kind of key you want:\n" -msgstr "Bonvolu elekti, kian ŝlosilon vi deziras:\n" - #, fuzzy, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) DSA kaj ElGamal (implicita elekto)\n" @@ -4050,10 +4095,6 @@ msgstr "" msgid "What keysize do you want for the subkey? (%u) " msgstr "Kiun ŝlosilgrandon vi deziras? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want? (%u) " -msgstr "Kiun ŝlosilgrandon vi deziras? (1024) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Petita ŝlosilgrando estas %u bitoj\n" @@ -5461,6 +5502,11 @@ msgstr "NOTO: subskribo-ŝlosilo %08lX eksvalidiĝis je %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "ŝlosilo %08lX: ŝlosilo estas revokita!\n" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "memstara subskribo de klaso 0x%02x\n" + #, fuzzy, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "supozas malbonan subskribon pro nekonata \"critical bit\"\n" @@ -6846,10 +6892,6 @@ msgid "" "you just created once more.\n" msgstr "" -#, fuzzy, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA (nur subskribi)\n" - #, fuzzy, c-format msgid " (%d) Existing key\n" msgstr " (%d) RSA (nur ĉifri)\n" @@ -8916,6 +8958,18 @@ msgid "" "Check a passphrase given on stdin against the patternfile\n" msgstr "" +#, fuzzy +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Kiun ŝlosilgrandon vi deziras? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Kiun ŝlosilgrandon vi deziras? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Kiun ŝlosilgrandon vi deziras? (1024) " + #, fuzzy #~ msgid "listen() failed: %s\n" #~ msgstr "aktualigo malsukcesis: %s\n" diff --git a/po/es.po b/po/es.po index a631ced9f..1ab8e88af 100644 --- a/po/es.po +++ b/po/es.po @@ -1475,21 +1475,8 @@ msgstr "" " la documentación de su tarjeta para ver los tamaños posibles.\n" #, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "¿De qué tamaño quiere la clave de Firmado? (%u) " - -#, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "¿De qué tamaño quiere la clave de Cifrado? (%u) " - -#, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "¿De qué tamaño quiere la clave de Autenticación? (%u) " - -#, fuzzy, c-format -#| msgid "The card will now be re-configured to generate a key of %u bits\n" -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "Ahora la tarjeta se reconfigurará para generar una clave de %u bits\n" +msgid "What keysize do you want? (%u) " +msgstr "¿De qué tamaño quiere la clave? (%u) " #, c-format msgid "rounded up to %u bits\n" @@ -1499,14 +1486,63 @@ msgstr "redondeados a %u bits\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "los tamaños de claves %s deben estar en el rango %u-%u\n" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +#| msgid " (1) Signature key\n" +msgid "Signature key\n" +msgstr " (1) Clave de firmado\n" + +#, fuzzy +#| msgid " (2) Encryption key\n" +msgid "Encryption key\n" +msgstr " (2) Clave de cifrado\n" + +#, fuzzy +#| msgid " (3) Authentication key\n" +msgid "Authentication key\n" +msgstr " (3) Clave de autentificación\n" + +msgid "Please select what kind of key you want:\n" +msgstr "Por favor seleccione tipo de clave deseado:\n" + +#, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA\n" + +#, fuzzy, c-format +#| msgid " (%d) DSA and Elgamal\n" +msgid " (%d) ECC\n" +msgstr " (%d) DSA y ElGamal\n" + +msgid "Invalid selection.\n" +msgstr "Elección inválida.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "Ahora la tarjeta se reconfigurará para generar una clave de %u bits\n" -#, c-format -msgid "error changing size of key %d to %u bits: %s\n" +#, fuzzy, c-format +#| msgid "The card will now be re-configured to generate a key of %u bits\n" +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "Ahora la tarjeta se reconfigurará para generar una clave de %u bits\n" + +#, fuzzy, c-format +#| msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "error cambiando el tamaño de la clave %d a %u bits: %s\n" +#, fuzzy, c-format +#| msgid "error getting current key info: %s\n" +msgid "error getting card info: %s\n" +msgstr "error obteniendo la información actual de la clave: %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Esta orden no se permite en modo %s.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" "¿Hacer copia de seguridad externa a la tarjeta de clave de cifrado? (S/n)" @@ -1545,9 +1581,6 @@ msgstr " (2) Clave de cifrado\n" msgid " (3) Authentication key\n" msgstr " (3) Clave de autentificación\n" -msgid "Invalid selection.\n" -msgstr "Elección inválida.\n" - msgid "Please select where to store the key:\n" msgstr "Por favor elija donde guardar la clave:\n" @@ -1556,11 +1589,6 @@ msgstr "Por favor elija donde guardar la clave:\n" msgid "KEYTOCARD failed: %s\n" msgstr "lectura fallida: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Esta orden no se permite en modo %s.\n" - #, fuzzy #| msgid "NOTE: keys are already stored on the card!\n" msgid "Note: This command destroys all keys stored on the card!\n" @@ -1574,6 +1602,11 @@ msgstr "¿Firmarlo? (s/N) " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +#| msgid "error closing %s: %s\n" +msgid "error for setup KDF: %s\n" +msgstr "error cerrando %s: %s\n" + msgid "quit this menu" msgstr "sale de este menú" @@ -1625,6 +1658,16 @@ msgstr "desbloquear PIN usando Código de Reinicio" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use NAME as default recipient" +msgid "setup KDF for PIN authentication" +msgstr "|NOMBRE|usa NOMBRE como destinatario por defecto" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "cambia valores de confianza" + msgid "gpg/card> " msgstr "gpg/tarjeta> " @@ -2340,6 +2383,11 @@ msgstr "línea %d: no es una dirección de email válida\n" msgid "invalid pinentry mode '%s'\n" msgstr "código de país inválido en `%s', línea %d\n" +#, fuzzy, c-format +#| msgid "missing argument for option \"%.50s\"\n" +msgid "invalid request origin '%s'\n" +msgstr "falta parámetro para la opción \"%.50s\"\n" + #, fuzzy, c-format #| msgid "`%s' is not a valid character set\n" msgid "'%s' is not a valid character set\n" @@ -3419,14 +3467,14 @@ msgstr "" msgid "Key is revoked." msgstr "La clave está revocada." -msgid "Really sign all user IDs? (y/N) " -msgstr "¿Firmar realmente todos los IDs de usuario? (s/N) " - #, fuzzy #| msgid "Really sign all user IDs? (y/N) " msgid "Really sign all text user IDs? (y/N) " msgstr "¿Firmar realmente todos los IDs de usuario? (s/N) " +msgid "Really sign all user IDs? (y/N) " +msgstr "¿Firmar realmente todos los IDs de usuario? (s/N) " + msgid "Hint: Select the user IDs to sign\n" msgstr "Sugerencia: seleccione los identificadores de usuario que firmar\n" @@ -3785,6 +3833,16 @@ msgstr "Cambiando caducidad de clave primaria.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "No puede cambiar la fecha de caducidad de una clave v3\n" +#, fuzzy +#| msgid "Changing expiration time for a subkey.\n" +msgid "Changing usage of a subkey.\n" +msgstr "Cambiando fecha de caducidad de subclave.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Cambiando caducidad de clave primaria.\n" + #, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "la subclave de firmado %s ya está certificada en cruz\n" @@ -4001,9 +4059,6 @@ msgstr " (%c) Conmutar la capacidad de autenticación\n" msgid " (%c) Finished\n" msgstr " (%c) Acabado\n" -msgid "Please select what kind of key you want:\n" -msgstr "Por favor seleccione tipo de clave deseado:\n" - #, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) RSA y RSA (por defecto)\n" @@ -4083,10 +4138,6 @@ msgstr "las claves %s pueden tener entre %u y %u bits de longitud.\n" msgid "What keysize do you want for the subkey? (%u) " msgstr "¿De qué tamaño quiere la subclave? (%u) " -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "¿De qué tamaño quiere la clave? (%u) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "El tamaño requerido es de %u bits\n" @@ -5521,6 +5572,11 @@ msgstr "NOTA: clave de la firma %s caducada el %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "NOTA: la clave de firmado %s ha sido revocada\n" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "firma independiente de clase 0x%02x\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6948,10 +7004,6 @@ msgstr "" "Para completar este certificado introduzca por favor la frase contraseñapara " "la clave que acaba de crear una vez más.\n" -#, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA\n" - #, c-format msgid " (%d) Existing key\n" msgstr " (%d) Clave existente\n" @@ -9248,6 +9300,15 @@ msgstr "" "Compara frase contraseña dada en entrada estándar con un fichero de " "patrones\n" +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "¿De qué tamaño quiere la clave de Firmado? (%u) " + +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "¿De qué tamaño quiere la clave de Cifrado? (%u) " + +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "¿De qué tamaño quiere la clave de Autenticación? (%u) " + #~ msgid "listen() failed: %s\n" #~ msgstr "listen() falló: %s\n" diff --git a/po/et.po b/po/et.po index b6a12e4d4..c12b6ed6c 100644 --- a/po/et.po +++ b/po/et.po @@ -1420,21 +1420,9 @@ msgid "" msgstr "" #, fuzzy, c-format -msgid "What keysize do you want for the Signature key? (%u) " +msgid "What keysize do you want? (%u) " msgstr "Millist võtmepikkust te soovite? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Millist võtmepikkust te soovite? (1024) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Millist võtmepikkust te soovite? (1024) " - -#, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" - #, c-format msgid "rounded up to %u bits\n" msgstr "ümardatud üles %u bitini\n" @@ -1443,14 +1431,55 @@ msgstr "ümardatud üles %u bitini\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +msgid "Signature key\n" +msgstr "Allkiri aegus %s\n" + +#, fuzzy +msgid "Encryption key\n" +msgstr " (%d) RSA (ainult krüpteerimiseks)\n" + +msgid "Authentication key\n" +msgstr "" + +msgid "Please select what kind of key you want:\n" +msgstr "Palun valige, millist võtmetüüpi te soovite:\n" + +#, fuzzy, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA (ainult allkirjastamiseks)\n" + +#, fuzzy, c-format +msgid " (%d) ECC\n" +msgstr " (%d) DSA ja ElGamal (vaikimisi)\n" + +msgid "Invalid selection.\n" +msgstr "Vigane valik.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" + #, fuzzy, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "viga teate saatmisel serverile `%s': %s\n" +#, fuzzy, c-format +msgid "error getting card info: %s\n" +msgstr "viga salajase võtme võtmehoidlasse `%s' kirjutamisel: %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "See käsklus ei ole %s moodis lubatud.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" @@ -1483,9 +1512,6 @@ msgstr " (%d) RSA (ainult krüpteerimiseks)\n" msgid " (3) Authentication key\n" msgstr "" -msgid "Invalid selection.\n" -msgstr "Vigane valik.\n" - #, fuzzy msgid "Please select where to store the key:\n" msgstr "Palun valige tühistamise põhjus:\n" @@ -1494,11 +1520,6 @@ msgstr "Palun valige tühistamise põhjus:\n" msgid "KEYTOCARD failed: %s\n" msgstr "uuendamine ebaõnnestus: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "See käsklus ei ole %s moodis lubatud.\n" - #, fuzzy msgid "Note: This command destroys all keys stored on the card!\n" msgstr "jätsin vahele: avalik võti on juba olemas\n" @@ -1510,6 +1531,10 @@ msgstr "Allkirjastan tõesti? " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +msgid "error for setup KDF: %s\n" +msgstr "viga `%s' lugemisel: %s\n" + msgid "quit this menu" msgstr "välju sellest menüüst" @@ -1567,6 +1592,16 @@ msgstr "" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use NAME as default recipient" +msgid "setup KDF for PIN authentication" +msgstr "|NIMI|kasuta NIME vaikimisi saajana" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "muuda omaniku usaldust" + msgid "gpg/card> " msgstr "" @@ -2266,6 +2301,10 @@ msgstr "Selline e-posti aadress ei ole lubatud\n" msgid "invalid pinentry mode '%s'\n" msgstr "vigane räsialgoritm `%s'\n" +#, fuzzy, c-format +msgid "invalid request origin '%s'\n" +msgstr "vigased impordi võtmed\n" + #, fuzzy, c-format msgid "'%s' is not a valid character set\n" msgstr "%s ei ole lubatud kooditabel\n" @@ -3365,11 +3404,11 @@ msgid "Key is revoked." msgstr "Võti on tühistatud." #, fuzzy -msgid "Really sign all user IDs? (y/N) " +msgid "Really sign all text user IDs? (y/N) " msgstr "Kas allkirjastan tõesti kõik kasutaja IDd? " #, fuzzy -msgid "Really sign all text user IDs? (y/N) " +msgid "Really sign all user IDs? (y/N) " msgstr "Kas allkirjastan tõesti kõik kasutaja IDd? " msgid "Hint: Select the user IDs to sign\n" @@ -3736,6 +3775,15 @@ msgstr "Muudan primaarse võtme aegumise aega.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "v3 võtme aegumise aega ei saa muuta.\n" +#, fuzzy +msgid "Changing usage of a subkey.\n" +msgstr "Muudan sekundaarse võtme aegumise aega.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Muudan primaarse võtme aegumise aega.\n" + #, fuzzy, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "HOIATUS: allkirjastamise alamvõti %08lX ei ole rist-sertifitseeritud\n" @@ -3956,9 +4004,6 @@ msgstr "" msgid " (%c) Finished\n" msgstr "" -msgid "Please select what kind of key you want:\n" -msgstr "Palun valige, millist võtmetüüpi te soovite:\n" - #, fuzzy, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) DSA ja ElGamal (vaikimisi)\n" @@ -4037,10 +4082,6 @@ msgstr "" msgid "What keysize do you want for the subkey? (%u) " msgstr "Millist võtmepikkust te soovite? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want? (%u) " -msgstr "Millist võtmepikkust te soovite? (1024) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Soovitud võtmepikkus on %u bitti\n" @@ -5436,6 +5477,11 @@ msgstr "MÄRKUS: allkirja võti %08lX aegus %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "MÄRKUS: võti on tühistatud" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "eraldiseisev allkiri klassiga 0x%02x\n" + #, fuzzy, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "eeldan tundmatu kriitilise biti tõttu võtmel %08lX vigast allkirja\n" @@ -6815,10 +6861,6 @@ msgid "" "you just created once more.\n" msgstr "" -#, fuzzy, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA (ainult allkirjastamiseks)\n" - #, fuzzy, c-format msgid " (%d) Existing key\n" msgstr " (%d) RSA (ainult krüpteerimiseks)\n" @@ -8891,6 +8933,18 @@ msgid "" "Check a passphrase given on stdin against the patternfile\n" msgstr "" +#, fuzzy +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Millist võtmepikkust te soovite? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Millist võtmepikkust te soovite? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Millist võtmepikkust te soovite? (1024) " + #, fuzzy #~ msgid "listen() failed: %s\n" #~ msgstr "uuendamine ebaõnnestus: %s\n" diff --git a/po/fi.po b/po/fi.po index 96ed7355e..ee4085990 100644 --- a/po/fi.po +++ b/po/fi.po @@ -1439,21 +1439,9 @@ msgid "" msgstr "" #, fuzzy, c-format -msgid "What keysize do you want for the Signature key? (%u) " +msgid "What keysize do you want? (%u) " msgstr "Minkä kokoisen avaimen haluat? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Minkä kokoisen avaimen haluat? (1024) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Minkä kokoisen avaimen haluat? (1024) " - -#, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" - #, c-format msgid "rounded up to %u bits\n" msgstr "pyöristetty %u bittiin\n" @@ -1462,14 +1450,55 @@ msgstr "pyöristetty %u bittiin\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +msgid "Signature key\n" +msgstr "Allekirjoitus vanheni %s\n" + +#, fuzzy +msgid "Encryption key\n" +msgstr " (%d) RSA (vain salaus)\n" + +msgid "Authentication key\n" +msgstr "" + +msgid "Please select what kind of key you want:\n" +msgstr "Valitse millaisen avaimen haluat:\n" + +#, fuzzy, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA (vain allekirjoitus)\n" + +#, fuzzy, c-format +msgid " (%d) ECC\n" +msgstr " (%d) DSA ja ElGamal (oletus)\n" + +msgid "Invalid selection.\n" +msgstr "Valinta ei kelpaa.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" + #, fuzzy, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "virhe lähettäessä kohteeseen \"%s\": %s\n" +#, fuzzy, c-format +msgid "error getting card info: %s\n" +msgstr "virhe kirjoitettaessa salaiseen avainrenkaaseen \"%s\": %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Tätä komentoa ei sallita %s-tilassa.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" @@ -1502,9 +1531,6 @@ msgstr " (%d) RSA (vain salaus)\n" msgid " (3) Authentication key\n" msgstr "" -msgid "Invalid selection.\n" -msgstr "Valinta ei kelpaa.\n" - #, fuzzy msgid "Please select where to store the key:\n" msgstr "Valitse mitätöinnin syy:\n" @@ -1513,11 +1539,6 @@ msgstr "Valitse mitätöinnin syy:\n" msgid "KEYTOCARD failed: %s\n" msgstr "päivitys epäonnistui: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Tätä komentoa ei sallita %s-tilassa.\n" - #, fuzzy msgid "Note: This command destroys all keys stored on the card!\n" msgstr "ohitetaan: salainen avain on jo paikalla\n" @@ -1529,6 +1550,10 @@ msgstr "Varmastiko allekirjoita? " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +msgid "error for setup KDF: %s\n" +msgstr "virhe luettaessa tiedostoa \"%s\": %s\n" + msgid "quit this menu" msgstr "ulos tästä valikosta" @@ -1586,6 +1611,16 @@ msgstr "" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use NAME as default recipient" +msgid "setup KDF for PIN authentication" +msgstr "|NIMI|käytä NIMI oletusvastaanottajana" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "muuta luottamusastetta" + msgid "gpg/card> " msgstr "" @@ -2281,6 +2316,10 @@ msgstr "Sähköpostiosoite ei kelpaa\n" msgid "invalid pinentry mode '%s'\n" msgstr "virheellinen tiivistealgoritmi \"%s\"\n" +#, fuzzy, c-format +msgid "invalid request origin '%s'\n" +msgstr "virheelliset tuontivalitsimet\n" + #, fuzzy, c-format msgid "'%s' is not a valid character set\n" msgstr "%s ei kelpaa merkistöksi\n" @@ -3385,11 +3424,11 @@ msgid "Key is revoked." msgstr "Avain on mitätöity." #, fuzzy -msgid "Really sign all user IDs? (y/N) " +msgid "Really sign all text user IDs? (y/N) " msgstr "Varmastiko allekirjoita kaikki käyttäjätunnukset?" #, fuzzy -msgid "Really sign all text user IDs? (y/N) " +msgid "Really sign all user IDs? (y/N) " msgstr "Varmastiko allekirjoita kaikki käyttäjätunnukset?" msgid "Hint: Select the user IDs to sign\n" @@ -3757,6 +3796,15 @@ msgstr "Muutetaan ensisijaisen avaimen vanhentumisaikaa.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Et voi muuttaa v3-avainten vanhentumispäivää\n" +#, fuzzy +msgid "Changing usage of a subkey.\n" +msgstr "Muutetaan toissijaisen avaimen vanhentumisaikaa.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Muutetaan ensisijaisen avaimen vanhentumisaikaa.\n" + #, fuzzy, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "VAROITUS: allekirjoitusaliavain %08lX ei ole ristiinvarmennettu\n" @@ -3981,9 +4029,6 @@ msgstr "" msgid " (%c) Finished\n" msgstr "" -msgid "Please select what kind of key you want:\n" -msgstr "Valitse millaisen avaimen haluat:\n" - #, fuzzy, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) DSA ja ElGamal (oletus)\n" @@ -4062,10 +4107,6 @@ msgstr "" msgid "What keysize do you want for the subkey? (%u) " msgstr "Minkä kokoisen avaimen haluat? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want? (%u) " -msgstr "Minkä kokoisen avaimen haluat? (1024) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Halutun avaimen koko on %u bittiä\n" @@ -5490,6 +5531,11 @@ msgstr "HUOM: allekirjoitusavain %08lX vanheni %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "HUOM: avain on mitätöity!" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "itsenäinen allekirjoitus luokkaa 0x%02x\n" + #, fuzzy, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6874,10 +6920,6 @@ msgid "" "you just created once more.\n" msgstr "" -#, fuzzy, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA (vain allekirjoitus)\n" - #, fuzzy, c-format msgid " (%d) Existing key\n" msgstr " (%d) RSA (vain salaus)\n" @@ -8953,6 +8995,18 @@ msgid "" "Check a passphrase given on stdin against the patternfile\n" msgstr "" +#, fuzzy +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Minkä kokoisen avaimen haluat? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Minkä kokoisen avaimen haluat? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Minkä kokoisen avaimen haluat? (1024) " + #, fuzzy #~ msgid "listen() failed: %s\n" #~ msgstr "päivitys epäonnistui: %s\n" diff --git a/po/fr.po b/po/fr.po index 30f61bb59..3eff8be7a 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1387,23 +1387,8 @@ msgstr "" " tailles permises dans la documentation de la carte.\n" #, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "Quelle taille de clef désirez-vous pour la clef de signature ? (%u) " - -#, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Quelle taille de clef désirez-vous pour la clef de chiffrement ? (%u) " - -#, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "" -"Quelle taille de clef désirez-vous pour la clef d'authentification ? (%u) " - -#, fuzzy, c-format -#| msgid "The card will now be re-configured to generate a key of %u bits\n" -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" -"La carte sera maintenant reconfigurée pour générer une clef de %u bits\n" +msgid "What keysize do you want? (%u) " +msgstr "Quelle taille de clef désirez-vous ? (%u) " #, c-format msgid "rounded up to %u bits\n" @@ -1413,15 +1398,66 @@ msgstr "arrondie à %u bits\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "les tailles de clefs %s doivent être dans l'intervalle %u-%u\n" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +#| msgid " (1) Signature key\n" +msgid "Signature key\n" +msgstr " (1) Clef de signature\n" + +#, fuzzy +#| msgid " (2) Encryption key\n" +msgid "Encryption key\n" +msgstr " (2) Clef de chiffrement\n" + +#, fuzzy +#| msgid " (3) Authentication key\n" +msgid "Authentication key\n" +msgstr " (3) Clef d'authentification\n" + +msgid "Please select what kind of key you want:\n" +msgstr "Sélectionnez le type de clef désiré :\n" + +#, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA\n" + +#, c-format +msgid " (%d) ECC\n" +msgstr " (%d) ECC\n" + +msgid "Invalid selection.\n" +msgstr "Choix incorrect.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" "La carte sera maintenant reconfigurée pour générer une clef de %u bits\n" -#, c-format -msgid "error changing size of key %d to %u bits: %s\n" +#, fuzzy, c-format +#| msgid "The card will now be re-configured to generate a key of %u bits\n" +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" +"La carte sera maintenant reconfigurée pour générer une clef de %u bits\n" + +#, fuzzy, c-format +#| msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "erreur de modification de taille de clef %d en %u bits : %s\n" +#, fuzzy, c-format +#| msgid "error getting current key info: %s\n" +msgid "error getting card info: %s\n" +msgstr "" +"erreur de lecture des renseignements actuellement contenus\n" +"dans la clef : %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Cette commande n'est pas permise en mode %s.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" "Faut-il faire une sauvegarde hors carte de la clef de chiffrement ? (O/n) " @@ -1454,9 +1490,6 @@ msgstr " (2) Clef de chiffrement\n" msgid " (3) Authentication key\n" msgstr " (3) Clef d'authentification\n" -msgid "Invalid selection.\n" -msgstr "Choix incorrect.\n" - msgid "Please select where to store the key:\n" msgstr "Veuillez sélectionner l'endroit où stocker la clef :\n" @@ -1464,11 +1497,6 @@ msgstr "Veuillez sélectionner l'endroit où stocker la clef :\n" msgid "KEYTOCARD failed: %s\n" msgstr "échec de KEYTOCARD : %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Cette commande n'est pas permise en mode %s.\n" - #, fuzzy #| msgid "Note: keys are already stored on the card!\n" msgid "Note: This command destroys all keys stored on the card!\n" @@ -1482,6 +1510,11 @@ msgstr "Faut-il continuer ? (O/n) " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +#| msgid "error closing %s: %s\n" +msgid "error for setup KDF: %s\n" +msgstr "erreur de fermeture de %s : %s\n" + msgid "quit this menu" msgstr "quitter ce menu" @@ -1535,6 +1568,16 @@ msgstr "débloquer le code personnel en utilisant un code de réinitialisation" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use user NAME for authentication" +msgid "setup KDF for PIN authentication" +msgstr "|NOM|utiliser le NOM d'utilisateur pour authentif." + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "modifier la confiance du propriétaire" + msgid "gpg/card> " msgstr "gpg/carte> " @@ -2224,6 +2267,11 @@ msgstr "ligne %d : ce n'est pas une adresse électronique valable\n" msgid "invalid pinentry mode '%s'\n" msgstr "mode pinentry « %s » incorrect\n" +#, fuzzy, c-format +#| msgid "invalid argument for option \"%.50s\"\n" +msgid "invalid request origin '%s'\n" +msgstr "argument incorrect pour l'option « %.50s »\n" + #, c-format msgid "'%s' is not a valid character set\n" msgstr "« %s » n'est pas un jeu de caractères valable\n" @@ -3289,14 +3337,14 @@ msgstr "" msgid "Key is revoked." msgstr "La clef est révoquée." -msgid "Really sign all user IDs? (y/N) " -msgstr "Voulez-vous vraiment signer toutes les identités ? (o/N) " - #, fuzzy #| msgid "Really sign all user IDs? (y/N) " msgid "Really sign all text user IDs? (y/N) " msgstr "Voulez-vous vraiment signer toutes les identités ? (o/N) " +msgid "Really sign all user IDs? (y/N) " +msgstr "Voulez-vous vraiment signer toutes les identités ? (o/N) " + msgid "Hint: Select the user IDs to sign\n" msgstr "Conseil : sélectionner les identités à signer\n" @@ -3653,6 +3701,16 @@ msgstr "Modification de la date d'expiration de la clef principale.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Vous ne pouvez pas modifier la date d'expiration d'une clef v3\n" +#, fuzzy +#| msgid "Changing expiration time for a subkey.\n" +msgid "Changing usage of a subkey.\n" +msgstr "Modification de la date d'expiration d'une sous-clef.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Modification de la date d'expiration de la clef principale.\n" + #, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "la sous-clef de signature %s a déjà une certification croisée\n" @@ -3875,9 +3933,6 @@ msgstr " (%c) Inverser la capacité d'authentification\n" msgid " (%c) Finished\n" msgstr " (%c) Terminé\n" -msgid "Please select what kind of key you want:\n" -msgstr "Sélectionnez le type de clef désiré :\n" - #, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) RSA et RSA (par défaut)\n" @@ -3951,10 +4006,6 @@ msgstr "les clefs %s peuvent faire une taille comprise entre %u et %u bits.\n" msgid "What keysize do you want for the subkey? (%u) " msgstr "Quelle taille de clef désirez-vous pour la sous-clef ? (%u) " -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "Quelle taille de clef désirez-vous ? (%u) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "La taille demandée est %u bits\n" @@ -5420,6 +5471,11 @@ msgstr "Remarque : la clef de signature %s a expiré le %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "Remarque : la clef de signature %s a été révoquée\n" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "signature autonome de classe 0x%02x\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6844,10 +6900,6 @@ msgstr "" "Pour terminer cette demande de certificat, veuillez entrer encore une fois " "la phrase secrète pour la clef que vous venez de créer.\n" -#, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA\n" - #, c-format msgid " (%d) Existing key\n" msgstr " (%d) Clef existante\n" @@ -8931,6 +8983,18 @@ msgstr "" "Vérifier une phrase secrète donnée sur l'entrée standard par rapport à " "ficmotif\n" +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "" +#~ "Quelle taille de clef désirez-vous pour la clef de signature ? (%u) " + +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "" +#~ "Quelle taille de clef désirez-vous pour la clef de chiffrement ? (%u) " + +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "" +#~ "Quelle taille de clef désirez-vous pour la clef d'authentification ? (%u) " + #~ msgid "listen() failed: %s\n" #~ msgstr "échec de listen() : %s\n" @@ -9318,9 +9382,6 @@ msgstr "" #~ msgid "no secret subkey for public subkey %s - ignoring\n" #~ msgstr "pas de sous-clef secrète pour la sous-clef publique %s — ignorée\n" -#~ msgid " (%d) ECC\n" -#~ msgstr " (%d) ECC\n" - #, fuzzy #~| msgid "can't create directory '%s': %s\n" #~ msgid "can't create directory `%s': %s\n" diff --git a/po/gl.po b/po/gl.po index ac878c6df..08f5eb5d2 100644 --- a/po/gl.po +++ b/po/gl.po @@ -1429,21 +1429,9 @@ msgid "" msgstr "" #, fuzzy, c-format -msgid "What keysize do you want for the Signature key? (%u) " +msgid "What keysize do you want? (%u) " msgstr "¿Qué tamaño de chave quere? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "¿Qué tamaño de chave quere? (1024) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "¿Qué tamaño de chave quere? (1024) " - -#, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" - #, c-format msgid "rounded up to %u bits\n" msgstr "redondeado a %u bits\n" @@ -1452,14 +1440,55 @@ msgstr "redondeado a %u bits\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +msgid "Signature key\n" +msgstr "A sinatura caducou o %s\n" + +#, fuzzy +msgid "Encryption key\n" +msgstr " (%d) RSA (só cifrar)\n" + +msgid "Authentication key\n" +msgstr "" + +msgid "Please select what kind of key you want:\n" +msgstr "Por favor, seleccione o tipo de chave que quere:\n" + +#, fuzzy, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA (só asinar)\n" + +#, fuzzy, c-format +msgid " (%d) ECC\n" +msgstr " (%d) DSA e ElGamal (por defecto)\n" + +msgid "Invalid selection.\n" +msgstr "Selección non válida.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" + #, fuzzy, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "erro ao enviar a `%s': %s\n" +#, fuzzy, c-format +msgid "error getting card info: %s\n" +msgstr "erro escribindo no chaveiro secreto `%s': %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Non se admite este comando no modo %s.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" @@ -1492,9 +1521,6 @@ msgstr " (%d) RSA (só cifrar)\n" msgid " (3) Authentication key\n" msgstr "" -msgid "Invalid selection.\n" -msgstr "Selección non válida.\n" - #, fuzzy msgid "Please select where to store the key:\n" msgstr "Por favor, escolla o motivo da revocación:\n" @@ -1503,11 +1529,6 @@ msgstr "Por favor, escolla o motivo da revocación:\n" msgid "KEYTOCARD failed: %s\n" msgstr "a actualización fallou: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Non se admite este comando no modo %s.\n" - #, fuzzy msgid "Note: This command destroys all keys stored on the card!\n" msgstr "omítese: a chave secreta xa está presente\n" @@ -1519,6 +1540,10 @@ msgstr "¿Asinar de verdade? " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +msgid "error for setup KDF: %s\n" +msgstr "erro lendo `%s': %s\n" + msgid "quit this menu" msgstr "saír deste menú" @@ -1576,6 +1601,16 @@ msgstr "" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use NAME as default recipient" +msgid "setup KDF for PIN authentication" +msgstr "|NOME|empregar NOME como valor por defecto do destinatario" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "cambia-la confianza sobre o dono" + msgid "gpg/card> " msgstr "" @@ -2274,6 +2309,10 @@ msgstr "Non é un enderezo de e-mail válido\n" msgid "invalid pinentry mode '%s'\n" msgstr "algoritmo de hash non válido `%s'\n" +#, fuzzy, c-format +msgid "invalid request origin '%s'\n" +msgstr "opcións de importación non válidas\n" + #, fuzzy, c-format msgid "'%s' is not a valid character set\n" msgstr "%s non é un xogo de caracteres válido\n" @@ -3389,11 +3428,11 @@ msgid "Key is revoked." msgstr "A chave está revocada." #, fuzzy -msgid "Really sign all user IDs? (y/N) " +msgid "Really sign all text user IDs? (y/N) " msgstr "¿Seguro de que quere asinar tódolos IDs de usuario? " #, fuzzy -msgid "Really sign all text user IDs? (y/N) " +msgid "Really sign all user IDs? (y/N) " msgstr "¿Seguro de que quere asinar tódolos IDs de usuario? " msgid "Hint: Select the user IDs to sign\n" @@ -3769,6 +3808,15 @@ msgstr "Cambiando a data de expiración da chave primaria.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Non pode cambia-la data de expiración dunha chave v3\n" +#, fuzzy +msgid "Changing usage of a subkey.\n" +msgstr "Cambiando a data de expiración para a chave secundaria.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Cambiando a data de expiración da chave primaria.\n" + #, fuzzy, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "" @@ -3993,9 +4041,6 @@ msgstr "" msgid " (%c) Finished\n" msgstr "" -msgid "Please select what kind of key you want:\n" -msgstr "Por favor, seleccione o tipo de chave que quere:\n" - #, fuzzy, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) DSA e ElGamal (por defecto)\n" @@ -4074,10 +4119,6 @@ msgstr "" msgid "What keysize do you want for the subkey? (%u) " msgstr "¿Qué tamaño de chave quere? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want? (%u) " -msgstr "¿Qué tamaño de chave quere? (1024) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "O tamaño de chave requerido son %u bits\n" @@ -5500,6 +5541,11 @@ msgstr "NOTA: a chave de sinatura %08lX caducou o %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "NOTA: a chave está revocada" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "sinatura independiente de clase 0x%02x\n" + #, fuzzy, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6896,10 +6942,6 @@ msgid "" "you just created once more.\n" msgstr "" -#, fuzzy, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA (só asinar)\n" - #, fuzzy, c-format msgid " (%d) Existing key\n" msgstr " (%d) RSA (só cifrar)\n" @@ -8982,6 +9024,18 @@ msgid "" "Check a passphrase given on stdin against the patternfile\n" msgstr "" +#, fuzzy +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "¿Qué tamaño de chave quere? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "¿Qué tamaño de chave quere? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "¿Qué tamaño de chave quere? (1024) " + #, fuzzy #~ msgid "listen() failed: %s\n" #~ msgstr "a actualización fallou: %s\n" diff --git a/po/hu.po b/po/hu.po index 4afd8ef08..96d6f6cfb 100644 --- a/po/hu.po +++ b/po/hu.po @@ -1420,21 +1420,9 @@ msgid "" msgstr "" #, fuzzy, c-format -msgid "What keysize do you want for the Signature key? (%u) " +msgid "What keysize do you want? (%u) " msgstr "Milyen kulcsméretet szeretne? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Milyen kulcsméretet szeretne? (1024) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Milyen kulcsméretet szeretne? (1024) " - -#, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" - #, c-format msgid "rounded up to %u bits\n" msgstr "Felkerekítve %u bitre.\n" @@ -1443,14 +1431,55 @@ msgstr "Felkerekítve %u bitre.\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +msgid "Signature key\n" +msgstr "Az aláírás lejárt: %s.\n" + +#, fuzzy +msgid "Encryption key\n" +msgstr " (%d) RSA (csak titkosítás)\n" + +msgid "Authentication key\n" +msgstr "" + +msgid "Please select what kind of key you want:\n" +msgstr "Kérem, adja meg, milyen kulcsot kíván:\n" + +#, fuzzy, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA (csak aláírás)\n" + +#, fuzzy, c-format +msgid " (%d) ECC\n" +msgstr " (%d) DSA és ElGamal (alapértelmezés)\n" + +msgid "Invalid selection.\n" +msgstr "Érvénytelen választás.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" + #, fuzzy, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "Hiba %s-ra/-re küldéskor: %s\n" +#, fuzzy, c-format +msgid "error getting card info: %s\n" +msgstr "Hiba a(z) \"%s\" titkoskulcs-karika írásakor: %s.\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Ez a parancs %s módban nem engedélyezett.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" @@ -1483,9 +1512,6 @@ msgstr " (%d) RSA (csak titkosítás)\n" msgid " (3) Authentication key\n" msgstr "" -msgid "Invalid selection.\n" -msgstr "Érvénytelen választás.\n" - #, fuzzy msgid "Please select where to store the key:\n" msgstr "Kérem, válassza ki a visszavonás okát:\n" @@ -1494,11 +1520,6 @@ msgstr "Kérem, válassza ki a visszavonás okát:\n" msgid "KEYTOCARD failed: %s\n" msgstr "Frissítés sikertelen: %s.\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Ez a parancs %s módban nem engedélyezett.\n" - #, fuzzy msgid "Note: This command destroys all keys stored on the card!\n" msgstr "Kihagytam: titkos kulcs már jelen van.\n" @@ -1510,6 +1531,10 @@ msgstr "Valóban aláírja? " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +msgid "error for setup KDF: %s\n" +msgstr "Hiba \"%s\" olvasásakor: %s\n" + msgid "quit this menu" msgstr "kilépés ebből a menüből" @@ -1567,6 +1592,16 @@ msgstr "" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use NAME as default recipient" +msgid "setup KDF for PIN authentication" +msgstr "|NÉV|NÉV használata alapértelmezett címzettként" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "kulcstulajdonos megbízhatóságának beállítása" + msgid "gpg/card> " msgstr "" @@ -2263,6 +2298,10 @@ msgstr "Ez nem érvényes e-mail cím.\n" msgid "invalid pinentry mode '%s'\n" msgstr "Érvénytelen kivonatoló algoritmus: %s\n" +#, fuzzy, c-format +msgid "invalid request origin '%s'\n" +msgstr "Érvénytelen import opciók!\n" + #, fuzzy, c-format msgid "'%s' is not a valid character set\n" msgstr "%s nem érvényes karakterkiosztás!\n" @@ -3364,11 +3403,11 @@ msgid "Key is revoked." msgstr "A kulcsot visszavonták." #, fuzzy -msgid "Really sign all user IDs? (y/N) " +msgid "Really sign all text user IDs? (y/N) " msgstr "Valóban aláírja az összes felhasználóazonosítót? " #, fuzzy -msgid "Really sign all text user IDs? (y/N) " +msgid "Really sign all user IDs? (y/N) " msgstr "Valóban aláírja az összes felhasználóazonosítót? " msgid "Hint: Select the user IDs to sign\n" @@ -3737,6 +3776,15 @@ msgstr "Elsődleges kulcs lejárati idejének változtatása.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Nem változtathatja meg egy v3 kulcs lejárati dátumát!\n" +#, fuzzy +msgid "Changing usage of a subkey.\n" +msgstr "Másodlagos kulcs lejárati idejének változtatása.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Elsődleges kulcs lejárati idejének változtatása.\n" + #, fuzzy, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "FIGYELEM: %08lX aláíró alkulcs nem kereszthitelesített.\n" @@ -3958,9 +4006,6 @@ msgstr "" msgid " (%c) Finished\n" msgstr "" -msgid "Please select what kind of key you want:\n" -msgstr "Kérem, adja meg, milyen kulcsot kíván:\n" - #, fuzzy, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) DSA és ElGamal (alapértelmezés)\n" @@ -4039,10 +4084,6 @@ msgstr "" msgid "What keysize do you want for the subkey? (%u) " msgstr "Milyen kulcsméretet szeretne? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want? (%u) " -msgstr "Milyen kulcsméretet szeretne? (1024) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "A kívánt kulcsméret %u bit.\n" @@ -5458,6 +5499,11 @@ msgstr "MEGJEGYZÉS: Aláíró kulcs (%08lX) lejárt: %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "MEGJEGYZÉS: A kulcsot visszavonták." +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "0x%02x osztályú különálló aláírás.\n" + #, fuzzy, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6845,10 +6891,6 @@ msgid "" "you just created once more.\n" msgstr "" -#, fuzzy, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA (csak aláírás)\n" - #, fuzzy, c-format msgid " (%d) Existing key\n" msgstr " (%d) RSA (csak titkosítás)\n" @@ -8921,6 +8963,18 @@ msgid "" "Check a passphrase given on stdin against the patternfile\n" msgstr "" +#, fuzzy +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Milyen kulcsméretet szeretne? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Milyen kulcsméretet szeretne? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Milyen kulcsméretet szeretne? (1024) " + #, fuzzy #~ msgid "listen() failed: %s\n" #~ msgstr "Frissítés sikertelen: %s.\n" diff --git a/po/id.po b/po/id.po index e3f4b504c..8e06be249 100644 --- a/po/id.po +++ b/po/id.po @@ -1426,21 +1426,9 @@ msgid "" msgstr "" #, fuzzy, c-format -msgid "What keysize do you want for the Signature key? (%u) " +msgid "What keysize do you want? (%u) " msgstr "Keysize yang anda inginkan? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Keysize yang anda inginkan? (1024) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Keysize yang anda inginkan? (1024) " - -#, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" - #, c-format msgid "rounded up to %u bits\n" msgstr "dibulatkan hingga %u bit\n" @@ -1449,14 +1437,55 @@ msgstr "dibulatkan hingga %u bit\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +msgid "Signature key\n" +msgstr "Signature kadaluwarsa %s\n" + +#, fuzzy +msgid "Encryption key\n" +msgstr " (%d) RSA (hanya enkripsi)\n" + +msgid "Authentication key\n" +msgstr "" + +msgid "Please select what kind of key you want:\n" +msgstr "Silakan pilih kunci yang anda inginkan:\n" + +#, fuzzy, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA (hanya menandai)\n" + +#, fuzzy, c-format +msgid " (%d) ECC\n" +msgstr " (%d) DSA dan ElGamal (baku)\n" + +msgid "Invalid selection.\n" +msgstr "Pilihan tidak valid.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" + #, fuzzy, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "kesalahan mengirim ke `%s': %s\n" +#, fuzzy, c-format +msgid "error getting card info: %s\n" +msgstr "kesalahan menulis keyring rahasia `%s': %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Perintah ini tidak dibolehkan saat dalam mode %s.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" @@ -1489,9 +1518,6 @@ msgstr " (%d) RSA (hanya enkripsi)\n" msgid " (3) Authentication key\n" msgstr "" -msgid "Invalid selection.\n" -msgstr "Pilihan tidak valid.\n" - #, fuzzy msgid "Please select where to store the key:\n" msgstr "Silakan pilih alasan untuk pembatalan:\n" @@ -1500,11 +1526,6 @@ msgstr "Silakan pilih alasan untuk pembatalan:\n" msgid "KEYTOCARD failed: %s\n" msgstr "gagal memperbarui: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Perintah ini tidak dibolehkan saat dalam mode %s.\n" - #, fuzzy msgid "Note: This command destroys all keys stored on the card!\n" msgstr "dilewati: kunci pribadi telah ada\n" @@ -1516,6 +1537,10 @@ msgstr "Ditandai? " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +msgid "error for setup KDF: %s\n" +msgstr "kesalahan membaca `%s': %s\n" + msgid "quit this menu" msgstr "berhenti dari menu ini" @@ -1573,6 +1598,16 @@ msgstr "" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use NAME as default recipient" +msgid "setup KDF for PIN authentication" +msgstr "|NAMA|gunakan NAMA sebagai penerima baku" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "ubah ownertrust" + msgid "gpg/card> " msgstr "" @@ -2266,6 +2301,10 @@ msgstr "Bukan alamat email yang valid\n" msgid "invalid pinentry mode '%s'\n" msgstr "algoritma hash tidak valid `%s'\n" +#, fuzzy, c-format +msgid "invalid request origin '%s'\n" +msgstr "opsi impor tidak valid\n" + #, fuzzy, c-format msgid "'%s' is not a valid character set\n" msgstr "%s bukanlah set karakter yang valid\n" @@ -3369,11 +3408,11 @@ msgid "Key is revoked." msgstr "Kunci dibatalkan" #, fuzzy -msgid "Really sign all user IDs? (y/N) " +msgid "Really sign all text user IDs? (y/N) " msgstr "Tandai ID seluruh user? " #, fuzzy -msgid "Really sign all text user IDs? (y/N) " +msgid "Really sign all user IDs? (y/N) " msgstr "Tandai ID seluruh user? " msgid "Hint: Select the user IDs to sign\n" @@ -3747,6 +3786,15 @@ msgstr "Merubah batas waktu untuk kunci primer.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Anda tidak dapat merubah batas waktu kunci v3\n" +#, fuzzy +msgid "Changing usage of a subkey.\n" +msgstr "Merubah batas waktu untuk kunci sekunder.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Merubah batas waktu untuk kunci primer.\n" + #, fuzzy, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "PERINGATAN: subkey penandatangan %08lX tidak tersertifikasi silang\n" @@ -3967,9 +4015,6 @@ msgstr "" msgid " (%c) Finished\n" msgstr "" -msgid "Please select what kind of key you want:\n" -msgstr "Silakan pilih kunci yang anda inginkan:\n" - #, fuzzy, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) DSA dan ElGamal (baku)\n" @@ -4048,10 +4093,6 @@ msgstr "" msgid "What keysize do you want for the subkey? (%u) " msgstr "Keysize yang anda inginkan? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want? (%u) " -msgstr "Keysize yang anda inginkan? (1024) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Keysize yang diminta adalah %u bit\n" @@ -5456,6 +5497,11 @@ msgstr "CATATAN: kunci signature %08lX berakhir %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "CATATAN: kunci telah dibatalkan" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "kelas signature mandiri 0x%02x\n" + #, fuzzy, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6837,10 +6883,6 @@ msgid "" "you just created once more.\n" msgstr "" -#, fuzzy, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA (hanya menandai)\n" - #, fuzzy, c-format msgid " (%d) Existing key\n" msgstr " (%d) RSA (hanya enkripsi)\n" @@ -8914,6 +8956,18 @@ msgid "" "Check a passphrase given on stdin against the patternfile\n" msgstr "" +#, fuzzy +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Keysize yang anda inginkan? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Keysize yang anda inginkan? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Keysize yang anda inginkan? (1024) " + #, fuzzy #~ msgid "listen() failed: %s\n" #~ msgstr "gagal memperbarui: %s\n" diff --git a/po/it.po b/po/it.po index 1eb3a79c5..9faa025c9 100644 --- a/po/it.po +++ b/po/it.po @@ -1424,21 +1424,9 @@ msgid "" msgstr "" #, fuzzy, c-format -msgid "What keysize do you want for the Signature key? (%u) " +msgid "What keysize do you want? (%u) " msgstr "Di che dimensioni vuoi la chiave? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Di che dimensioni vuoi la chiave? (1024) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Di che dimensioni vuoi la chiave? (1024) " - -#, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" - #, c-format msgid "rounded up to %u bits\n" msgstr "arrotondate a %u bit\n" @@ -1447,14 +1435,55 @@ msgstr "arrotondate a %u bit\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +msgid "Signature key\n" +msgstr "Firma scaduta il %s\n" + +#, fuzzy +msgid "Encryption key\n" +msgstr " (%d) RSA (cifra solo)\n" + +msgid "Authentication key\n" +msgstr "" + +msgid "Please select what kind of key you want:\n" +msgstr "Per favore scegli che tipo di chiave vuoi:\n" + +#, fuzzy, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA (firma solo)\n" + +#, fuzzy, c-format +msgid " (%d) ECC\n" +msgstr " (%d) DSA e ElGamal (default)\n" + +msgid "Invalid selection.\n" +msgstr "Scelta non valida.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" + #, fuzzy, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "errore leggendo `%s': %s\n" +#, fuzzy, c-format +msgid "error getting card info: %s\n" +msgstr "errore scrivendo il portachiavi segreto `%s': %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Questo comando non è permesso in modalità %s.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" @@ -1487,9 +1516,6 @@ msgstr " (%d) RSA (cifra solo)\n" msgid " (3) Authentication key\n" msgstr "" -msgid "Invalid selection.\n" -msgstr "Scelta non valida.\n" - #, fuzzy msgid "Please select where to store the key:\n" msgstr "Per favore scegli il motivo della revoca:\n" @@ -1498,11 +1524,6 @@ msgstr "Per favore scegli il motivo della revoca:\n" msgid "KEYTOCARD failed: %s\n" msgstr "aggiornamento fallito: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Questo comando non è permesso in modalità %s.\n" - #, fuzzy msgid "Note: This command destroys all keys stored on the card!\n" msgstr "saltata: chiave pubblica già presente\n" @@ -1514,6 +1535,10 @@ msgstr "Firmo davvero? " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +msgid "error for setup KDF: %s\n" +msgstr "errore leggendo `%s': %s\n" + msgid "quit this menu" msgstr "abbandona questo menù" @@ -1571,6 +1596,16 @@ msgstr "" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use NAME as default recipient" +msgid "setup KDF for PIN authentication" +msgstr "|NOME|usa NOME come destinatario predefinito" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "cambia il valore di fiducia" + msgid "gpg/card> " msgstr "" @@ -2273,6 +2308,10 @@ msgstr "L'indirizzo di email non è valido\n" msgid "invalid pinentry mode '%s'\n" msgstr "algoritmo di hash non valido `%s'\n" +#, fuzzy, c-format +msgid "invalid request origin '%s'\n" +msgstr "opzioni di importazione non valide\n" + #, fuzzy, c-format msgid "'%s' is not a valid character set\n" msgstr "%s non è un set di caratteri valido\n" @@ -3376,11 +3415,11 @@ msgid "Key is revoked." msgstr "La chiave è stata revocata." #, fuzzy -msgid "Really sign all user IDs? (y/N) " +msgid "Really sign all text user IDs? (y/N) " msgstr "Firmo davvero tutti gli user ID? " #, fuzzy -msgid "Really sign all text user IDs? (y/N) " +msgid "Really sign all user IDs? (y/N) " msgstr "Firmo davvero tutti gli user ID? " msgid "Hint: Select the user IDs to sign\n" @@ -3758,6 +3797,15 @@ msgstr "Cambio la data di scadenza per la chiave primaria.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Non è possibile cambiare la data di scadenza di una chiave v3\n" +#, fuzzy +msgid "Changing usage of a subkey.\n" +msgstr "Cambio la data di scadenza per una chiave secondaria.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Cambio la data di scadenza per la chiave primaria.\n" + #, fuzzy, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "" @@ -3982,9 +4030,6 @@ msgstr "" msgid " (%c) Finished\n" msgstr "" -msgid "Please select what kind of key you want:\n" -msgstr "Per favore scegli che tipo di chiave vuoi:\n" - #, fuzzy, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) DSA e ElGamal (default)\n" @@ -4063,10 +4108,6 @@ msgstr "" msgid "What keysize do you want for the subkey? (%u) " msgstr "Di che dimensioni vuoi la chiave? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want? (%u) " -msgstr "Di che dimensioni vuoi la chiave? (1024) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "La dimensione richiesta della chiave è %u bit\n" @@ -5487,6 +5528,11 @@ msgstr "NOTA: chiave per firmare %08lX scaduta il %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "NOTA: la chiave è stata revocata" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "firma solitaria di classe 0x%02x\n" + #, fuzzy, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6876,10 +6922,6 @@ msgid "" "you just created once more.\n" msgstr "" -#, fuzzy, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA (firma solo)\n" - #, fuzzy, c-format msgid " (%d) Existing key\n" msgstr " (%d) RSA (cifra solo)\n" @@ -8955,6 +8997,18 @@ msgid "" "Check a passphrase given on stdin against the patternfile\n" msgstr "" +#, fuzzy +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Di che dimensioni vuoi la chiave? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Di che dimensioni vuoi la chiave? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Di che dimensioni vuoi la chiave? (1024) " + #, fuzzy #~ msgid "listen() failed: %s\n" #~ msgstr "aggiornamento fallito: %s\n" diff --git a/po/ja.po b/po/ja.po index 98979f8f0..4920e4ed2 100644 --- a/po/ja.po +++ b/po/ja.po @@ -1336,10 +1336,6 @@ msgstr "%uビットに切り上げます\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "%s 鍵長は %u-%u の範囲でなければなりません\n" -#, c-format -msgid "The card will now be re-configured to generate a key of %u bits\n" -msgstr "今、%uビットの鍵を生成するようにカードは再コンフィグされました\n" - msgid "Changing card key attribute for: " msgstr "こちらのカード鍵の属性を変更します: " @@ -1366,8 +1362,14 @@ msgstr " (%d) ECC\n" msgid "Invalid selection.\n" msgstr "無効な選択です。\n" -msgid "No change." -msgstr "変更なし。" +#, c-format +msgid "The card will now be re-configured to generate a key of %u bits\n" +msgstr "今、%uビットの鍵を生成するようにカードは再コンフィグされました\n" + +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" +"カードは、今、こちらのタイプの鍵を生成するように再コンフィグされました: %s\n" #, c-format msgid "error changing key attribute for key %d: %s\n" @@ -3465,6 +3467,16 @@ msgstr "主鍵の有効期限を変更します。\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "v3鍵の有効期限は変更できません\n" +#, fuzzy +#| msgid "Changing expiration time for a subkey.\n" +msgid "Changing usage of a subkey.\n" +msgstr "副鍵の有効期限を変更します。\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "主鍵の有効期限を変更します。\n" + #, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "署名する副鍵%sはすでに相互証明されています\n" @@ -5068,6 +5080,11 @@ msgstr "*注意*: 署名鍵%sは%sに期限切れとなります\n" msgid "Note: signature key %s has been revoked\n" msgstr "*注意*: 鍵 %s は失効済みです\n" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "クラス0x%02xのスタンドアロン署名\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "不明のクリティカル・ビットにより、鍵%sの署名を不正とみなします\n" @@ -8339,6 +8356,9 @@ msgstr "" "形式: gpg-check-pattern [オプション] パターンファイル\n" "パターンファイルに対して標準入力のパスフレーズを確認する\n" +#~ msgid "No change." +#~ msgstr "変更なし。" + #~ msgid "What keysize do you want for the Signature key? (%u) " #~ msgstr "署名鍵の鍵長は? (%u) " @@ -8348,11 +8368,6 @@ msgstr "" #~ msgid "What keysize do you want for the Authentication key? (%u) " #~ msgstr "認証鍵の鍵長は? (%u) " -#~ msgid "The card will now be re-configured to generate a key of type: %s\n" -#~ msgstr "" -#~ "カードは、今、こちらのタイプの鍵を生成するように再コンフィグされました: " -#~ "%s\n" - #~ msgid "listen() failed: %s\n" #~ msgstr "listen() に失敗しました: %s\n" diff --git a/po/nb.po b/po/nb.po index eea3fd793..a44b539fc 100644 --- a/po/nb.po +++ b/po/nb.po @@ -1328,21 +1328,8 @@ msgstr "" " det tillater hvis nøkkelgenerering mislykkes.\n" #, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "Hvor stor skal signaturnøkkelen være? (%u) " - -#, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Hvor stor skal krypteringsnøkkelen være? (%u) " - -#, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Hvor stor skal autentiseringsnøkkelen være? (%u) " - -#, fuzzy, c-format -#| msgid "The card will now be re-configured to generate a key of %u bits\n" -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "Kortet blir nå satt opp på nytt for å lage nøkkel på %u bit\n" +msgid "What keysize do you want? (%u) " +msgstr "Hvor stor skal nøkkelen være? (%u) " #, c-format msgid "rounded up to %u bits\n" @@ -1352,14 +1339,61 @@ msgstr "rundet opp til %u bit\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "%s nøkkelstørrelser må ligge i rekkevidden %u-%u\n" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +#| msgid " (1) Signature key\n" +msgid "Signature key\n" +msgstr " (1) Signaturnøkkel\n" + +#, fuzzy +#| msgid " (2) Encryption key\n" +msgid "Encryption key\n" +msgstr " (2) Krypteringsnøkkel\n" + +#, fuzzy +#| msgid " (3) Authentication key\n" +msgid "Authentication key\n" +msgstr " (3) Autentiseringsnøkkel\n" + +msgid "Please select what kind of key you want:\n" +msgstr "Velg hvilken type nøkkel du vil ha:\n" + +#, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA\n" + +#, fuzzy, c-format +#| msgid " (%d) ECC and ECC\n" +msgid " (%d) ECC\n" +msgstr " (%d) ECC og ECC\n" + +msgid "Invalid selection.\n" +msgstr "Ugyldig valg.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "Kortet blir nå satt opp på nytt for å lage nøkkel på %u bit\n" -#, c-format -msgid "error changing size of key %d to %u bits: %s\n" +#, fuzzy, c-format +#| msgid "The card will now be re-configured to generate a key of %u bits\n" +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "Kortet blir nå satt opp på nytt for å lage nøkkel på %u bit\n" + +#, fuzzy, c-format +#| msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "feil under endring av størrelse på nøkkel %d til %u bit: %s\n" +#, fuzzy, c-format +#| msgid "error getting current key info: %s\n" +msgid "error getting card info: %s\n" +msgstr "feil under henting av nøkkelinfo: %s\n" + +msgid "This command is not supported by this card\n" +msgstr "Denne kommandoen støttes ikke av dette kortet\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "Lage sikkerhetskopi av krypteringsnøkler utenfor kortet? (J/n) " @@ -1391,9 +1425,6 @@ msgstr " (2) Krypteringsnøkkel\n" msgid " (3) Authentication key\n" msgstr " (3) Autentiseringsnøkkel\n" -msgid "Invalid selection.\n" -msgstr "Ugyldig valg.\n" - msgid "Please select where to store the key:\n" msgstr "velg hvor nøkkelen skal lagres:\n" @@ -1401,9 +1432,6 @@ msgstr "velg hvor nøkkelen skal lagres:\n" msgid "KEYTOCARD failed: %s\n" msgstr "KEYTOCARD mislyktes: %s\n" -msgid "This command is not supported by this card\n" -msgstr "Denne kommandoen støttes ikke av dette kortet\n" - msgid "Note: This command destroys all keys stored on the card!\n" msgstr "Merk: denne kommandoen ødelegger alle nøkler på kortet.\n" @@ -1413,6 +1441,11 @@ msgstr "Vil du fortsette? (j/N) " msgid "Really do a factory reset? (enter \"yes\") " msgstr "Er du sikker på at du vil gjenopprette fabrikkoppsett? (skriv «ja») " +#, fuzzy, c-format +#| msgid "error looking up: %s\n" +msgid "error for setup KDF: %s\n" +msgstr "feil under oppslag av %s\n" + msgid "quit this menu" msgstr "gå ut av denne menyen" @@ -1464,6 +1497,16 @@ msgstr "fjern PIN-blokkering med en tilbakestillingskode" msgid "destroy all keys and data" msgstr "ødelegg alle nøkler og data" +#, fuzzy +#| msgid "|NAME|use user NAME for authentication" +msgid "setup KDF for PIN authentication" +msgstr "|NAVN|bruk valgt brukerNAVN til autentisering" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "endre eiertillit" + msgid "gpg/card> " msgstr "gpg/kort> " @@ -2086,6 +2129,11 @@ msgstr "«%s» er en ugyldig e-postadresse\n" msgid "invalid pinentry mode '%s'\n" msgstr "PIN-inntastingsmodus «%s» er ugyldig\n" +#, fuzzy, c-format +#| msgid "invalid value for option '%s'\n" +msgid "invalid request origin '%s'\n" +msgstr "ugyldig verdi for valg «%s»\n" + #, c-format msgid "'%s' is not a valid character set\n" msgstr "«%s» er ikke et gyldig tegnsett\n" @@ -3128,12 +3176,12 @@ msgstr "" msgid "Key is revoked." msgstr "Nøkkelen er opphevet." -msgid "Really sign all user IDs? (y/N) " -msgstr "Er du sikekr på at du vil signerere alle bruker-id-er? (j/N) " - msgid "Really sign all text user IDs? (y/N) " msgstr "Er du sikker på at du vil signerere alle bruker-id-er? (j/N) " +msgid "Really sign all user IDs? (y/N) " +msgstr "Er du sikekr på at du vil signerere alle bruker-id-er? (j/N) " + msgid "Hint: Select the user IDs to sign\n" msgstr "Tips: Velg bruker-id-en(e) du vil signere\n" @@ -3468,6 +3516,16 @@ msgstr "Endrer utløpstid for primærnøkkel.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Du kan ikke endre utløpsdato for v3-nøkler\n" +#, fuzzy +#| msgid "Changing expiration time for a subkey.\n" +msgid "Changing usage of a subkey.\n" +msgstr "Endrer utløpstid for undernøkkel.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Endrer utløpstid for primærnøkkel.\n" + #, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "signerings-undernøkkel %s er allerede kryssertifisert\n" @@ -3682,9 +3740,6 @@ msgstr " (%c) Slå av/på autentiseringsfunksjon\n" msgid " (%c) Finished\n" msgstr " (%c) Ferdig\n" -msgid "Please select what kind of key you want:\n" -msgstr "Velg hvilken type nøkkel du vil ha:\n" - #, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) RSA og RSA (standard)\n" @@ -3758,10 +3813,6 @@ msgstr "%s-nøkler må være mellom %u og %u bit lange.\n" msgid "What keysize do you want for the subkey? (%u) " msgstr "Hvor stor vil du at undernøkkelen skal være? (%u) " -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "Hvor stor skal nøkkelen være? (%u) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Forespurt nøkkelstørrelse er %u bit\n" @@ -5125,6 +5176,11 @@ msgstr "Merk: signaturnøkkel %s utgått %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "Merk: signaturnøkkel %s er opphevet\n" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "separat signatur av klasse 0x%02x\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "antatt ugyldig signatur fra nøkkel %s pga. ukjent «kritisk»-bit\n" @@ -6454,10 +6510,6 @@ msgstr "" "Skriv inn passordfrasen for nøkkelen én gang til for å fullføre denne " "sertifikat-forespørselen.\n" -#, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA\n" - #, c-format msgid " (%d) Existing key\n" msgstr " (%d) Nøkkel\n" @@ -8436,6 +8488,15 @@ msgstr "" "Syntaks: gpg-check-pattern [valg] mønsterfil\n" "Kontroller passordfrase oppgitt på standard innkanal mot valgt mønsterfil\n" +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Hvor stor skal signaturnøkkelen være? (%u) " + +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Hvor stor skal krypteringsnøkkelen være? (%u) " + +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Hvor stor skal autentiseringsnøkkelen være? (%u) " + #~ msgid "listen() failed: %s\n" #~ msgstr "listen() mislyktes: %s\n" diff --git a/po/pl.po b/po/pl.po index 74ade4fb5..3079b318e 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1444,21 +1444,8 @@ msgstr "" " dokumentację karty, aby poznać dozwolone rozmiary.\n" #, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "Jakiej długości klucz do podpisywania wygenerować? (%u) " - -#, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Jakiej długości klucz do szyfrowania wygenerować? (%u) " - -#, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Jakiej długości klucz do uwierzytelniania wygenerować? (%u) " - -#, fuzzy, c-format -#| msgid "The card will now be re-configured to generate a key of %u bits\n" -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "Karta zostanie przekonfigurowana do tworzenia klucza %u-bitowego\n" +msgid "What keysize do you want? (%u) " +msgstr "Jakiej długości klucz wygenerować? (%u) " #, c-format msgid "rounded up to %u bits\n" @@ -1468,14 +1455,63 @@ msgstr "zaokrąglono do %u bitów\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "Rozmiary kluczy %s muszą być z przedziału %u-%u\n" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +#| msgid " (1) Signature key\n" +msgid "Signature key\n" +msgstr " (1) Klucz do podpisów\n" + +#, fuzzy +#| msgid " (2) Encryption key\n" +msgid "Encryption key\n" +msgstr " (2) Klucz do szyfrowania\n" + +#, fuzzy +#| msgid " (3) Authentication key\n" +msgid "Authentication key\n" +msgstr " (3) Klucz do uwierzytelniania\n" + +msgid "Please select what kind of key you want:\n" +msgstr "Proszę wybrać rodzaj klucza:\n" + +#, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA\n" + +#, fuzzy, c-format +#| msgid " (%d) DSA and Elgamal\n" +msgid " (%d) ECC\n" +msgstr " (%d) DSA i Elgamala\n" + +msgid "Invalid selection.\n" +msgstr "Niewłaściwy wybór.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "Karta zostanie przekonfigurowana do tworzenia klucza %u-bitowego\n" -#, c-format -msgid "error changing size of key %d to %u bits: %s\n" +#, fuzzy, c-format +#| msgid "The card will now be re-configured to generate a key of %u bits\n" +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "Karta zostanie przekonfigurowana do tworzenia klucza %u-bitowego\n" + +#, fuzzy, c-format +#| msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "błąd podczas zmiany rozmiaru klucza %d na %u bitów: %s\n" +#, fuzzy, c-format +#| msgid "error getting current key info: %s\n" +msgid "error getting card info: %s\n" +msgstr "błąd podczas odczytu aktualnych informacji o kluczu: %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "To polecenie nie jest dostępne w trybie %s.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "Stworzyć poza kartą kopię zapasową klucza szyfrującego? (T/n) " @@ -1513,9 +1549,6 @@ msgstr " (2) Klucz do szyfrowania\n" msgid " (3) Authentication key\n" msgstr " (3) Klucz do uwierzytelniania\n" -msgid "Invalid selection.\n" -msgstr "Niewłaściwy wybór.\n" - msgid "Please select where to store the key:\n" msgstr "Proszę wybrać gdzie zapisać klucz:\n" @@ -1524,11 +1557,6 @@ msgstr "Proszę wybrać gdzie zapisać klucz:\n" msgid "KEYTOCARD failed: %s\n" msgstr "odczyt nie powiódł się: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "To polecenie nie jest dostępne w trybie %s.\n" - #, fuzzy #| msgid "NOTE: keys are already stored on the card!\n" msgid "Note: This command destroys all keys stored on the card!\n" @@ -1542,6 +1570,11 @@ msgstr "Podpisać go? (t/N) " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +#| msgid "error closing %s: %s\n" +msgid "error for setup KDF: %s\n" +msgstr "błąd zamykania %s: %s\n" + msgid "quit this menu" msgstr "wyjście z tego menu" @@ -1593,6 +1626,14 @@ msgstr "odblokowanie PIN-u przy użyciu kodu resetującego" msgid "destroy all keys and data" msgstr "" +msgid "setup KDF for PIN authentication" +msgstr "" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "zmiana zaufania właściciela" + msgid "gpg/card> " msgstr "gpg/karta> " @@ -2318,6 +2359,11 @@ msgstr "linia %d: niepoprawny adres e-mail\n" msgid "invalid pinentry mode '%s'\n" msgstr "niewłaściwy kod kraju w ,,%s'', w linii %d\n" +#, fuzzy, c-format +#| msgid "missing argument for option \"%.50s\"\n" +msgid "invalid request origin '%s'\n" +msgstr "brak argumentu dla opcji ,,%.50s''\n" + #, fuzzy, c-format #| msgid "`%s' is not a valid character set\n" msgid "'%s' is not a valid character set\n" @@ -3417,14 +3463,14 @@ msgstr "" msgid "Key is revoked." msgstr "Klucz unieważniony." -msgid "Really sign all user IDs? (y/N) " -msgstr "Czy na pewno podpisać wszystkie identyfikatory użytkownika? (t/N) " - #, fuzzy #| msgid "Really sign all user IDs? (y/N) " msgid "Really sign all text user IDs? (y/N) " msgstr "Czy na pewno podpisać wszystkie identyfikatory użytkownika? (t/N) " +msgid "Really sign all user IDs? (y/N) " +msgstr "Czy na pewno podpisać wszystkie identyfikatory użytkownika? (t/N) " + msgid "Hint: Select the user IDs to sign\n" msgstr "Podpowiedź: wybierz identyfikatory użytkownika do podpisania.\n" @@ -3787,6 +3833,16 @@ msgstr "Zmiana daty ważności głównego klucza.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Nie można zmienić daty ważności klucza w wersji 3.\n" +#, fuzzy +#| msgid "Changing expiration time for a subkey.\n" +msgid "Changing usage of a subkey.\n" +msgstr "Zmiana daty ważności podklucza.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Zmiana daty ważności głównego klucza.\n" + #, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "podklucz podpisujący %s jest już skrośnie podpisany\n" @@ -4007,9 +4063,6 @@ msgstr " (%c) Przełączenie możliwości uwierzytelniania\n" msgid " (%c) Finished\n" msgstr " (%c) Zakończenie\n" -msgid "Please select what kind of key you want:\n" -msgstr "Proszę wybrać rodzaj klucza:\n" - #, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) RSA i RSA (domyślne)\n" @@ -4089,10 +4142,6 @@ msgstr "Klucze %s będą miały od %u do %u bitów długości.\n" msgid "What keysize do you want for the subkey? (%u) " msgstr "Jakiej długości podklucz wygenerować? (%u) " -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "Jakiej długości klucz wygenerować? (%u) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Żądana długość klucza to %u bitów.\n" @@ -5559,6 +5608,11 @@ msgstr "UWAGA: klucz podpisujący %s przekroczył datę ważności %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "UWAGA: klucz podpisujący %s został unieważniony\n" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "oddzielony podpis klasy 0x%02x.\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -7001,10 +7055,6 @@ msgstr "" "Aby zakończyć to żądanie certyfikatu proszę wprowadzić jeszcze raz hasło dla " "utworzonego klucza.\n" -#, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA\n" - #, c-format msgid " (%d) Existing key\n" msgstr " (%d) Istniejący klucz\n" @@ -9277,6 +9327,15 @@ msgstr "" "Składnia: gpg-check-pattern [opcje] plik-wzorców\n" "Sprawdzanie hasła ze standardowego wejścia względem pliku wzorców\n" +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Jakiej długości klucz do podpisywania wygenerować? (%u) " + +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Jakiej długości klucz do szyfrowania wygenerować? (%u) " + +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Jakiej długości klucz do uwierzytelniania wygenerować? (%u) " + #~ msgid "listen() failed: %s\n" #~ msgstr "listen() nie powiodło się: %s\n" diff --git a/po/pt.po b/po/pt.po index dab31d82c..864a1f719 100644 --- a/po/pt.po +++ b/po/pt.po @@ -1425,21 +1425,9 @@ msgid "" msgstr "" #, fuzzy, c-format -msgid "What keysize do you want for the Signature key? (%u) " +msgid "What keysize do you want? (%u) " msgstr "Qual o tamanho de chave desejado? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Qual o tamanho de chave desejado? (1024) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Qual o tamanho de chave desejado? (1024) " - -#, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" - #, c-format msgid "rounded up to %u bits\n" msgstr "arredondado para %u bits\n" @@ -1448,14 +1436,55 @@ msgstr "arredondado para %u bits\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +msgid "Signature key\n" +msgstr "Esta assinatura expirou em %s.\n" + +#, fuzzy +msgid "Encryption key\n" +msgstr " (%d) RSA (apenas cifragem)\n" + +msgid "Authentication key\n" +msgstr "" + +msgid "Please select what kind of key you want:\n" +msgstr "Por favor selecione o tipo de chave desejado:\n" + +#, fuzzy, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA (apenas assinatura)\n" + +#, fuzzy, c-format +msgid " (%d) ECC\n" +msgstr " (%d) DSA e ElGamal (por omissão)\n" + +msgid "Invalid selection.\n" +msgstr "Opção inválida.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" + #, fuzzy, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "erro ao enviar para `%s': %s\n" +#, fuzzy, c-format +msgid "error getting card info: %s\n" +msgstr "erro ao escrever no porta-chaves secreto `%s': %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Este comando não é permitido no modo %s.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" @@ -1488,9 +1517,6 @@ msgstr " (%d) RSA (apenas cifragem)\n" msgid " (3) Authentication key\n" msgstr "" -msgid "Invalid selection.\n" -msgstr "Opção inválida.\n" - #, fuzzy msgid "Please select where to store the key:\n" msgstr "motivo da revocação: " @@ -1499,11 +1525,6 @@ msgstr "motivo da revocação: " msgid "KEYTOCARD failed: %s\n" msgstr "actualização falhou: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Este comando não é permitido no modo %s.\n" - #, fuzzy msgid "Note: This command destroys all keys stored on the card!\n" msgstr "ignorado: a chave secreta já está presente\n" @@ -1515,6 +1536,10 @@ msgstr "Realmente assinar? " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +msgid "error for setup KDF: %s\n" +msgstr "erro na leitura de `%s': %s\n" + msgid "quit this menu" msgstr "sair deste menu" @@ -1572,6 +1597,16 @@ msgstr "" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use NAME as default recipient" +msgid "setup KDF for PIN authentication" +msgstr "|NOME|usar NOME como destinatário por omissão" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "muda os valores de confiança" + msgid "gpg/card> " msgstr "" @@ -2267,6 +2302,10 @@ msgstr "Endereço eletrónico inválido\n" msgid "invalid pinentry mode '%s'\n" msgstr "algoritmo de dispersão inválido `%s'\n" +#, fuzzy, c-format +msgid "invalid request origin '%s'\n" +msgstr "opções de importação inválidas\n" + #, fuzzy, c-format msgid "'%s' is not a valid character set\n" msgstr "%s não é um conjunto de caracteres válido\n" @@ -3375,11 +3414,11 @@ msgid "Key is revoked." msgstr "A chave está revogada." #, fuzzy -msgid "Really sign all user IDs? (y/N) " +msgid "Really sign all text user IDs? (y/N) " msgstr "Realmente assinar todos os IDs de utilizador? " #, fuzzy -msgid "Really sign all text user IDs? (y/N) " +msgid "Really sign all user IDs? (y/N) " msgstr "Realmente assinar todos os IDs de utilizador? " msgid "Hint: Select the user IDs to sign\n" @@ -3745,6 +3784,15 @@ msgstr "Modificar a data de validade para uma chave primária.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Você não pode modificar a data de validade de uma chave v3\n" +#, fuzzy +msgid "Changing usage of a subkey.\n" +msgstr "A modificar a data de validade para uma chave secundária.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Modificar a data de validade para uma chave primária.\n" + #, fuzzy, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "não pode escolher uma chave como revogadora de si mesmo\n" @@ -3967,9 +4015,6 @@ msgstr "" msgid " (%c) Finished\n" msgstr "" -msgid "Please select what kind of key you want:\n" -msgstr "Por favor selecione o tipo de chave desejado:\n" - #, fuzzy, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) DSA e ElGamal (por omissão)\n" @@ -4048,10 +4093,6 @@ msgstr "" msgid "What keysize do you want for the subkey? (%u) " msgstr "Qual o tamanho de chave desejado? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want? (%u) " -msgstr "Qual o tamanho de chave desejado? (1024) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "O tamanho de chave pedido é %u bits\n" @@ -5463,6 +5504,11 @@ msgstr "NOTA: chave de assinatura %08lx expirou %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "NOTA: a chave foi revogada" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "assinatura de classe 0x%02x\n" + #, fuzzy, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6845,10 +6891,6 @@ msgid "" "you just created once more.\n" msgstr "" -#, fuzzy, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA (apenas assinatura)\n" - #, fuzzy, c-format msgid " (%d) Existing key\n" msgstr " (%d) RSA (apenas cifragem)\n" @@ -8923,6 +8965,18 @@ msgid "" "Check a passphrase given on stdin against the patternfile\n" msgstr "" +#, fuzzy +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Qual o tamanho de chave desejado? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Qual o tamanho de chave desejado? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Qual o tamanho de chave desejado? (1024) " + #, fuzzy #~ msgid "listen() failed: %s\n" #~ msgstr "actualização falhou: %s\n" diff --git a/po/ro.po b/po/ro.po index bf4daec45..3aeaebb49 100644 --- a/po/ro.po +++ b/po/ro.po @@ -1429,21 +1429,9 @@ msgid "" " documentation of your card to see what sizes are allowed.\n" msgstr "" -#, fuzzy, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "Ce lungime de cheie doriţi? (%u) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Ce lungime de cheie doriţi? (%u) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Ce lungime de cheie doriţi? (%u) " - #, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" +msgid "What keysize do you want? (%u) " +msgstr "Ce lungime de cheie doriţi? (%u) " #, c-format msgid "rounded up to %u bits\n" @@ -1453,14 +1441,60 @@ msgstr "rotunjită prin adaos la %u biţi\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "dimensiunile cheii %s trebuie să fie în intervalul %u-%u\n" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +#| msgid " (1) Signature key\n" +msgid "Signature key\n" +msgstr " (1) Cheie de semnare\n" + +#, fuzzy +#| msgid " (2) Encryption key\n" +msgid "Encryption key\n" +msgstr " (2) Cheie de cifrare\n" + +#, fuzzy +#| msgid " (3) Authentication key\n" +msgid "Authentication key\n" +msgstr " (3) Cheie de autentificare\n" + +msgid "Please select what kind of key you want:\n" +msgstr "Selectaţi ce fel de cheie doriţi:\n" + +#, fuzzy, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA (numai semnare)\n" + +#, fuzzy, c-format +msgid " (%d) ECC\n" +msgstr " (%d) DSA şi Elgamal (implicit)\n" + +msgid "Invalid selection.\n" +msgstr "Selecţie invalidă.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" + #, fuzzy, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "eroare trimitere la `%s': %s\n" +#, fuzzy, c-format +#| msgid "error getting current key info: %s\n" +msgid "error getting card info: %s\n" +msgstr "eroare la obţinerea informaţiei pentru cheia curentă: %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Această comandă nu este permisă în modul %s.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "Creez copie de rezervă a cheii de cifrare în afara cardului? (d/N) " @@ -1497,9 +1531,6 @@ msgstr " (2) Cheie de cifrare\n" msgid " (3) Authentication key\n" msgstr " (3) Cheie de autentificare\n" -msgid "Invalid selection.\n" -msgstr "Selecţie invalidă.\n" - msgid "Please select where to store the key:\n" msgstr "Vă rugăm selectaţi unde să fie stocată cheia:\n" @@ -1507,11 +1538,6 @@ msgstr "Vă rugăm selectaţi unde să fie stocată cheia:\n" msgid "KEYTOCARD failed: %s\n" msgstr "actualizarea a eşuat: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Această comandă nu este permisă în modul %s.\n" - #, fuzzy msgid "Note: This command destroys all keys stored on the card!\n" msgstr "cheia secretă deja stocată pe un card\n" @@ -1524,6 +1550,10 @@ msgstr "Doriţi să-l semnaţi? (d/N) " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +msgid "error for setup KDF: %s\n" +msgstr "eroare în `%s': %s\n" + msgid "quit this menu" msgstr "ieşi din acest meniu" @@ -1575,6 +1605,16 @@ msgstr "" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use NAME as default recipient" +msgid "setup KDF for PIN authentication" +msgstr "|NUME|foloseşte NUME ca destinatar implicit" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "schimbă încrederea pentru proprietar" + msgid "gpg/card> " msgstr "" @@ -2301,6 +2341,10 @@ msgstr "Nu este o adresă de email validă\n" msgid "invalid pinentry mode '%s'\n" msgstr "algoritm hash invalid `%s'\n" +#, fuzzy, c-format +msgid "invalid request origin '%s'\n" +msgstr "opţiuni enumerare invalide\n" + #, fuzzy, c-format #| msgid "`%s' is not a valid character set\n" msgid "'%s' is not a valid character set\n" @@ -3388,14 +3432,14 @@ msgstr "" msgid "Key is revoked." msgstr "Cheia este revocată." -msgid "Really sign all user IDs? (y/N) " -msgstr "Semnaţi într-adevăr toate ID-urile utilizator? (d/N) " - #, fuzzy #| msgid "Really sign all user IDs? (y/N) " msgid "Really sign all text user IDs? (y/N) " msgstr "Semnaţi într-adevăr toate ID-urile utilizator? (d/N) " +msgid "Really sign all user IDs? (y/N) " +msgstr "Semnaţi într-adevăr toate ID-urile utilizator? (d/N) " + msgid "Hint: Select the user IDs to sign\n" msgstr "Sugestie: Selectaţi ID-ul utilizator de semnat\n" @@ -3759,6 +3803,16 @@ msgstr "Schimb timpul de expirare pentru cheia primară.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Nu puteţi schimba data de expirare a unei chei v3\n" +#, fuzzy +#| msgid "Changing expiration time for a subkey.\n" +msgid "Changing usage of a subkey.\n" +msgstr "Schimb timpul de expirare pentru o subcheie.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Schimb timpul de expirare pentru cheia primară.\n" + #, fuzzy, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "" @@ -3977,9 +4031,6 @@ msgstr " (%c) Comută capabilitatea de autentificare\n" msgid " (%c) Finished\n" msgstr " (%c) Terminat\n" -msgid "Please select what kind of key you want:\n" -msgstr "Selectaţi ce fel de cheie doriţi:\n" - #, fuzzy, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) DSA şi Elgamal (implicit)\n" @@ -4059,10 +4110,6 @@ msgstr "cheile %s pot avea lungimea între %u şi %u biţi.\n" msgid "What keysize do you want for the subkey? (%u) " msgstr "Ce lungime de cheie doriţi? (%u) " -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "Ce lungime de cheie doriţi? (%u) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Lungimea cheii necesară este %u biţi\n" @@ -5497,6 +5544,11 @@ msgstr "NOTĂ: cheia semnăturii %s a expirat %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "NOTĂ: cheia a fost revocată" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "semnătură de sine stătătoare (standalone) de clasă 0x%02x\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6889,10 +6941,6 @@ msgid "" "you just created once more.\n" msgstr "" -#, fuzzy, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA (numai semnare)\n" - #, fuzzy, c-format msgid " (%d) Existing key\n" msgstr " (2) Cheie de cifrare\n" @@ -8999,6 +9047,18 @@ msgid "" "Check a passphrase given on stdin against the patternfile\n" msgstr "" +#, fuzzy +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Ce lungime de cheie doriţi? (%u) " + +#, fuzzy +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Ce lungime de cheie doriţi? (%u) " + +#, fuzzy +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Ce lungime de cheie doriţi? (%u) " + #, fuzzy #~ msgid "listen() failed: %s\n" #~ msgstr "actualizarea a eşuat: %s\n" diff --git a/po/ru.po b/po/ru.po index 793bb0b72..fca3be7ae 100644 --- a/po/ru.po +++ b/po/ru.po @@ -1334,20 +1334,8 @@ msgstr "" " на карту и выясните, какие размеры допустимы.\n" #, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "Какой Вам нужен размер ключа для подписей? (%u) " - -#, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Какой Вам нужен размер ключа для шифрования? (%u) " - -#, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Какой Вам нужен размер ключа для удостоверения личности? (%u) " - -#, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "Теперь карта будет перенастроена на генерацию ключа типа %s\n" +msgid "What keysize do you want? (%u) " +msgstr "Какой размер ключа Вам необходим? (%u) " #, c-format msgid "rounded up to %u bits\n" @@ -1357,14 +1345,60 @@ msgstr "округлен до %u бит\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "размер ключей %s должен быть в пределах %u-%u\n" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +#| msgid " (1) Signature key\n" +msgid "Signature key\n" +msgstr " (1) Ключ подписи\n" + +#, fuzzy +#| msgid " (2) Encryption key\n" +msgid "Encryption key\n" +msgstr " (2) Ключ шифрования\n" + +#, fuzzy +#| msgid " (3) Authentication key\n" +msgid "Authentication key\n" +msgstr " (3) Ключ удостоверения личности\n" + +msgid "Please select what kind of key you want:\n" +msgstr "Выберите тип ключа:\n" + +#, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA\n" + +#, fuzzy, c-format +#| msgid " (%d) ECC and ECC\n" +msgid " (%d) ECC\n" +msgstr " (%d) ECC и ECC\n" + +msgid "Invalid selection.\n" +msgstr "Неправильный выбор.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "Теперь карта будет перенастроена на генерацию ключа длиной %u бит\n" #, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "Теперь карта будет перенастроена на генерацию ключа типа %s\n" + +#, fuzzy, c-format +#| msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "ошибка изменения размера ключа %d до %u бит: %s\n" +#, fuzzy, c-format +#| msgid "error getting current key info: %s\n" +msgid "error getting card info: %s\n" +msgstr "ошибка при считывании информации ключа: %s\n" + +msgid "This command is not supported by this card\n" +msgstr "Данная команда этой картой не поддерживается\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "Сделать вне карты архивную копию ключа шифрования? (Y/n) " @@ -1396,9 +1430,6 @@ msgstr " (2) Ключ шифрования\n" msgid " (3) Authentication key\n" msgstr " (3) Ключ удостоверения личности\n" -msgid "Invalid selection.\n" -msgstr "Неправильный выбор.\n" - msgid "Please select where to store the key:\n" msgstr "Выберите, где хранить ключ:\n" @@ -1406,9 +1437,6 @@ msgstr "Выберите, где хранить ключ:\n" msgid "KEYTOCARD failed: %s\n" msgstr "сбой записи ключа на карту: %s\n" -msgid "This command is not supported by this card\n" -msgstr "Данная команда этой картой не поддерживается\n" - msgid "Note: This command destroys all keys stored on the card!\n" msgstr "Замечание: эта команда сотрет с карты все ключи!\n" @@ -1418,6 +1446,11 @@ msgstr "Продолжить? (y/N) " msgid "Really do a factory reset? (enter \"yes\") " msgstr "Подтвердите сброс к заводским установкам (введите \"yes\") " +#, fuzzy, c-format +#| msgid "error looking up: %s\n" +msgid "error for setup KDF: %s\n" +msgstr "ошибка поиска: %s\n" + msgid "quit this menu" msgstr "выйти из этого меню" @@ -1469,6 +1502,16 @@ msgstr "разблокировать PIN с помощью кода сброса msgid "destroy all keys and data" msgstr "уничтожить все ключи и данные" +#, fuzzy +#| msgid "|NAME|use user NAME for authentication" +msgid "setup KDF for PIN authentication" +msgstr "|NAME|использовать имя пользователя NAME для удостоверения личности" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "изменить уровень доверия владельцу" + msgid "gpg/card> " msgstr "gpg/card> " @@ -2108,6 +2151,11 @@ msgstr "\"%s\" не является адресом электронной по msgid "invalid pinentry mode '%s'\n" msgstr "недопустимый режим ввода пароля '%s'\n" +#, fuzzy, c-format +#| msgid "invalid value for option '%s'\n" +msgid "invalid request origin '%s'\n" +msgstr "недопустимое значения параметра \"%s\"\n" + #, c-format msgid "'%s' is not a valid character set\n" msgstr "'%s' - не допустимая таблица символов\n" @@ -3152,13 +3200,13 @@ msgstr "" msgid "Key is revoked." msgstr "Ключ отозван." -msgid "Really sign all user IDs? (y/N) " -msgstr "Действительно подписать все идентификаторы пользователя? (y/N) " - msgid "Really sign all text user IDs? (y/N) " msgstr "" "Действительно подписать все текстовые идентификаторы пользователя? (y/N) " +msgid "Really sign all user IDs? (y/N) " +msgstr "Действительно подписать все идентификаторы пользователя? (y/N) " + msgid "Hint: Select the user IDs to sign\n" msgstr "" "Подсказка: Выберите идентификаторы пользователей, которые нужно подписать\n" @@ -3504,6 +3552,16 @@ msgstr "Смена срока действия первичного ключа.\ msgid "You can't change the expiration date of a v3 key\n" msgstr "Нельзя изменить срок действия ключа v3\n" +#, fuzzy +#| msgid "Changing expiration time for a subkey.\n" +msgid "Changing usage of a subkey.\n" +msgstr "Смена срока действия подключа.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Смена срока действия первичного ключа.\n" + #, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "подписывающий подключ %s уже перекрестно заверен\n" @@ -3717,9 +3775,6 @@ msgstr " (%c) Переключить возможность удостовер msgid " (%c) Finished\n" msgstr " (%c) Завершено\n" -msgid "Please select what kind of key you want:\n" -msgstr "Выберите тип ключа:\n" - #, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) RSA и RSA (по умолчанию)\n" @@ -3793,10 +3848,6 @@ msgstr "длина ключей %s может быть от %u до %u.\n" msgid "What keysize do you want for the subkey? (%u) " msgstr "Какой размер подключа необходим? (%u) " -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "Какой размер ключа Вам необходим? (%u) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Запрошенный размер ключа - %u бит\n" @@ -5169,6 +5220,11 @@ msgstr "Замечание: срок действия подписавшего msgid "Note: signature key %s has been revoked\n" msgstr "Замечание: ключ для подписей %s отозван\n" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "отдельная подпись класса 0x%02x\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6557,10 +6613,6 @@ msgstr "" "Чтобы завершить создание этого запроса сертификата, введите фразу-пароль для " "ключа, который вы только что создали, еще раз.\n" -#, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA\n" - #, c-format msgid " (%d) Existing key\n" msgstr " (%d) Имеющийся ключ\n" @@ -8578,6 +8630,15 @@ msgstr "" "Синтаксис: gpg-check-pattern [параметры] файл_образцов\n" "Проверить фразу-пароль, поступающую из stdin, по файлу образцов\n" +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Какой Вам нужен размер ключа для подписей? (%u) " + +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Какой Вам нужен размер ключа для шифрования? (%u) " + +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Какой Вам нужен размер ключа для удостоверения личности? (%u) " + #~ msgid "listen() failed: %s\n" #~ msgstr "сбой listen(): %s\n" diff --git a/po/sk.po b/po/sk.po index cb0a41fc3..64fc04bdd 100644 --- a/po/sk.po +++ b/po/sk.po @@ -1426,21 +1426,9 @@ msgid "" msgstr "" #, fuzzy, c-format -msgid "What keysize do you want for the Signature key? (%u) " +msgid "What keysize do you want? (%u) " msgstr "Akú veľkosť kľúča si prajete? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Akú veľkosť kľúča si prajete? (1024) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Akú veľkosť kľúča si prajete? (1024) " - -#, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" - #, c-format msgid "rounded up to %u bits\n" msgstr "zaokrúhlené na %u bitov\n" @@ -1449,14 +1437,55 @@ msgstr "zaokrúhlené na %u bitov\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +msgid "Signature key\n" +msgstr "Platnosť podpisu vypršala %s\n" + +#, fuzzy +msgid "Encryption key\n" +msgstr " (%d) RSA (len na šifrovanie)\n" + +msgid "Authentication key\n" +msgstr "" + +msgid "Please select what kind of key you want:\n" +msgstr "Prosím, vyberte druh kľúča, ktorý chcete:\n" + +#, fuzzy, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA (len na podpis)\n" + +#, fuzzy, c-format +msgid " (%d) ECC\n" +msgstr " (%d) DSA a ElGamal (implicitný)\n" + +msgid "Invalid selection.\n" +msgstr "Neplatný výber.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" + #, fuzzy, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "chyba pri posielaní na `%s': %s\n" +#, fuzzy, c-format +msgid "error getting card info: %s\n" +msgstr "chyba pri zápise do súboru tajných kľúčov `%s': %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Tento príkaz nie je v módoch %s dovolený.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "" @@ -1489,9 +1518,6 @@ msgstr " (%d) RSA (len na šifrovanie)\n" msgid " (3) Authentication key\n" msgstr "" -msgid "Invalid selection.\n" -msgstr "Neplatný výber.\n" - #, fuzzy msgid "Please select where to store the key:\n" msgstr "Prosím výberte dôvod na revokáciu:\n" @@ -1500,11 +1526,6 @@ msgstr "Prosím výberte dôvod na revokáciu:\n" msgid "KEYTOCARD failed: %s\n" msgstr "aktualizácia zlyhala: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Tento príkaz nie je v módoch %s dovolený.\n" - #, fuzzy msgid "Note: This command destroys all keys stored on the card!\n" msgstr "preskočené: tajný kľúč je už v databáze\n" @@ -1516,6 +1537,10 @@ msgstr "Skutočne podpísať? " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +msgid "error for setup KDF: %s\n" +msgstr "chyba pri čítaní `%s': %s\n" + msgid "quit this menu" msgstr "ukončiť toto menu" @@ -1573,6 +1598,16 @@ msgstr "" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use NAME as default recipient" +msgid "setup KDF for PIN authentication" +msgstr "|MENO|použiť MENO ako implicitného adresáta" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "zmeniť dôveryhodnosť vlastníka kľúča" + msgid "gpg/card> " msgstr "" @@ -2278,6 +2313,10 @@ msgstr "Neplatná e-mailová adresa\n" msgid "invalid pinentry mode '%s'\n" msgstr "neplatný hashovací algoritmus `%s'\n" +#, fuzzy, c-format +msgid "invalid request origin '%s'\n" +msgstr "neplatný parameter pre import\n" + #, fuzzy, c-format msgid "'%s' is not a valid character set\n" msgstr "%s nie je platná znaková sada\n" @@ -3388,11 +3427,11 @@ msgid "Key is revoked." msgstr "Kľúč revokovaný." #, fuzzy -msgid "Really sign all user IDs? (y/N) " +msgid "Really sign all text user IDs? (y/N) " msgstr "Skutočne podpísať všetky id užívateľa? " #, fuzzy -msgid "Really sign all text user IDs? (y/N) " +msgid "Really sign all user IDs? (y/N) " msgstr "Skutočne podpísať všetky id užívateľa? " msgid "Hint: Select the user IDs to sign\n" @@ -3757,6 +3796,15 @@ msgstr "Mením dobu platnosti primárneho kľúča.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Nemôžete zmeniť dobu platnosti kľúča verzie 3\n" +#, fuzzy +msgid "Changing usage of a subkey.\n" +msgstr "Mením dobu platnosti sekundárneho kľúča.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Mením dobu platnosti primárneho kľúča.\n" + #, fuzzy, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "VAROVANIE: podpisovací podkľúč %08lX nie je krížovo certifikovaný\n" @@ -3978,9 +4026,6 @@ msgstr "" msgid " (%c) Finished\n" msgstr "" -msgid "Please select what kind of key you want:\n" -msgstr "Prosím, vyberte druh kľúča, ktorý chcete:\n" - #, fuzzy, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) DSA a ElGamal (implicitný)\n" @@ -4059,10 +4104,6 @@ msgstr "" msgid "What keysize do you want for the subkey? (%u) " msgstr "Akú veľkosť kľúča si prajete? (1024) " -#, fuzzy, c-format -msgid "What keysize do you want? (%u) " -msgstr "Akú veľkosť kľúča si prajete? (1024) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Požadovaná dĺžka kľúča je %u bitov.\n" @@ -5480,6 +5521,11 @@ msgstr "POZNÁMKA: podpisovému kľúču %08lX skončila platnosť %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "POZNÁMKA: kľúč bol revokovaný" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "samostatný podpis triedy 0x%02x\n" + #, fuzzy, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6865,10 +6911,6 @@ msgid "" "you just created once more.\n" msgstr "" -#, fuzzy, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA (len na podpis)\n" - #, fuzzy, c-format msgid " (%d) Existing key\n" msgstr " (%d) RSA (len na šifrovanie)\n" @@ -8946,6 +8988,18 @@ msgid "" "Check a passphrase given on stdin against the patternfile\n" msgstr "" +#, fuzzy +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Akú veľkosť kľúča si prajete? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Akú veľkosť kľúča si prajete? (1024) " + +#, fuzzy +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Akú veľkosť kľúča si prajete? (1024) " + #, fuzzy #~ msgid "listen() failed: %s\n" #~ msgstr "aktualizácia zlyhala: %s\n" diff --git a/po/sv.po b/po/sv.po index d5da7cabe..2e3ed3a8a 100644 --- a/po/sv.po +++ b/po/sv.po @@ -1486,23 +1486,8 @@ msgstr "" " som tillåts.\n" #, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "Vilken nyckelstorlek vill du använda för signaturnyckeln? (%u) " - -#, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Vilken nyckelstorlek vill du använda för krypteringsnyckeln? (%u) " - -#, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Vilken nyckelstorlek vill du använda för autentiseringsnyckeln? (%u) " - -#, fuzzy, c-format -#| msgid "The card will now be re-configured to generate a key of %u bits\n" -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" -"Kortet kommer nu att konfigureras om för att generera en nyckel med %u " -"bitar\n" +msgid "What keysize do you want? (%u) " +msgstr "Vilken nyckelstorlek vill du ha? (%u) " #, c-format msgid "rounded up to %u bits\n" @@ -1512,16 +1497,67 @@ msgstr "avrundade uppåt till %u bitar\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "%s nyckelstorlekar måste vara inom intervallet %u-%u\n" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +#| msgid " (1) Signature key\n" +msgid "Signature key\n" +msgstr " (1) Signeringsnyckel\n" + +#, fuzzy +#| msgid " (2) Encryption key\n" +msgid "Encryption key\n" +msgstr " (2) Krypteringsnyckel\n" + +#, fuzzy +#| msgid " (3) Authentication key\n" +msgid "Authentication key\n" +msgstr " (3) Autentiseringsnyckel\n" + +msgid "Please select what kind of key you want:\n" +msgstr "Välj vilken typ av nyckel du vill ha:\n" + +#, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA\n" + +#, fuzzy, c-format +#| msgid " (%d) DSA and Elgamal\n" +msgid " (%d) ECC\n" +msgstr " (%d) DSA och Elgamal\n" + +msgid "Invalid selection.\n" +msgstr "Ogiltigt val.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" "Kortet kommer nu att konfigureras om för att generera en nyckel med %u " "bitar\n" -#, c-format -msgid "error changing size of key %d to %u bits: %s\n" +#, fuzzy, c-format +#| msgid "The card will now be re-configured to generate a key of %u bits\n" +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" +"Kortet kommer nu att konfigureras om för att generera en nyckel med %u " +"bitar\n" + +#, fuzzy, c-format +#| msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "fel vid ändring av storlek för nyckel %d till %u bitar: %s\n" +#, fuzzy, c-format +#| msgid "error getting current key info: %s\n" +msgid "error getting card info: %s\n" +msgstr "fel vid hämtning av aktuell nyckelinformation: %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "Detta kommando är inte tillåtet när du är i %s-läge.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "Skapa säkerhetskopia av krypteringsnyckel utanför kortet? (J/n) " @@ -1559,9 +1595,6 @@ msgstr " (2) Krypteringsnyckel\n" msgid " (3) Authentication key\n" msgstr " (3) Autentiseringsnyckel\n" -msgid "Invalid selection.\n" -msgstr "Ogiltigt val.\n" - msgid "Please select where to store the key:\n" msgstr "Välj var nyckeln ska sparas:\n" @@ -1570,11 +1603,6 @@ msgstr "Välj var nyckeln ska sparas:\n" msgid "KEYTOCARD failed: %s\n" msgstr "läsning misslyckades: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "Detta kommando är inte tillåtet när du är i %s-läge.\n" - #, fuzzy #| msgid "NOTE: keys are already stored on the card!\n" msgid "Note: This command destroys all keys stored on the card!\n" @@ -1588,6 +1616,11 @@ msgstr "Signera den? (j/N) " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +#| msgid "error closing %s: %s\n" +msgid "error for setup KDF: %s\n" +msgstr "fel vid stängning av %s: %s\n" + msgid "quit this menu" msgstr "avsluta denna meny" @@ -1641,6 +1674,17 @@ msgstr "lås upp PIN-koden med en nollställningskod" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use NAME as default recipient" +msgid "setup KDF for PIN authentication" +msgstr "|NAMN|använd NAMN som standardmottagare" + +# originalet borde ha ett value +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "ändra ägartillitsvärdet" + msgid "gpg/card> " msgstr "gpg/kort> " @@ -2362,6 +2406,11 @@ msgstr "rad %d: inte en giltig e-postadress\n" msgid "invalid pinentry mode '%s'\n" msgstr "ogiltig landskod i \"%s\", rad %d\n" +#, fuzzy, c-format +#| msgid "missing argument for option \"%.50s\"\n" +msgid "invalid request origin '%s'\n" +msgstr "argument för flaggan \"%.50s\" saknas\n" + #, fuzzy, c-format #| msgid "`%s' is not a valid character set\n" msgid "'%s' is not a valid character set\n" @@ -3469,14 +3518,14 @@ msgstr "" msgid "Key is revoked." msgstr "Nyckeln är spärrad." -msgid "Really sign all user IDs? (y/N) " -msgstr "Verkligen signera alla användaridentiteter? (j/N) " - #, fuzzy #| msgid "Really sign all user IDs? (y/N) " msgid "Really sign all text user IDs? (y/N) " msgstr "Verkligen signera alla användaridentiteter? (j/N) " +msgid "Really sign all user IDs? (y/N) " +msgstr "Verkligen signera alla användaridentiteter? (j/N) " + msgid "Hint: Select the user IDs to sign\n" msgstr "Tips: Välj de användaridentiteter som du vill signera\n" @@ -3842,6 +3891,16 @@ msgstr "Ändrar giltighetstid för den primära nyckeln.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Du kan inte ändra giltighetsdatum för en v3-nyckel\n" +#, fuzzy +#| msgid "Changing expiration time for a subkey.\n" +msgid "Changing usage of a subkey.\n" +msgstr "Ändrar utgångstid för en undernyckel.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Ändrar giltighetstid för den primära nyckeln.\n" + # Vad betyder det? #, c-format msgid "signing subkey %s is already cross-certified\n" @@ -4067,9 +4126,6 @@ msgstr " (%c) Växla autentiseringsförmågan\n" msgid " (%c) Finished\n" msgstr " (%c) Färdig\n" -msgid "Please select what kind of key you want:\n" -msgstr "Välj vilken typ av nyckel du vill ha:\n" - #, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) RSA och RSA (standard)\n" @@ -4149,10 +4205,6 @@ msgstr "%s-nycklar kan vara mellan %u och %u bitar långa.\n" msgid "What keysize do you want for the subkey? (%u) " msgstr "Vilken nyckelstorlek vill du använda för undernyckeln? (%u) " -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "Vilken nyckelstorlek vill du ha? (%u) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Den efterfrågade nyckelstorleken är %u bitar\n" @@ -5624,6 +5676,11 @@ msgstr "OBSERVERA: signaturnyckeln %s gick ut %s\n" msgid "Note: signature key %s has been revoked\n" msgstr "OBSERVERA: signaturnyckeln %s har spärrats\n" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "fristående signatur av klassen 0x%02x\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -7076,10 +7133,6 @@ msgstr "" "Ange lösenfrasen en gång till för nyckeln som du just skapade för att " "färdigställa denna certifikatbegäran.\n" -#, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA\n" - #, c-format msgid " (%d) Existing key\n" msgstr " (%d) Befintlig nyckel\n" @@ -9355,6 +9408,16 @@ msgstr "" "Syntax: gpg-check-pattern [flaggor] mönsterfil\n" "Kontrollera en lösenfras angiven på standard in mot mönsterfilen\n" +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Vilken nyckelstorlek vill du använda för signaturnyckeln? (%u) " + +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Vilken nyckelstorlek vill du använda för krypteringsnyckeln? (%u) " + +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "" +#~ "Vilken nyckelstorlek vill du använda för autentiseringsnyckeln? (%u) " + #~ msgid "listen() failed: %s\n" #~ msgstr "listen() misslyckades: %s\n" diff --git a/po/tr.po b/po/tr.po index f5e08ebd3..207c36ecd 100644 --- a/po/tr.po +++ b/po/tr.po @@ -1444,21 +1444,9 @@ msgid "" " documentation of your card to see what sizes are allowed.\n" msgstr "" -#, fuzzy, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "İstediğiniz anahtar uzunluğu nedir? (%u) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "İstediğiniz anahtar uzunluğu nedir? (%u) " - -#, fuzzy, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "İstediğiniz anahtar uzunluğu nedir? (%u) " - #, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" +msgid "What keysize do you want? (%u) " +msgstr "İstediğiniz anahtar uzunluğu nedir? (%u) " #, c-format msgid "rounded up to %u bits\n" @@ -1468,14 +1456,60 @@ msgstr "%u bite yuvarlandı\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "%s anahtar uzunlukları %u-%u aralığında olmalı\n" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +#| msgid " (1) Signature key\n" +msgid "Signature key\n" +msgstr " (1) İmzalama anahtarı\n" + +#, fuzzy +#| msgid " (2) Encryption key\n" +msgid "Encryption key\n" +msgstr " (2) Şifreleme anahtarı\n" + +#, fuzzy +#| msgid " (3) Authentication key\n" +msgid "Authentication key\n" +msgstr " (3) Kimlik kanıtlama anahtarı\n" + +msgid "Please select what kind of key you want:\n" +msgstr "Lütfen istediğiniz anahtarı seçiniz:\n" + +#, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA\n" + +#, fuzzy, c-format +msgid " (%d) ECC\n" +msgstr " (%d) DSA ve ElGamal (öntanımlı)\n" + +msgid "Invalid selection.\n" +msgstr "Seçim geçersiz.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" + #, fuzzy, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "soket `%s'e bağlanırken hata: %s\n" +#, fuzzy, c-format +#| msgid "error getting current key info: %s\n" +msgid "error getting card info: %s\n" +msgstr "geçerli anahtar bilgisi alınırken hata: %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "%s kipindeyken bu komut kullanılamaz.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "Şifreli anahtarın kartsız yedeği yapılsın mı? (E/h ya da Y/n) " @@ -1512,9 +1546,6 @@ msgstr " (2) Şifreleme anahtarı\n" msgid " (3) Authentication key\n" msgstr " (3) Kimlik kanıtlama anahtarı\n" -msgid "Invalid selection.\n" -msgstr "Seçim geçersiz.\n" - msgid "Please select where to store the key:\n" msgstr "Lütfen anahtarın saklanacağı yeri seçiniz:\n" @@ -1523,11 +1554,6 @@ msgstr "Lütfen anahtarın saklanacağı yeri seçiniz:\n" msgid "KEYTOCARD failed: %s\n" msgstr "read başarısız: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "%s kipindeyken bu komut kullanılamaz.\n" - #, fuzzy msgid "Note: This command destroys all keys stored on the card!\n" msgstr "gizli anahtar zaten bir kartın üzerinde saklı\n" @@ -1540,6 +1566,11 @@ msgstr "İmzalayacak mısınız? (e/H veya y/N) " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +#| msgid "error closing %s: %s\n" +msgid "error for setup KDF: %s\n" +msgstr "%s kapanırken hata: %s\n" + msgid "quit this menu" msgstr "bu menüden çık" @@ -1591,6 +1622,14 @@ msgstr "Bir Sıfırlama Kodu kullanarak PIN'in engelini kaldır" msgid "destroy all keys and data" msgstr "" +msgid "setup KDF for PIN authentication" +msgstr "" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "sahibiningüvencesini değiştirir" + msgid "gpg/card> " msgstr "" @@ -2302,6 +2341,11 @@ msgstr "%d. satır: geçerli bir eposta adresi değil\n" msgid "invalid pinentry mode '%s'\n" msgstr "`%s', %d. satırındaki ülke kodu geçersiz\n" +#, fuzzy, c-format +#| msgid "missing argument for option \"%.50s\"\n" +msgid "invalid request origin '%s'\n" +msgstr "\"%.50s\" seçeneği için değiştirge eksik\n" + #, fuzzy, c-format #| msgid "`%s' is not a valid character set\n" msgid "'%s' is not a valid character set\n" @@ -3406,14 +3450,14 @@ msgstr "" msgid "Key is revoked." msgstr "Anahtar yürürlükten kaldırıldı." -msgid "Really sign all user IDs? (y/N) " -msgstr "Tüm kullanıcı kimlikler gerçekten imzalanacak mı? (e/H ya da y/N)" - #, fuzzy #| msgid "Really sign all user IDs? (y/N) " msgid "Really sign all text user IDs? (y/N) " msgstr "Tüm kullanıcı kimlikler gerçekten imzalanacak mı? (e/H ya da y/N)" +msgid "Really sign all user IDs? (y/N) " +msgstr "Tüm kullanıcı kimlikler gerçekten imzalanacak mı? (e/H ya da y/N)" + msgid "Hint: Select the user IDs to sign\n" msgstr "İpucu: İmzalamak için bir kullanıcı kimliği seçiniz\n" @@ -3798,6 +3842,16 @@ msgstr "Asıl anahtar için son kullanma tarihi değiştiriliyor.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "Bir v3 anahtarının son kullanma tarihini değiştiremezsiniz\n" +#, fuzzy +#| msgid "Changing expiration time for a subkey.\n" +msgid "Changing usage of a subkey.\n" +msgstr "Bir yardımcı anahtar için son kullanma tarihi değiştiriliyor.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Asıl anahtar için son kullanma tarihi değiştiriliyor.\n" + #, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "yardımcı imzalama anahtarı %s zaten çapraz sertifikalı\n" @@ -4021,9 +4075,6 @@ msgstr " (%c) Kimlik kanıtlama yeteneğini açar/kapar\n" msgid " (%c) Finished\n" msgstr " (%c) Bitti\n" -msgid "Please select what kind of key you want:\n" -msgstr "Lütfen istediğiniz anahtarı seçiniz:\n" - #, fuzzy, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) DSA ve ElGamal (öntanımlı)\n" @@ -4104,10 +4155,6 @@ msgstr "%s anahtarları %u bit ile %u bit arasında olmalı.\n" msgid "What keysize do you want for the subkey? (%u) " msgstr "İstediğiniz anahtar uzunluğu nedir? (%u) " -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "İstediğiniz anahtar uzunluğu nedir? (%u) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "İstenen anahtar uzunluğu: %u bit\n" @@ -5553,6 +5600,11 @@ msgstr "BİLGİ: %s imza anahtarının kullanım süresi %s sularında dolmuş\n msgid "Note: signature key %s has been revoked\n" msgstr "BİLGİ: imza anahtarı %s yürürlükten kaldırılmıştı\n" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "0x%02x sınıfı tek başına imza\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6985,10 +7037,6 @@ msgstr "" "Bu sertifika isteğini tamamlamak için lütfen anahtar parolanızı girip " "anahtarınızı bir kere daha oluşturun.\n" -#, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA\n" - #, c-format msgid " (%d) Existing key\n" msgstr " (%d) Mevcut anahtar\n" @@ -9261,6 +9309,18 @@ msgstr "" "Standart girdiden verilen anahtar parolasını örüntü dosyasıyla " "karşılaştırır\n" +#, fuzzy +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "İstediğiniz anahtar uzunluğu nedir? (%u) " + +#, fuzzy +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "İstediğiniz anahtar uzunluğu nedir? (%u) " + +#, fuzzy +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "İstediğiniz anahtar uzunluğu nedir? (%u) " + #~ msgid "listen() failed: %s\n" #~ msgstr "soket dinleme başarısız: %s\n" diff --git a/po/uk.po b/po/uk.po index 2881bb217..5b49c292d 100644 --- a/po/uk.po +++ b/po/uk.po @@ -1341,22 +1341,8 @@ msgstr "" " визначити дозволені розміри.\n" #, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "Якому розміру ключа підписування ви надаєте перевагу? (%u) " - -#, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "Яким має бути розмір ключа для шифрування? (%u) " - -#, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "Якому розміру ключа для розпізнавання ви надаєте перевагу? (%u) " - -#, fuzzy, c-format -#| msgid "The card will now be re-configured to generate a key of %u bits\n" -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" -"Зараз налаштування картки буде змінено для створення %u-бітового ключа\n" +msgid "What keysize do you want? (%u) " +msgstr "Якою має бути довжина ключа? (%u) " #, c-format msgid "rounded up to %u bits\n" @@ -1366,15 +1352,62 @@ msgstr "округлено до %u бітів\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "Розміри ключів %s мають перебувати у діапазоні %u—%u\n" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +#| msgid " (1) Signature key\n" +msgid "Signature key\n" +msgstr " (1) Ключ підписування\n" + +#, fuzzy +#| msgid " (2) Encryption key\n" +msgid "Encryption key\n" +msgstr " (2) Ключ шифрування\n" + +#, fuzzy +#| msgid " (3) Authentication key\n" +msgid "Authentication key\n" +msgstr " (3) Ключ розпізнавання\n" + +msgid "Please select what kind of key you want:\n" +msgstr "Вкажіть потрібний вам тип ключа:\n" + +#, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA\n" + +#, c-format +msgid " (%d) ECC\n" +msgstr " (%d) ECC\n" + +msgid "Invalid selection.\n" +msgstr "Некоректний вибір.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" "Зараз налаштування картки буде змінено для створення %u-бітового ключа\n" -#, c-format -msgid "error changing size of key %d to %u bits: %s\n" +#, fuzzy, c-format +#| msgid "The card will now be re-configured to generate a key of %u bits\n" +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" +"Зараз налаштування картки буде змінено для створення %u-бітового ключа\n" + +#, fuzzy, c-format +#| msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "помилка під час спроби зміни розміру ключа з %d на %u: %s\n" +#, fuzzy, c-format +#| msgid "error getting current key info: %s\n" +msgid "error getting card info: %s\n" +msgstr "помилка під час отримання даних поточного ключа: %s\n" + +msgid "This command is not supported by this card\n" +msgstr "Цією карткою не передбачено підтримки вказаної команди\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "Створити резервну копію ключа шифрування поза карткою? (Y/n або Т/н) " @@ -1406,9 +1439,6 @@ msgstr " (2) Ключ шифрування\n" msgid " (3) Authentication key\n" msgstr " (3) Ключ розпізнавання\n" -msgid "Invalid selection.\n" -msgstr "Некоректний вибір.\n" - msgid "Please select where to store the key:\n" msgstr "Виберіть сховище для зберігання ключа:\n" @@ -1416,9 +1446,6 @@ msgstr "Виберіть сховище для зберігання ключа:\ msgid "KEYTOCARD failed: %s\n" msgstr "Помилка KEYTOCARD: %s\n" -msgid "This command is not supported by this card\n" -msgstr "Цією карткою не передбачено підтримки вказаної команди\n" - msgid "Note: This command destroys all keys stored on the card!\n" msgstr "" "Зауваження: у результаті виконання цієї команди усі ключі на картці буде " @@ -1431,6 +1458,11 @@ msgid "Really do a factory reset? (enter \"yes\") " msgstr "" "Справді хочете скинути усе до типових налаштувань? (введіть «yes» («так»)) " +#, fuzzy, c-format +#| msgid "error looking up: %s\n" +msgid "error for setup KDF: %s\n" +msgstr "помилка під час пошуку: %s\n" + msgid "quit this menu" msgstr "вийти з цього меню" @@ -1482,6 +1514,16 @@ msgstr "розблокувати під коду за допомогою код msgid "destroy all keys and data" msgstr "знищити усі ключі і дані" +#, fuzzy +#| msgid "|NAME|use user NAME for authentication" +msgid "setup KDF for PIN authentication" +msgstr "|NAME|використовувати вказаного користувача для розпізнавання" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "змінити рівень довіри до власника" + msgid "gpg/card> " msgstr "gpg/картка> " @@ -2135,6 +2177,11 @@ msgstr "«%s» не є коректною адресою електронної msgid "invalid pinentry mode '%s'\n" msgstr "некоректний режим pinentry, «%s»\n" +#, fuzzy, c-format +#| msgid "invalid value for option '%s'\n" +msgid "invalid request origin '%s'\n" +msgstr "некоректне значення параметра «%s»\n" + #, c-format msgid "'%s' is not a valid character set\n" msgstr "«%s» не є коректним набором символів\n" @@ -3205,12 +3252,12 @@ msgstr "" msgid "Key is revoked." msgstr "Ключ відкликано." -msgid "Really sign all user IDs? (y/N) " -msgstr "Підписати всі ідентифікатори користувача? (y/N або т/Н) " - msgid "Really sign all text user IDs? (y/N) " msgstr "Підписати всі текстові ідентифікатори користувача? (y/N або т/Н) " +msgid "Really sign all user IDs? (y/N) " +msgstr "Підписати всі ідентифікатори користувача? (y/N або т/Н) " + msgid "Hint: Select the user IDs to sign\n" msgstr "Підказка: виберіть ідентифікатори користувача для підписування\n" @@ -3560,6 +3607,16 @@ msgstr "Зміна часу завершення строку дії для ос msgid "You can't change the expiration date of a v3 key\n" msgstr "Не можна змінювати дату завершення строку дії ключа v3\n" +#, fuzzy +#| msgid "Changing expiration time for a subkey.\n" +msgid "Changing usage of a subkey.\n" +msgstr "Зміна часу завершення строку дії для підключа.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "Зміна часу завершення строку дії для основного ключа.\n" + #, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "підписування підключа %s вже перехресно сертифіковано\n" @@ -3776,9 +3833,6 @@ msgstr "" msgid " (%c) Finished\n" msgstr " (%c) вийти\n" -msgid "Please select what kind of key you want:\n" -msgstr "Вкажіть потрібний вам тип ключа:\n" - #, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) RSA і RSA (типовий)\n" @@ -3852,10 +3906,6 @@ msgstr "ключі %s можуть мати довжину від %u до %u б msgid "What keysize do you want for the subkey? (%u) " msgstr "Якою має бути довжина підключа? (%u) " -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "Якою має бути довжина ключа? (%u) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "Запитана довжина ключа — %u бітів\n" @@ -5261,6 +5311,11 @@ msgstr "ЗАУВАЖЕННЯ: строк дії ключа підпису %s з msgid "Note: signature key %s has been revoked\n" msgstr "ЗАУВАЖЕННЯ: ключ підпису %s було відкликано\n" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "окремий підпис класу 0x%02x\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "" @@ -6682,10 +6737,6 @@ msgstr "" "Щоб завершити цей запит щодо сертифікації, будь ласка, ще раз вкажіть пароль " "для ключа, який ви щойно створили.\n" -#, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA\n" - #, c-format msgid " (%d) Existing key\n" msgstr " (%d) Вже записаний ключ\n" @@ -8689,6 +8740,15 @@ msgstr "" "Синтаксис: gpg-check-pattern [параметри] файл_шаблонів\n" "Перевірити пароль, вказаний у stdin, за допомогою файла_шаблонів\n" +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "Якому розміру ключа підписування ви надаєте перевагу? (%u) " + +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "Яким має бути розмір ключа для шифрування? (%u) " + +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "Якому розміру ключа для розпізнавання ви надаєте перевагу? (%u) " + #~ msgid "listen() failed: %s\n" #~ msgstr "помилка listen(): %s\n" @@ -9137,9 +9197,6 @@ msgstr "" #~ "не вдалося встановити з’єднання з агентом, використовуємо резервний " #~ "варіант\n" -#~ msgid " (%d) ECC\n" -#~ msgstr " (%d) ECC\n" - #, fuzzy #~| msgid "can't create directory '%s': %s\n" #~ msgid "can't create directory `%s': %s\n" diff --git a/po/zh_CN.po b/po/zh_CN.po index 9caeaef29..2d540fe20 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -1410,21 +1410,9 @@ msgid "" " documentation of your card to see what sizes are allowed.\n" msgstr "" -#, fuzzy, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "您想要用多大的密钥尺寸?(%u)" - -#, fuzzy, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "您想要用多大的密钥尺寸?(%u)" - -#, fuzzy, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "您想要用多大的密钥尺寸?(%u)" - #, c-format -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "" +msgid "What keysize do you want? (%u) " +msgstr "您想要用多大的密钥尺寸?(%u)" #, c-format msgid "rounded up to %u bits\n" @@ -1434,14 +1422,60 @@ msgstr "舍入到 %u 位\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "%s 密钥尺寸必须在 %u 与 %u 间\n" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +#| msgid " (1) Signature key\n" +msgid "Signature key\n" +msgstr " (1) 签名密钥\n" + +#, fuzzy +#| msgid " (2) Encryption key\n" +msgid "Encryption key\n" +msgstr " (2) 加密密钥\n" + +#, fuzzy +#| msgid " (3) Authentication key\n" +msgid "Authentication key\n" +msgstr " (3) 认证密钥\n" + +msgid "Please select what kind of key you want:\n" +msgstr "请选择您要使用的密钥种类:\n" + +#, fuzzy, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA (仅用于签名)\n" + +#, fuzzy, c-format +msgid " (%d) ECC\n" +msgstr " (%d) DSA 和 ElGamal (默认)\n" + +msgid "Invalid selection.\n" +msgstr "无效的选择。\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "" +#, c-format +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "" + #, fuzzy, c-format -msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "在‘%s’中寻找信任度记录时出错:%s\n" +#, fuzzy, c-format +#| msgid "error getting current key info: %s\n" +msgid "error getting card info: %s\n" +msgstr "取得当前密钥信息时出错:%s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "在 %s 模式中不允许使用这个指令。\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "是否为加密密钥创建卡外的备份?(Y/n)" @@ -1478,9 +1512,6 @@ msgstr " (2) 加密密钥\n" msgid " (3) Authentication key\n" msgstr " (3) 认证密钥\n" -msgid "Invalid selection.\n" -msgstr "无效的选择。\n" - msgid "Please select where to store the key:\n" msgstr "请选择在哪里存储密钥:\n" @@ -1488,11 +1519,6 @@ msgstr "请选择在哪里存储密钥:\n" msgid "KEYTOCARD failed: %s\n" msgstr "更新失败:%s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "在 %s 模式中不允许使用这个指令。\n" - #, fuzzy msgid "Note: This command destroys all keys stored on the card!\n" msgstr "私钥已存储在卡上\n" @@ -1505,6 +1531,10 @@ msgstr "为其添加签名吗?(y/N)" msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +msgid "error for setup KDF: %s\n" +msgstr "‘%s’中出错:%s\n" + msgid "quit this menu" msgstr "离开这个菜单" @@ -1556,6 +1586,14 @@ msgstr "" msgid "destroy all keys and data" msgstr "" +msgid "setup KDF for PIN authentication" +msgstr "" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "更改信任度" + msgid "gpg/card> " msgstr "" @@ -2252,6 +2290,10 @@ msgstr "电子邮件地址无效\n" msgid "invalid pinentry mode '%s'\n" msgstr "无效的‘%s’散列算法\n" +#, fuzzy, c-format +msgid "invalid request origin '%s'\n" +msgstr "无效的列表选项\n" + #, fuzzy, c-format #| msgid "`%s' is not a valid character set\n" msgid "'%s' is not a valid character set\n" @@ -3308,14 +3350,14 @@ msgstr "" msgid "Key is revoked." msgstr "密钥已被吊销。" -msgid "Really sign all user IDs? (y/N) " -msgstr "真的为所有的用户标识签名吗?(y/N)" - #, fuzzy #| msgid "Really sign all user IDs? (y/N) " msgid "Really sign all text user IDs? (y/N) " msgstr "真的为所有的用户标识签名吗?(y/N)" +msgid "Really sign all user IDs? (y/N) " +msgstr "真的为所有的用户标识签名吗?(y/N)" + msgid "Hint: Select the user IDs to sign\n" msgstr "提示:选择要添加签名的用户标识\n" @@ -3668,6 +3710,16 @@ msgstr "将要变更主钥的使用期限。\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "您不能变更 v3 密钥的使用期限\n" +#, fuzzy +#| msgid "Changing expiration time for a subkey.\n" +msgid "Changing usage of a subkey.\n" +msgstr "将要变更子钥的使用期限。\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "将要变更主钥的使用期限。\n" + #, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "签名的子钥 %s 已经交叉验证\n" @@ -3880,9 +3932,6 @@ msgstr " (%c) 选择是否用于认证\n" msgid " (%c) Finished\n" msgstr " (%c) 已完成\n" -msgid "Please select what kind of key you want:\n" -msgstr "请选择您要使用的密钥种类:\n" - #, fuzzy, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) DSA 和 ElGamal (默认)\n" @@ -3962,10 +4011,6 @@ msgstr "%s 密钥长度应在 %u 位与 %u 位之间。\n" msgid "What keysize do you want for the subkey? (%u) " msgstr "您想要用多大的密钥尺寸?(%u)" -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "您想要用多大的密钥尺寸?(%u)" - #, c-format msgid "Requested keysize is %u bits\n" msgstr "您所要求的密钥尺寸是 %u 位\n" @@ -5353,6 +5398,11 @@ msgstr "注意:签名密钥 %s 已于 %s 过期\n" msgid "Note: signature key %s has been revoked\n" msgstr "注意:密钥已被吊销" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "等级 0x%02x 的独立签名\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "假定密钥 %s 的签名由于某个未知的关键位出错而损坏\n" @@ -6724,10 +6774,6 @@ msgid "" "you just created once more.\n" msgstr "" -#, fuzzy, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA (仅用于签名)\n" - #, fuzzy, c-format msgid " (%d) Existing key\n" msgstr " (2) 加密密钥\n" @@ -8822,6 +8868,18 @@ msgid "" "Check a passphrase given on stdin against the patternfile\n" msgstr "" +#, fuzzy +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "您想要用多大的密钥尺寸?(%u)" + +#, fuzzy +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "您想要用多大的密钥尺寸?(%u)" + +#, fuzzy +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "您想要用多大的密钥尺寸?(%u)" + #, fuzzy #~ msgid "listen() failed: %s\n" #~ msgstr "更新失败:%s\n" diff --git a/po/zh_TW.po b/po/zh_TW.po index 51b3798a8..3ffd826ae 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -1340,21 +1340,8 @@ msgstr "" " 看看這張卡片支援哪些尺寸.\n" #, c-format -msgid "What keysize do you want for the Signature key? (%u) " -msgstr "你的簽署金鑰想要用多大的金鑰尺寸? (%u) " - -#, c-format -msgid "What keysize do you want for the Encryption key? (%u) " -msgstr "你的加密金鑰想要用多大的金鑰尺寸? (%u) " - -#, c-format -msgid "What keysize do you want for the Authentication key? (%u) " -msgstr "你的認證金鑰想要用多大的金鑰尺寸? (%u) " - -#, fuzzy, c-format -#| msgid "The card will now be re-configured to generate a key of %u bits\n" -msgid "The card will now be re-configured to generate a key of type: %s\n" -msgstr "這張卡片將重新加以組態, 以便產生 %u 位元的金鑰\n" +msgid "What keysize do you want? (%u) " +msgstr "你想要用多大的金鑰尺寸? (%u) " #, c-format msgid "rounded up to %u bits\n" @@ -1364,14 +1351,63 @@ msgstr "加大到 %u 位元\n" msgid "%s keysizes must be in the range %u-%u\n" msgstr "%s 金鑰尺寸一定要介於 %u 到 %u 之間\n" +msgid "Changing card key attribute for: " +msgstr "" + +#, fuzzy +#| msgid " (1) Signature key\n" +msgid "Signature key\n" +msgstr " (1) 簽署用金鑰\n" + +#, fuzzy +#| msgid " (2) Encryption key\n" +msgid "Encryption key\n" +msgstr " (2) 加密用金鑰\n" + +#, fuzzy +#| msgid " (3) Authentication key\n" +msgid "Authentication key\n" +msgstr " (3) 憑證用金鑰\n" + +msgid "Please select what kind of key you want:\n" +msgstr "請選擇你要使用的金鑰種類:\n" + +#, c-format +msgid " (%d) RSA\n" +msgstr " (%d) RSA\n" + +#, fuzzy, c-format +#| msgid " (%d) ECC and ECC\n" +msgid " (%d) ECC\n" +msgstr " (%d) ECC 和 ECC\n" + +msgid "Invalid selection.\n" +msgstr "無效的選擇.\n" + #, c-format msgid "The card will now be re-configured to generate a key of %u bits\n" msgstr "這張卡片將重新加以組態, 以便產生 %u 位元的金鑰\n" -#, c-format -msgid "error changing size of key %d to %u bits: %s\n" +#, fuzzy, c-format +#| msgid "The card will now be re-configured to generate a key of %u bits\n" +msgid "The card will now be re-configured to generate a key of type: %s\n" +msgstr "這張卡片將重新加以組態, 以便產生 %u 位元的金鑰\n" + +#, fuzzy, c-format +#| msgid "error changing size of key %d to %u bits: %s\n" +msgid "error changing key attribute for key %d: %s\n" msgstr "將金鑰 %d 尺寸變更至 %u 位元時出錯: %s\n" +#, fuzzy, c-format +#| msgid "error getting current key info: %s\n" +msgid "error getting card info: %s\n" +msgstr "取得現用金鑰資訊時出錯: %s\n" + +#, fuzzy +#| msgid "This command is not allowed while in %s mode.\n" +msgid "This command is not supported by this card\n" +msgstr "在 %s 模式中不允許使用這個指令.\n" + msgid "Make off-card backup of encryption key? (Y/n) " msgstr "是否要為加密用金鑰建立卡外備份? (Y/n) " @@ -1403,9 +1439,6 @@ msgstr " (2) 加密用金鑰\n" msgid " (3) Authentication key\n" msgstr " (3) 憑證用金鑰\n" -msgid "Invalid selection.\n" -msgstr "無效的選擇.\n" - msgid "Please select where to store the key:\n" msgstr "請選擇要把金鑰存放在哪裡:\n" @@ -1413,11 +1446,6 @@ msgstr "請選擇要把金鑰存放在哪裡:\n" msgid "KEYTOCARD failed: %s\n" msgstr "KEYTOCARD 失敗: %s\n" -#, fuzzy -#| msgid "This command is not allowed while in %s mode.\n" -msgid "This command is not supported by this card\n" -msgstr "在 %s 模式中不允許使用這個指令.\n" - #, fuzzy #| msgid "Note: keys are already stored on the card!\n" msgid "Note: This command destroys all keys stored on the card!\n" @@ -1431,6 +1459,11 @@ msgstr "是否繼續? (Y/n) " msgid "Really do a factory reset? (enter \"yes\") " msgstr "" +#, fuzzy, c-format +#| msgid "error closing %s: %s\n" +msgid "error for setup KDF: %s\n" +msgstr "關閉 %s 時出錯: %s\n" + msgid "quit this menu" msgstr "離開這個選單" @@ -1482,6 +1515,16 @@ msgstr "用重設碼來解凍個人識別碼 (PIN)" msgid "destroy all keys and data" msgstr "" +#, fuzzy +#| msgid "|NAME|use user NAME for authentication" +msgid "setup KDF for PIN authentication" +msgstr "|名字|使用指定名字做為認證用的使用者名稱" + +#, fuzzy +#| msgid "change the ownertrust" +msgid "change the key attribute" +msgstr "更改主觀信任" + msgid "gpg/card> " msgstr "gpg/卡片> " @@ -2122,6 +2165,11 @@ msgstr "第 %d 列: 不是有效的電子郵件地址\n" msgid "invalid pinentry mode '%s'\n" msgstr "無效的個人識別碼項目模式 '%s'\n" +#, fuzzy, c-format +#| msgid "invalid argument for option \"%.50s\"\n" +msgid "invalid request origin '%s'\n" +msgstr "選項 \"%.50s\" 的引數無效\n" + #, c-format msgid "'%s' is not a valid character set\n" msgstr "'%s' 不是有效的字元集\n" @@ -3161,14 +3209,14 @@ msgstr "" msgid "Key is revoked." msgstr "金鑰已撤銷." -msgid "Really sign all user IDs? (y/N) " -msgstr "真的要簽署所有的使用者 ID 嗎? (y/N) " - #, fuzzy #| msgid "Really sign all user IDs? (y/N) " msgid "Really sign all text user IDs? (y/N) " msgstr "真的要簽署所有的使用者 ID 嗎? (y/N) " +msgid "Really sign all user IDs? (y/N) " +msgstr "真的要簽署所有的使用者 ID 嗎? (y/N) " + msgid "Hint: Select the user IDs to sign\n" msgstr "提示: 選擇使用者 ID 來加以簽署\n" @@ -3513,6 +3561,16 @@ msgstr "正在變更主鑰的使用期限.\n" msgid "You can't change the expiration date of a v3 key\n" msgstr "你不能變更 v3 金鑰的使用期限\n" +#, fuzzy +#| msgid "Changing expiration time for a subkey.\n" +msgid "Changing usage of a subkey.\n" +msgstr "正在變更子鑰的使用期限.\n" + +#, fuzzy +#| msgid "Changing expiration time for the primary key.\n" +msgid "Changing usage of the primary key.\n" +msgstr "正在變更主鑰的使用期限.\n" + #, c-format msgid "signing subkey %s is already cross-certified\n" msgstr "簽署子鑰 %s 已經交叉認證過了\n" @@ -3724,9 +3782,6 @@ msgstr " (%c) 切換鑑定性能\n" msgid " (%c) Finished\n" msgstr " (%c) 已完成\n" -msgid "Please select what kind of key you want:\n" -msgstr "請選擇你要使用的金鑰種類:\n" - #, c-format msgid " (%d) RSA and RSA (default)\n" msgstr " (%d) RSA 和 RSA (預設)\n" @@ -3800,10 +3855,6 @@ msgstr "%s 金鑰的長度可能介於 %u 位元和 %u 位元之間.\n" msgid "What keysize do you want for the subkey? (%u) " msgstr "你的子鑰想要用多大的金鑰尺寸? (%u) " -#, c-format -msgid "What keysize do you want? (%u) " -msgstr "你想要用多大的金鑰尺寸? (%u) " - #, c-format msgid "Requested keysize is %u bits\n" msgstr "你所要求的金鑰尺寸是 %u 位元\n" @@ -5164,6 +5215,11 @@ msgstr "請注意: 簽章金鑰 %s 已於 %s 過期\n" msgid "Note: signature key %s has been revoked\n" msgstr "請注意: 簽章金鑰 %s 已遭撤銷\n" +#, fuzzy, c-format +#| msgid "standalone signature of class 0x%02x\n" +msgid "bad key signature from key %s: %s (0x%02x, 0x%x)\n" +msgstr "等級 0x%02x 的獨立簽章\n" + #, c-format msgid "assuming bad signature from key %s due to an unknown critical bit\n" msgstr "假設金鑰 %s 的損壞簽章導因於某個未知的關鍵位元\n" @@ -6486,10 +6542,6 @@ msgid "" "you just created once more.\n" msgstr "如欲完成此憑證請求, 請再輸入一次你剛才建立的金鑰密語.\n" -#, c-format -msgid " (%d) RSA\n" -msgstr " (%d) RSA\n" - #, c-format msgid " (%d) Existing key\n" msgstr " (%d) 現有的金鑰\n" @@ -8472,6 +8524,15 @@ msgstr "" "語法: gpg-check-pattern [選項] 樣式檔案\n" "用樣式檔案來檢查由標準輸入給定的密語\n" +#~ msgid "What keysize do you want for the Signature key? (%u) " +#~ msgstr "你的簽署金鑰想要用多大的金鑰尺寸? (%u) " + +#~ msgid "What keysize do you want for the Encryption key? (%u) " +#~ msgstr "你的加密金鑰想要用多大的金鑰尺寸? (%u) " + +#~ msgid "What keysize do you want for the Authentication key? (%u) " +#~ msgstr "你的認證金鑰想要用多大的金鑰尺寸? (%u) " + #~ msgid "listen() failed: %s\n" #~ msgstr "listen() 失敗: %s\n" From 6fbe2ddbaf5123ae444c95fdf8da67840f794c76 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 9 Apr 2018 21:21:38 +0200 Subject: [PATCH 26/30] Release 2.2.6 --- NEWS | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 4a4f87e28..c6d6d258d 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,49 @@ -Noteworthy changes in version 2.2.6 (unreleased) +Noteworthy changes in version 2.2.6 (2018-04-09) ------------------------------------------------ + * gpg,gpgsm: New option --request-origin to pretend requests coming + from a browser or a remote site. + + * gpg: Fix race condition on trustdb.gpg updates due to too early + released lock. [#3839] + + * gpg: Emit FAILURE status lines in almost all cases. [#3872] + + * gpg: Implement --dry-run for --passwd to make checking a key's + passphrase straightforward. + + * gpg: Make sure to only accept a certification capable key for key + signatures. [#3844] + + * gpg: Better user interaction in --card-edit for the factory-reset + sub-command. + + * gpg: Improve changing key attributes in --card-edit by adding an + explicit "key-attr" sub-command. [#3781] + + * gpg: Print the keygrips in the --card-status. + + * scd: Support KDF DO setup. [#3823] + + * scd: Fix some issues with PC/SC on Windows. [#3825] + + * scd: Fix suspend/resume handling in the CCID driver. + + * agent: Evict cached passphrases also via a timer. [#3829] + + * agent: Use separate passphrase caches depending on the request + origin. [#3858] + + * ssh: Support signature flags. [#3880] + + * dirmngr: Handle failures related to missing IPv6 support + gracefully. [#3331] + + * Fix corner cases related to specified home directory with + drive letter on Windows. [#3720] + + * Allow the use of UNC directory names as homedir. [#3818] + Noteworthy changes in version 2.2.5 (2018-02-22) ------------------------------------------------ From 30081d2851e06944a892a66b8f2d983a495a5686 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Mon, 9 Apr 2018 22:25:37 +0200 Subject: [PATCH 27/30] Post release updates -- --- NEWS | 4 ++++ configure.ac | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index c6d6d258d..8b9d2bcf8 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,7 @@ +Noteworthy changes in version 2.2.7 (unreleased) +------------------------------------------------ + + Noteworthy changes in version 2.2.6 (2018-04-09) ------------------------------------------------ diff --git a/configure.ac b/configure.ac index 086af12ec..7b373a447 100644 --- a/configure.ac +++ b/configure.ac @@ -28,7 +28,7 @@ min_automake_version="1.14" m4_define([mym4_package],[gnupg]) m4_define([mym4_major], [2]) m4_define([mym4_minor], [2]) -m4_define([mym4_micro], [6]) +m4_define([mym4_micro], [7]) # To start a new development series, i.e a new major or minor number # you need to mark an arbitrary commit before the first beta release From 55435cdd4fe4fbfbcba1098bb715ecd6171ba2d8 Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Thu, 5 Apr 2018 11:49:44 -0400 Subject: [PATCH 28/30] agent: change documentation reference for ssh-agent protocol. * agent/command-ssh.c: repoint documentation reference. -- Damien Miller is now documenting the ssh-agent protocol via the IETF. Signed-off-by: Daniel Kahn Gillmor --- agent/command-ssh.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/agent/command-ssh.c b/agent/command-ssh.c index d1158e70b..5317df58a 100644 --- a/agent/command-ssh.c +++ b/agent/command-ssh.c @@ -27,8 +27,10 @@ RFC-4253 - Transport Layer Protocol RFC-5656 - ECC support - The protocol for the agent is defined in OpenSSH's PROTOCL.agent - file. + The protocol for the agent is defined in: + + https://tools.ietf.org/html/draft-miller-ssh-agent + */ #include From 381c46818ffa4605d0ca39818fe317de445eb6de Mon Sep 17 00:00:00 2001 From: Daniel Kahn Gillmor Date: Mon, 9 Apr 2018 18:06:38 -0400 Subject: [PATCH 29/30] agent: unknown flags on ssh signing requests cause an error. * agent/command-ssh.c (ssh_handler_sign_request): if a flag is passed during an signature request that we do not know how to apply, return GPG_ERR_UNKNOWN_OPTION. -- https://tools.ietf.org/html/draft-miller-ssh-agent-02#section-4.5 says: If the agent does not support the requested flags, or is otherwise unable or unwilling to generate the signature (e.g. because it doesn't have the specified key, or the user refused confirmation of a constrained key), it must reply with a SSH_AGENT_FAILURE message. Signed-off-by: Daniel Kahn Gillmor GnuPG-bug-id: 3880 --- agent/command-ssh.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/agent/command-ssh.c b/agent/command-ssh.c index 5317df58a..ac67dd092 100644 --- a/agent/command-ssh.c +++ b/agent/command-ssh.c @@ -2864,7 +2864,7 @@ ssh_handler_sign_request (ctrl_t ctrl, estream_t request, estream_t response) unsigned char *sig = NULL; size_t sig_n; u32 data_size; - u32 flags; + u32 flags, known_flags = 0; gpg_error_t err; gpg_error_t ret_err; int hash_algo; @@ -2890,6 +2890,7 @@ ssh_handler_sign_request (ctrl_t ctrl, estream_t request, estream_t response) if (spec.algo == GCRY_PK_RSA) { + known_flags = SSH_AGENT_RSA_SHA2_256 | SSH_AGENT_RSA_SHA2_512; if ((flags & SSH_AGENT_RSA_SHA2_256)) { spec.ssh_identifier = "rsa-sha2-256"; @@ -2902,6 +2903,13 @@ ssh_handler_sign_request (ctrl_t ctrl, estream_t request, estream_t response) } } + /* some flag is present that we do not know about. */ + if (flags & ~known_flags) + { + err = gpg_error (GPG_ERR_UNKNOWN_OPTION); + goto out; + } + hash_algo = spec.hash_algo; if (!hash_algo) hash_algo = GCRY_MD_SHA1; /* Use the default. */ From 9f69dbeb902ac447adbc92937cd451c4e909f234 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Tue, 10 Apr 2018 07:59:52 +0200 Subject: [PATCH 30/30] agent: Improve the unknown ssh flag detection. * agent/command-ssh.c (ssh_handler_sign_request): Simplify detection of flags. -- Signed-off-by: Werner Koch --- agent/command-ssh.c | 55 +++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/agent/command-ssh.c b/agent/command-ssh.c index ac67dd092..20dc3febe 100644 --- a/agent/command-ssh.c +++ b/agent/command-ssh.c @@ -2864,7 +2864,6 @@ ssh_handler_sign_request (ctrl_t ctrl, estream_t request, estream_t response) unsigned char *sig = NULL; size_t sig_n; u32 data_size; - u32 flags, known_flags = 0; gpg_error_t err; gpg_error_t ret_err; int hash_algo; @@ -2884,31 +2883,39 @@ ssh_handler_sign_request (ctrl_t ctrl, estream_t request, estream_t response) if (err) goto out; - err = stream_read_uint32 (request, &flags); - if (err) - goto out; + /* Flag processing. */ + { + u32 flags; - if (spec.algo == GCRY_PK_RSA) - { - known_flags = SSH_AGENT_RSA_SHA2_256 | SSH_AGENT_RSA_SHA2_512; - if ((flags & SSH_AGENT_RSA_SHA2_256)) - { - spec.ssh_identifier = "rsa-sha2-256"; - spec.hash_algo = GCRY_MD_SHA256; - } - else if ((flags & SSH_AGENT_RSA_SHA2_512)) - { - spec.ssh_identifier = "rsa-sha2-512"; - spec.hash_algo = GCRY_MD_SHA512; - } - } - - /* some flag is present that we do not know about. */ - if (flags & ~known_flags) - { - err = gpg_error (GPG_ERR_UNKNOWN_OPTION); + err = stream_read_uint32 (request, &flags); + if (err) goto out; - } + + if (spec.algo == GCRY_PK_RSA) + { + if ((flags & SSH_AGENT_RSA_SHA2_512)) + { + flags &= ~SSH_AGENT_RSA_SHA2_512; + spec.ssh_identifier = "rsa-sha2-512"; + spec.hash_algo = GCRY_MD_SHA512; + } + if ((flags & SSH_AGENT_RSA_SHA2_256)) + { + /* Note: We prefer SHA256 over SHA512. */ + flags &= ~SSH_AGENT_RSA_SHA2_256; + spec.ssh_identifier = "rsa-sha2-256"; + spec.hash_algo = GCRY_MD_SHA256; + } + } + + /* Some flag is present that we do not know about. Note that + * processed or known flags have been cleared at this point. */ + if (flags) + { + err = gpg_error (GPG_ERR_UNKNOWN_OPTION); + goto out; + } + } hash_algo = spec.hash_algo; if (!hash_algo)