Snapshot release 0.4.2 V0-4-2
authorWerner Koch <wk@gnupg.org>
Sun, 18 Oct 1998 15:21:22 +0000 (15:21 +0000)
committerWerner Koch <wk@gnupg.org>
Sun, 18 Oct 1998 15:21:22 +0000 (15:21 +0000)
32 files changed:
NEWS
README
TODO
VERSION
doc/DETAILS
doc/FAQ
doc/OpenPGP
doc/gpg.1pod
g10/ChangeLog
g10/OPTIONS
g10/build-packet.c
g10/free-packet.c
g10/g10.c
g10/getkey.c
g10/keyedit.c
g10/keygen.c
g10/main.h
g10/options.h
g10/packet.h
g10/parse-packet.c
g10/ringedit.c
g10/sign.c
g10/tdbio.c
g10/tdbio.h
g10/trustdb.c
po/de.po
po/en.po
po/fr.po
po/it.po
scripts/autogen.sh
util/dotlock.c
util/iobuf.c

diff --git a/NEWS b/NEWS
index 6225ed5..549a869 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,8 @@
 Noteworthy changes in version 0.4.2
 -----------------------------------
+
+    * This is only a snapshot: There are still a few bugs.
+
     * Fixed this huge memory leak.
 
     * Redesigned the trust database:  You should run "gpgm --check-trustdb".
@@ -26,6 +29,15 @@ Noteworthy changes in version 0.4.2
       of packets, so that the keyservers don't accept these keys.
       Simply using "--edit-key" fixes the problem.
 
+    * New option --force-v3-sigs to generate signed messages which are
+      compatible to PGP 5.
+
+    * Add some code to support DLD (for non ELF systems) - but this is
+      not tested because my BSD box is currently broken.
+
+    * New command "expire" in the edit-key menu.
+
+
 
 Noteworthy changes in version 0.4.1
 -----------------------------------
diff --git a/README b/README
index 823cc52..9b81722 100644 (file)
--- a/README
+++ b/README
     please subscribe before posting, see above (~line 33)).
 
 
-    Supported targets:
-    ------------------
-      powerpc-unknown-linux-gnu  (linuxppc)
-      hppa1.1-hp-hpux10.20
-
-
-
-
diff --git a/TODO b/TODO
index 744af32..6cc2398 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,33 +1,15 @@
-    * change ringedit:
-       - avoid all copy operations
-       - delete for update by changing the packet type to a
-         special unused packet. (export most know about this)
-       - do an append instead of an update or insert
-       - export may be used to compress a keyring.
-       - keep track of all offset in the trustbd and index them
-         by keyid.
-       - If the lookup does not find a public key block at the
-         stored offset disable this keyid.
-       - If the keyid was not found or is disabled, walk thru
-         the pubring.
-       - use ftruncate to recover from keyring errors.
-          maybe a new option to do this or simply mark the
-          wrong part as unused.
-      This makes signature checks and imports much faster; only keys
-      given by a userid or a fingerprint (RSA only) have to walk tru
-      the ring.
-
-    * There is a new memory leak in update-trustdb
+
+    * There is a new memory leak in update-trustdb :-(
+
+    * Fix ;) revocation and expire stuff.
 
     * OpenBSD: dynamic loading with dlopen works on OpenBSD, but:
        OpenBSD binaries are a.out, so every symbol begins with "_"
 
-    * use dld if we don't have dlopen.
-
     * should we flush the getkey.c caches while doing an import?
 
     * prefer a type 16 subkey for encryption because pgp cannot handle
-      type 20.
+      type 20?
 
     * calculation of marginals never yields a completely trusted key.
 
 
     * Exportable Certification Flag is ignored
 
+    * We need a maintainence pass over the trustdb which flags
+      signatures as expired if the key used to make the signature has
+      expired. Maybe it is a good idea to store the exiration time
+      in the key record of the trustdb.
+
     * write a tool to extract selected keys from a file.
 
     * new menu to delete signatures and list signature in menu
@@ -71,8 +58,6 @@
     * add an option to re-create a public key from a secret key; we
       can do this in trustdb.c:verify_own_keys.
 
-    * OpenBSD has sometimes problems reading from /dev/random.
-
     * change the fake_data stuff to mpi_set_opaque
 
     * Is it okay to use gettext for the help system?
diff --git a/VERSION b/VERSION
index 39bbca7..2b7c5ae 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.4.1a
+0.4.2
index 5a3dccb..c40e86a 100644 (file)
@@ -364,6 +364,14 @@ Other Notes
       to keep them small.
 
 
+Supported targets:
+------------------
+      powerpc-unknown-linux-gnu  (linuxppc)
+      hppa1.1-hp-hpux10.20
+
+
+
+
 
 
 
diff --git a/doc/FAQ b/doc/FAQ
index ee7f810..f82f298 100644 (file)
--- a/doc/FAQ
+++ b/doc/FAQ
     is choosen.  You may add an type 16 ElGamal key to your public
     key which is easy as your key signatures are still valid.
 
+ Q: Why is PGP 5.x not able to verify my messages.
+ A: PGP 5.x does not accept V4 signatures for data material but
+    OpenPGP requires generation of V3 signatures for all kind of
+    data.  Use the option "--force-v3-sigs" to generate V3 signatures
+    for data.
+
  Q: I can't delete a user id because it is already deleted on my
     public keyring.
  A: Because you can only select from the public key ring, there is
index a28f545..647d891 100644 (file)
@@ -1,4 +1,4 @@
-                   GNUPG and OpenPGP
+                   GnuPG and OpenPGP
                    =================
 
    The current OpenPGP draft expires 1999-02.
 
   Compatibility Notes
   ===================
-   GNUPG (>=0.4.1) is in compliance with OpenPGP despite these exeptions:
+   GnuPG (>=0.4.1) is in compliance with OpenPGP despite these exeptions:
 
     * (5.1) The critical bit in signature subpackets is currently
       ignored. This will be fixed soon.
 
-    * (5.3) GNUPG has an option to use simple S2K for "Symmetric-Key
+
+    * (5.2) GnuPG generates V4 signatures for all V4 keys.  The option
+      --force-v3-sigs allows to override.
+
+    * (5.3) GnuPG has an option to use simple S2K for "Symmetric-Key
       Encrypted Session-Key Packets"; however a warning message is
       issued if this option is active.
 
     * (5.5.2) states that an implementaion MUST NOT create a v3 key
-      with an algorithm other than RSA.  GNUPG has an option to
+      with an algorithm other than RSA.  GnuPG has an option to
       create an ElGamal key in a v3 packet; the properties of such
       a key are as good as a v4 key.  RFC1991 does not specifiy how
       to create fingerprints for algorithms other than RSA and so it
@@ -46,7 +50,7 @@
       due to patent problems.
 
     * (12.1) states that an implementaion MUST NOT use a symmetric
-      algorithm which is not in the preference list.  GNUPG has an
+      algorithm which is not in the preference list.  GnuPG has an
       option to override this.
 
     * A special format of partial packet length exists for v3 packets
index 2f76e80..91daea3 100644 (file)
@@ -128,6 +128,11 @@ B<--edit-key> I<name>
        Add a subkey to this key.
     B<delkey>
        Remove a subkey.
+    B<expire>
+       Change the key expiration time. If a key is
+       select, the time of this key will be changed.
+       With no selection the key expiration of the
+       primary key is changed.
     B<passwd>
        Change the passphrase of the secret key.
     B<uid> I<n>
@@ -303,7 +308,16 @@ B<--status-fd> I<n>
     Write special status strings to the file descriptor I<n>.
 
 B<--no-comment>
-    Do not write comment packets.
+    Do not write comment packets.  This option affects only
+    the generation of secret keys.  Output of option packets
+    is disabled since version 0.4.2.
+
+B<--comment> I<string>
+    Use I<string> as comment string in clear text signatures.
+
+B<--set-filename> I<string>
+    Use I<string> as the name of file which is stored in
+    messages.
 
 B<--completes-needed> I<n>
     Number of completely trusted users to introduce a new
@@ -373,6 +387,15 @@ B<--passphrase-fd> I<n>
     can only be used if only one passphrase is supplied.
     B<Don't use this option if you can avoid it>
 
+B<--rfc1991>
+    Try to be more RFC1991 (PGP 2.x) compliant.
+
+B<--force-v3-sigs>
+    OpenPGP states that a implemenation should generate
+    v4 signatures but PGP 5.x does only recognize such
+    signatures on key material.  This options forces
+    v3 signatures for signatures on data.
+
 B<--no-verbose>
     Reset verbose level to 0.
 
index 4c3b011..72e0244 100644 (file)
@@ -1,3 +1,15 @@
+Sun Oct 18 11:49:03 1998  Werner Koch  (wk@isil.d.shuttle.de)
+
+       * sign.c (only_old_style): Add option force_v3_sigs
+       (sign_file): Fixed a bug in sig->version
+       (clearsign_file): Ditto.
+
+       * parse-packet.c (dump_sig_subpkt): New
+
+       * keyedit.c (menu_expire): New.
+       * free-packet.c (cmp_signatures): New
+
+
 Sat Oct 17 10:22:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
 
        * armor.c: changed output line length from 72 to 64.
index 4ec4192..59da5cd 100644 (file)
@@ -51,10 +51,4 @@ run-as-shm-coprocess [request-locked-shm-size]
 # You will have to use "--status-fd" too
 # Note:  This option dioes only work if given on the command line.
 
-set-filename <name>
-# Set <name> as the filename into the plaintext packet
-
-comment <string>
-# Add <string> as comment to the output
-
 
index 11edb33..d835683 100644 (file)
@@ -215,7 +215,7 @@ do_public_key( IOBUF out, int ctb, PKT_public_key *pk )
            ndays = (u16)((pk->expiredate - pk->timestamp) / 86400L);
        else
            ndays = 0;
-       write_16(a, 0 );
+       write_16(a, ndays );
     }
     iobuf_put(a, pk->pubkey_algo );
     n = pubkey_get_npkey( pk->pubkey_algo );
index c3b516d..ed8f25d 100644 (file)
@@ -395,6 +395,30 @@ cmp_public_secret_key( PKT_public_key *pk, PKT_secret_key *sk )
     return 0;
 }
 
+
+
+int
+cmp_signatures( PKT_signature *a, PKT_signature *b )
+{
+    int n, i;
+
+    if( a->keyid[0] != b->keyid[0] )
+       return -1;
+    if( a->keyid[1] != b->keyid[1] )
+       return -1;
+    if( a->pubkey_algo != b->pubkey_algo )
+       return -1;
+
+    n = pubkey_get_nsig( a->pubkey_algo );
+    if( !n )
+       return -1; /* can't compare due to unknown algorithm */
+    for(i=0; i < n; i++ ) {
+       if( mpi_cmp( a->data[i] , b->data[i] ) )
+           return -1;
+    }
+    return 0;
+}
+
 int
 cmp_user_ids( PKT_user_id *a, PKT_user_id *b )
 {
index 569d411..84ddf5a 100644 (file)
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -137,6 +137,7 @@ enum cmd_and_opt_values { aNull = 0,
     oSetFilename,
     oComment,
     oThrowKeyid,
+    oForceV3Sigs,
     oS2KMode,
     oS2KDigest,
     oS2KCipher,
@@ -205,6 +206,7 @@ static ARGPARSE_OPTS opts[] = {
   #endif
     { oOutput, "output",    2, N_("use as output file")},
     { oVerbose, "verbose",   0, N_("verbose") },
+    { oForceV3Sigs, "force-v3-sigs", 0, N_("force v3 signatures") },
  /* { oDryRun, "dry-run",   0, N_("do not make any changes") }, */
     { oBatch, "batch",     0, N_("batch mode: never ask")},
     { oAnswerYes, "yes",       0, N_("assume yes on most questions")},
@@ -714,6 +716,7 @@ main( int argc, char **argv )
          case oSetFilename: opt.set_filename = pargs.r.ret_str; break;
          case oComment: opt.comment_string = pargs.r.ret_str; break;
          case oThrowKeyid: opt.throw_keyid = 1; break;
+         case oForceV3Sigs: opt.force_v3_sigs = 1; break;
          case oS2KMode:   opt.s2k_mode = pargs.r.ret_int; break;
          case oS2KDigest: s2k_digest_string = m_strdup(pargs.r.ret_str); break;
          case oS2KCipher: s2k_cipher_string = m_strdup(pargs.r.ret_str); break;
index 90bd09a..3aa1203 100644 (file)
@@ -610,7 +610,7 @@ merge_one_pk_and_selfsig( KBNODE keyblock, KBNODE knode )
     for(k=keyblock; k; k = k->next ) {
        if( k->pkt->pkttype == PKT_SIGNATURE
            && (sig=k->pkt->pkt.signature)->sig_class >= 0x10
-           && sig->sig_class <= 0x13
+           && sig->sig_class <= 0x30
            && sig->keyid[0] == kid[0]
            && sig->keyid[1] == kid[1]
            && sig->version > 3 ) {
@@ -660,7 +660,7 @@ merge_keys_and_selfsig( KBNODE keyblock )
        }
        else if( (pk || sk ) && k->pkt->pkttype == PKT_SIGNATURE
                 && (sig=k->pkt->pkt.signature)->sig_class >= 0x10
-                && sig->sig_class <= 0x13 && sig->version > 3
+                && sig->sig_class <= 0x30 && sig->version > 3
                 && sig->keyid[0] == kid[0] && sig->keyid[1] == kid[1] ) {
            /* okay this is (the first) self-signature which can be used
             * FIXME: We should only use this if the signature is valid
index 4cc5a25..a504d06 100644 (file)
@@ -48,6 +48,7 @@ static void show_fingerprint( PKT_public_key *pk );
 static int menu_adduid( KBNODE keyblock, KBNODE sec_keyblock );
 static void menu_deluid( KBNODE pub_keyblock, KBNODE sec_keyblock );
 static void menu_delkey( KBNODE pub_keyblock, KBNODE sec_keyblock );
+static int menu_expire( KBNODE pub_keyblock, KBNODE sec_keyblock );
 static int menu_select_uid( KBNODE keyblock, int index );
 static int menu_select_key( KBNODE keyblock, int index );
 static int count_uids( KBNODE keyblock );
@@ -478,7 +479,7 @@ keyedit_menu( const char *username, STRLIST locusr )
     enum cmdids { cmdNONE = 0,
           cmdQUIT, cmdHELP, cmdFPR, cmdLIST, cmdSELUID, cmdCHECK, cmdSIGN,
           cmdDEBUG, cmdSAVE, cmdADDUID, cmdDELUID, cmdADDKEY, cmdDELKEY,
-          cmdTOGGLE, cmdSELKEY, cmdPASSWD, cmdTRUST, cmdPREF,
+          cmdTOGGLE, cmdSELKEY, cmdPASSWD, cmdTRUST, cmdPREF, cmdEXPIRE,
           cmdNOP };
     static struct { const char *name;
                    enum cmdids id;
@@ -504,6 +505,7 @@ keyedit_menu( const char *username, STRLIST locusr )
        { N_("deluid")  , cmdDELUID , 0, N_("delete user id") },
        { N_("addkey")  , cmdADDKEY , 1, N_("add a secondary key") },
        { N_("delkey")  , cmdDELKEY , 0, N_("delete a secondary key") },
+       { N_("expire")  , cmdEXPIRE , 1, N_("change the expire date") },
        { N_("toggle")  , cmdTOGGLE , 1, N_("toggle between secret "
                                            "and public key listing") },
        { N_("t"     )  , cmdTOGGLE , 1, NULL },
@@ -761,6 +763,16 @@ keyedit_menu( const char *username, STRLIST locusr )
            }
            break;
 
+         case cmdEXPIRE:
+           if( menu_expire( keyblock, sec_keyblock ) ) {
+               merge_keys_and_selfsig( sec_keyblock );
+               merge_keys_and_selfsig( keyblock );
+               sec_modified = 1;
+               modified = 1;
+               redisplay = 1;
+           }
+           break;
+
          case cmdPASSWD:
            if( change_passphrase( sec_keyblock ) )
                sec_modified = 1;
@@ -1149,6 +1161,117 @@ menu_delkey( KBNODE pub_keyblock, KBNODE sec_keyblock )
 }
 
 
+
+static int
+menu_expire( KBNODE pub_keyblock, KBNODE sec_keyblock )
+{
+    int n1, rc;
+    u32 expiredate;
+    int mainkey=0;
+    PKT_secret_key *sk;    /* copy of the main sk */
+    PKT_public_key *main_pk, *sub_pk;
+    PKT_user_id *uid;
+    KBNODE node;
+    u32 keyid[2];
+
+    if( count_selected_keys( sec_keyblock ) ) {
+       tty_printf(_("Please remove selections from the secret keys.\n"));
+       return 0;
+    }
+
+    n1 = count_selected_keys( pub_keyblock );
+    if( n1 > 1 ) {
+       tty_printf(_("Please select at most one secondary key.\n"));
+       return 0;
+    }
+    else if( n1 )
+       tty_printf(_("Changing exiration time for a secondary key.\n"));
+    else {
+       tty_printf(_("Changing exiration time for the primary key.\n"));
+       mainkey=1;
+    }
+
+    expiredate = ask_expiredate();
+    /* fixme: check that expiredate is > key creation date */
+
+    /* get the secret key , make a copy and set the expiration time into
+     * that key (because keygen_add-key-expire expects it there)
+     */
+    node = find_kbnode( sec_keyblock, PKT_SECRET_KEY );
+    sk = copy_secret_key( NULL, node->pkt->pkt.secret_key);
+    sk->expiredate = expiredate;
+
+    /* Now we can actually change the self signature(s) */
+    main_pk = sub_pk = NULL;
+    uid = NULL;
+    for( node=pub_keyblock; node; node = node->next ) {
+       if( node->pkt->pkttype == PKT_PUBLIC_KEY ) {
+           main_pk = node->pkt->pkt.public_key;
+           keyid_from_pk( main_pk, keyid );
+       }
+       else if( node->pkt->pkttype == PKT_PUBLIC_SUBKEY
+                && (node->flag & NODFLG_SELKEY ) )
+           sub_pk = node->pkt->pkt.public_key;
+       else if( node->pkt->pkttype == PKT_USER_ID )
+           uid = node->pkt->pkt.user_id;
+       else if( main_pk && node->pkt->pkttype == PKT_SIGNATURE ) {
+           PKT_signature *sig = node->pkt->pkt.signature;
+           if( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1]
+               && (    (mainkey && uid && (sig->sig_class&~3) == 0x10)
+                    || (!mainkey && sig->sig_class == 0x18)  ) ) {
+               /* this is a selfsignature which should be replaced */
+               PKT_signature *newsig;
+               PACKET *newpkt;
+               KBNODE sn;
+
+               /* find the corresponding secret self-signature */
+               for( sn=sec_keyblock; sn; sn = sn->next ) {
+                   if( sn->pkt->pkttype == PKT_SIGNATURE
+                       && !cmp_signatures( sn->pkt->pkt.signature, sig ) )
+                       break;
+               }
+               if( !sn )
+                   log_info(_("No corresponding signature in secret ring\n"));
+
+               /* create new self signature */
+               if( mainkey )
+                   rc = make_keysig_packet( &newsig, main_pk, uid, NULL,
+                                            sk, 0x13, 0,
+                                            keygen_add_std_prefs, sk );
+               else
+                   rc = make_keysig_packet( &newsig, main_pk, NULL, sub_pk,
+                                            sk, 0x18, 0,
+                                            keygen_add_key_expire, sk );
+               if( rc ) {
+                   log_error("make_keysig_packet failed: %s\n",
+                                                   g10_errstr(rc));
+                   free_secret_key( sk );
+                   return 0;
+               }
+               /* replace the packet */
+               newpkt = m_alloc_clear( sizeof *newpkt );
+               newpkt->pkttype = PKT_SIGNATURE;
+               newpkt->pkt.signature = newsig;
+               free_packet( node->pkt );
+               m_free( node->pkt );
+               node->pkt = newpkt;
+               if( sn ) {
+                   newpkt = m_alloc_clear( sizeof *newpkt );
+                   newpkt->pkttype = PKT_SIGNATURE;
+                   newpkt->pkt.signature = copy_signature( NULL, newsig );
+                   free_packet( sn->pkt );
+                   m_free( sn->pkt );
+                   sn->pkt = newpkt;
+               }
+           }
+       }
+    }
+
+    free_secret_key( sk );
+    return 1;
+}
+
+
 /****************
  * Select one user id or remove all selection if index is 0.
  * Returns: True if the selection changed;
index 9f1d8df..1aac84f 100644 (file)
@@ -51,8 +51,8 @@ write_uid( KBNODE root, const char *s )
 
 
 
-static int
-add_key_expire( PKT_signature *sig, void *opaque )
+int
+keygen_add_key_expire( PKT_signature *sig, void *opaque )
 {
     PKT_secret_key *sk = opaque;
     byte buf[8];
@@ -80,7 +80,7 @@ keygen_add_std_prefs( PKT_signature *sig, void *opaque )
 {
     byte buf[8];
 
-    add_key_expire( sig, opaque );
+    keygen_add_key_expire( sig, opaque );
 
     buf[0] = CIPHER_ALGO_BLOWFISH;
     buf[1] = CIPHER_ALGO_CAST5;
@@ -176,7 +176,7 @@ write_keybinding( KBNODE root, KBNODE pub_root, PKT_secret_key *sk )
 
     /* and make the signature */
     rc = make_keysig_packet( &sig, pk, NULL, subpk, sk, 0x18, 0,
-                                   add_key_expire, sk );
+                                   keygen_add_key_expire, sk );
     if( rc ) {
        log_error("make_keysig_packet failed: %s\n", g10_errstr(rc) );
        return rc;
@@ -481,7 +481,7 @@ ask_keysize( int algo )
 }
 
 
-static u32
+u32
 ask_expiredate()
 {
     char *answer;
@@ -495,7 +495,7 @@ ask_expiredate()
                 "      <n>m = key expires in n months\n"
                 "      <n>y = key expires in n years\n"));
     /* Note: The elgamal subkey for DSA has no exiration date because
-     * is must be signed with the DSA key and this one has the expiration
+     * it must be signed with the DSA key and this one has the expiration
      * date */
 
     answer = NULL;
index a8132fa..7cde3c5 100644 (file)
@@ -78,7 +78,9 @@ int delete_key( const char *username, int secure );
 void keyedit_menu( const char *username, STRLIST locusr );
 
 /*-- keygen.c --*/
+u32 ask_expiredate(void);
 void generate_keypair(void);
+int keygen_add_key_expire( PKT_signature *sig, void *opaque );
 int keygen_add_std_prefs( PKT_signature *sig, void *opaque );
 int generate_subkeypair( KBNODE pub_keyblock, KBNODE sec_keyblock );
 
index ac76296..09a3301 100644 (file)
@@ -41,7 +41,7 @@ struct {
     int no_armor;
     int list_packets; /* list-packets mode */
     int def_cipher_algo;
-    int reserved1;
+    int force_v3_sigs;
     int def_digest_algo;
     int def_compress_algo;
     const char *def_secret_key;
index 4898027..fa26a33 100644 (file)
@@ -273,6 +273,7 @@ PKT_secret_key *copy_secret_key( PKT_secret_key *d, PKT_secret_key *s );
 PKT_signature *copy_signature( PKT_signature *d, PKT_signature *s );
 PKT_user_id *copy_user_id( PKT_user_id *d, PKT_user_id *s );
 int cmp_public_keys( PKT_public_key *d, PKT_public_key *s );
+int cmp_signatures( PKT_signature *a, PKT_signature *b );
 int cmp_public_secret_key( PKT_public_key *pk, PKT_secret_key *sk );
 int cmp_user_ids( PKT_user_id *a, PKT_user_id *b );
 
index c17f2c5..542676c 100644 (file)
@@ -608,6 +608,97 @@ parse_pubkeyenc( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
 }
 
 
+static void
+dump_sig_subpkt( int hashed, int type, int critical,
+                const char * buffer, size_t buflen, size_t length )
+{
+    const char *p=NULL;
+
+    printf("\t%s%ssubpkt %d len %u (", /*)*/
+             critical ? "critical ":"",
+             hashed ? "hashed ":"", type, (unsigned)length );
+    buffer++;
+    length--;
+    if( length > buflen ) {
+       printf("too short: buffer is only %u)\n", (unsigned)buflen );
+       return;
+    }
+    switch( type ) {
+      case SIGSUBPKT_SIG_CREATED:
+       if( length >= 4 )
+           printf("sig created %s", strtimestamp( buffer_to_u32(buffer) ) );
+       break;
+      case SIGSUBPKT_SIG_EXPIRE:
+       if( length >= 4 )
+           printf("sig expires %s", strtimestamp( buffer_to_u32(buffer) ) );
+       break;
+      case SIGSUBPKT_EXPORTABLE:
+       p = "exportable";
+       break;
+      case SIGSUBPKT_TRUST:
+       p = "trust signature";
+       break;
+      case SIGSUBPKT_REGEXP:
+       p = "regular expression";
+       break;
+      case SIGSUBPKT_REVOCABLE:
+       p = "revocable";
+       break;
+      case SIGSUBPKT_KEY_EXPIRE:
+       if( length >= 4 )
+           printf("key expires %s", strtimestamp( buffer_to_u32(buffer) ) );
+       break;
+      case SIGSUBPKT_ARR:
+       p = "additional recipient request";
+       break;
+      case SIGSUBPKT_PREF_SYM:
+       p = "preferred symmetric algorithms";
+       break;
+      case SIGSUBPKT_REV_KEY:
+       p = "revocation key";
+       break;
+      case SIGSUBPKT_ISSUER:
+       if( length >= 8 )
+           printf("issuer key ID %08lX%08lX",
+                     (ulong)buffer_to_u32(buffer),
+                     (ulong)buffer_to_u32(buffer+4) );
+       break;
+      case SIGSUBPKT_NOTATION:
+       p = "notation data";
+       break;
+      case SIGSUBPKT_PREF_HASH:
+       p = "preferred hash algorithms";
+       break;
+      case SIGSUBPKT_PREF_COMPR:
+       p = "preferred compression algorithms";
+       break;
+      case SIGSUBPKT_KS_FLAGS:
+       p = "key server preferences";
+       break;
+      case SIGSUBPKT_PREF_KS:
+       p = "preferred key server";
+       break;
+      case SIGSUBPKT_PRIMARY_UID:
+       p = "primary user id";
+       break;
+      case SIGSUBPKT_POLICY:
+       p = "policy URL";
+       break;
+      case SIGSUBPKT_KEY_FLAGS:
+       p = "key flags";
+       break;
+      case SIGSUBPKT_SIGNERS_UID:
+       p = "signer's user id";
+       break;
+      case SIGSUBPKT_PRIV_ADD_SIG:
+       p = "signs additional user id";
+       break;
+      default: p = "?"; break;
+    }
+
+    printf("%s)\n", p? p: "");
+}
+
 const byte *
 parse_sig_subpkt( const byte *buffer, sigsubpkttype_t reqtype, size_t *ret_n )
 {
@@ -648,32 +739,9 @@ parse_sig_subpkt( const byte *buffer, sigsubpkttype_t reqtype, size_t *ret_n )
        }
        else
            critical = 0;
-       if( reqtype < 0 ) { /* list packets */
-           printf("\t%ssubpacket %d of length %u (%s)\n",
-           reqtype == SIGSUBPKT_LIST_HASHED ? "hashed ":"", type, (unsigned)n,
-            type == SIGSUBPKT_SIG_CREATED ? "signature creation time"
-          : type == SIGSUBPKT_SIG_EXPIRE  ? "signature expiration time"
-          : type == SIGSUBPKT_EXPORTABLE  ? "exportable"
-          : type == SIGSUBPKT_TRUST       ? "trust signature"
-          : type == SIGSUBPKT_REGEXP      ? "regular expression"
-          : type == SIGSUBPKT_REVOCABLE   ? "revocable"
-          : type == SIGSUBPKT_KEY_EXPIRE  ? "key expiration time"
-          : type == SIGSUBPKT_ARR         ? "additional recipient request"
-          : type == SIGSUBPKT_PREF_SYM    ? "preferred symmetric algorithms"
-          : type == SIGSUBPKT_REV_KEY     ? "revocation key"
-          : type == SIGSUBPKT_ISSUER      ? "issuer key ID"
-          : type == SIGSUBPKT_NOTATION    ? "notation data"
-          : type == SIGSUBPKT_PREF_HASH   ? "preferred hash algorithms"
-          : type == SIGSUBPKT_PREF_COMPR  ? "preferred compression algorithms"
-          : type == SIGSUBPKT_KS_FLAGS    ? "key server preferences"
-          : type == SIGSUBPKT_PREF_KS     ? "preferred key server"
-          : type == SIGSUBPKT_PRIMARY_UID ? "primary user id"
-          : type == SIGSUBPKT_POLICY      ? "policy URL"
-          : type == SIGSUBPKT_KEY_FLAGS   ? "key flags"
-          : type == SIGSUBPKT_SIGNERS_UID ? "signer's user id"
-          : type == SIGSUBPKT_PRIV_ADD_SIG? "signs additional user id"
-                             : "?");
-       }
+       if( reqtype < 0 ) /* list packets */
+           dump_sig_subpkt( reqtype == SIGSUBPKT_LIST_HASHED,
+                                   type, critical, buffer, buflen, n );
        else if( type == reqtype )
            break; /* found */
        buffer += n; buflen -=n;
index bf058f0..119cd67 100644 (file)
@@ -62,6 +62,8 @@
 #include "options.h"
 #include "i18n.h"
 
+#undef HAVE_LIBGDBM  /* <--- not ready */
+
 struct resource_table_struct {
     int used;
     int secret; /* this is a secret keyring */
@@ -275,6 +277,7 @@ get_keyblock_handle( const char *filename, int secret, KBPOS *kbpos )
            if( !filename || !strcmp( resource_table[i].fname, filename ) ) {
                memset( kbpos, 0, sizeof *kbpos );
                kbpos->resno = i;
+               kbpos->rt = resource_table[i].rt;
                return 0;
            }
        }
index 304843f..7404cac 100644 (file)
@@ -108,6 +108,9 @@ only_old_style( SK_LIST sk_list )
     SK_LIST sk_rover = NULL;
     int old_style = 0;
 
+    if( opt.force_v3_sigs )
+       return 1;
+
     /* if there are only old style capable key we use the old sytle */
     for( sk_rover = sk_list; sk_rover; sk_rover = sk_rover->next ) {
        PKT_secret_key *sk = sk_rover->sk;
@@ -369,7 +372,7 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
        /* build the signature packet */
        /* fixme: this code is partly duplicated in make_keysig_packet */
        sig = m_alloc_clear( sizeof *sig );
-       sig->version = sk->version;
+       sig->version = old_style? 3 : sk->version;
        keyid_from_sk( sk, sig->keyid );
        sig->digest_algo = hash_for(sk->pubkey_algo);
        sig->pubkey_algo = sk->pubkey_algo;
@@ -605,7 +608,7 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile )
        /* build the signature packet */
        /* fixme: this code is duplicated above */
        sig = m_alloc_clear( sizeof *sig );
-       sig->version = sk->version;
+       sig->version = old_style? 3 : sk->version;
        keyid_from_sk( sk, sig->keyid );
        sig->digest_algo = hash_for(sk->pubkey_algo);
        sig->pubkey_algo = sk->pubkey_algo;
index 4259193..5c1b7f4 100644 (file)
@@ -962,7 +962,7 @@ tdbio_read_record( ulong recnum, TRUSTREC *rec, int expected )
            rc = G10ERR_TRUSTDB;
        }
        break;
-      case RECTYPE_CACH:   /* cache record (FIXME)*/
+      case RECTYPE_CACH:   /* cache record */
        rec->r.cache.lid    = buftoulong(p); p += 4;
        memcpy(rec->r.cache.blockhash, p, 20); p += 20;
        rec->r.cache.trustlevel = *p++;
@@ -990,7 +990,6 @@ tdbio_read_record( ulong recnum, TRUSTREC *rec, int expected )
 
 /****************
  * Write the record at RECNUM
- * FIXME: create/update keyhash record.
  */
 int
 tdbio_write_record( TRUSTREC *rec )
@@ -1081,7 +1080,7 @@ tdbio_write_record( TRUSTREC *rec )
        ulongtobuf( p, rec->r.sdir.hintlist );
        break;
 
-      case RECTYPE_CACH:   /* FIXME*/
+      case RECTYPE_CACH:
        ulongtobuf(p, rec->r.cache.lid); p += 4;
        memcpy(p, rec->r.cache.blockhash, 20); p += 20;
        *p++ = rec->r.cache.trustlevel;
index 42bb4aa..2c52b22 100644 (file)
@@ -55,7 +55,8 @@
                           but we mark it to avoid duplicate checks */
 #define DIRF_REVOKED  8 /* the complete key has been revoked */
 
-#define KEYF_REVOKED  8 /* this key has been revoked (only useful on subkeys)*/
+#define KEYF_EXPIRED  4 /* this key is expired */
+#define KEYF_REVOKED  8 /* this key has been revoked */
 
 #define UIDF_CHECKED  1 /* user id has been checked - other bits are valid */
 #define UIDF_VALID    2 /* this is a valid user id */
index eb6ea3c..e4a4478 100644 (file)
@@ -2054,7 +2054,7 @@ upd_pref_record( PKT_signature *sig, TRUSTREC *drec,
 
 
 /****************
- * Note: A signature made with a secondayr key is not considered a
+ * Note: A signature made with a secondary key is not considered a
  *      self-signature.
  */
 static void
@@ -2067,11 +2067,21 @@ upd_sig_record( PKT_signature *sig, TRUSTREC *drec,
     ulong lid = drec->recnum;
 
     if( !*uidrecno ) {
-       /* fixme: handle direct key signatures */
-       log_error("key %08lX: signature without user id\n", (ulong)keyid[1] );
-       return;
+       switch( sig->sig_class ) {
+         case 0x20:
+         case 0x28: /* We do not need uids for [sub]key revications */
+         case 0x18: /* or subkey binding */
+           memset( &urec, 0, sizeof urec ); /* to catch errors */
+           break;
+
+         default:
+           log_error("key %08lX: signature (class %02x) without user id\n",
+                                        (ulong)keyid[1], sig->sig_class );
+           return;
+       }
     }
-    read_record( *uidrecno, &urec, RECTYPE_UID );
+    else
+       read_record( *uidrecno, &urec, RECTYPE_UID );
 
     if( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1] ) {
        if( (sig->sig_class&~3) == 0x10 ) {
@@ -2099,12 +2109,19 @@ upd_sig_record( PKT_signature *sig, TRUSTREC *drec,
                urec.dirty = 1;
            }
        }
-       else {/* is revocation sig etc */
+       else if( sig->sig_class == 0x18 ) { /* key binding */
+           /* FIXME */
+       }
+       else if( sig->sig_class == 0x20 ) { /* key revocation */
+           /* FIXME */
+       }
+       else if( sig->sig_class == 0x28 ) { /* subkey revocation */
+           /* FIXME */
+       }
+       else if( sig->sig_class == 0x30 ) { /* cert revocation */
            /* FIXME */
        }
     }
-    else if( !*uidrecno )
-       ; /* skip record with direct key signatures here */
     else if( (sig->sig_class&~3) == 0x10 ) {
        /* We simply insert the signature into the sig records but
         * avoid duplicate ones.  We do not check them here because
@@ -2365,8 +2382,20 @@ upd_sig_record( PKT_signature *sig, TRUSTREC *drec,
        }
 
     }
-    else {
-       /* handle other sig classes */
+    else if( sig->sig_class == 0x18 ) { /* key binding */
+       log_info(_("key %08lX: bogus key binding by %08lX\n"),
+                                (ulong)keyid[1], (ulong)sig->keyid[1] );
+    }
+    else if( sig->sig_class == 0x20 ) { /* key revocation */
+       log_info(_("key %08lX: bogus key revocation by %08lX\n"),
+                                (ulong)keyid[1], (ulong)sig->keyid[1] );
+    }
+    else if( sig->sig_class == 0x28 ) { /* subkey revocation */
+       log_info(_("key %08lX: bogus subkey revocation by %08lX\n"),
+                                (ulong)keyid[1], (ulong)sig->keyid[1] );
+    }
+    else if( sig->sig_class == 0x30 ) { /* cert revocation */
+       /* FIXME: a signator wants to revoke his certification signature */
     }
 
   leave:
index 1424ce8..a7d1a73 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -1,6 +1,6 @@
 msgid ""
 msgstr ""
-"POT-Creation-Date: 1998-10-07 14:24+0200\n"
+"POT-Creation-Date: 1998-10-18 16:36+0200\n"
 "PO-Revision-Date: 1998-10-11 20:10+0200\n"
 "Last-Translator: Walter Koch <walterk@mail.dip.de>\n"
 "Language-Team: German <de@li.org>\n"
@@ -243,7 +243,7 @@ msgstr ""
 "Arbeiten durch, damit das Betriebssystem weitere Entropie sammeln kann!\n"
 "(Es werden noch %d Byte benötigt.)\n"
 
-#: g10/g10.c:147
+#: g10/g10.c:149
 msgid ""
 "@Commands:\n"
 " "
@@ -251,123 +251,128 @@ msgstr ""
 "@Kommandos:\n"
 " "
 
-#: g10/g10.c:150
+#: g10/g10.c:152
 #, fuzzy
 msgid "|[file]|make a signature"
 msgstr "|[FILE]|eine Signatur erzeugen"
 
-#: g10/g10.c:151
+#: g10/g10.c:153
 #, fuzzy
 msgid "|[file]|make a clear text signature"
 msgstr "|[FILE]|eine Klartextsignatur erzeugen"
 
-#: g10/g10.c:152
+#: g10/g10.c:154
 msgid "make a detached signature"
 msgstr "Eine abgetrennte Signatur erzeugen"
 
-#: g10/g10.c:153
+#: g10/g10.c:155
 msgid "encrypt data"
 msgstr "Daten verschlüsseln"
 
-#: g10/g10.c:154
+#: g10/g10.c:156
 msgid "encryption only with symmetric cipher"
 msgstr "Daten nur symmetrisch verschlüsseln"
 
-#: g10/g10.c:155
+#: g10/g10.c:157
 msgid "store only"
 msgstr "nur speichern"
 
-#: g10/g10.c:156
+#: g10/g10.c:158
 msgid "decrypt data (default)"
 msgstr "Daten entschlüsseln  (Voreinstellung)"
 
-#: g10/g10.c:157
+#: g10/g10.c:159
 msgid "verify a signature"
 msgstr "Signatur prüfen"
 
-#: g10/g10.c:159
+#: g10/g10.c:161
 msgid "list keys"
 msgstr "Liste der Schlüssel"
 
-#: g10/g10.c:160
+#: g10/g10.c:162
 msgid "list keys and signatures"
 msgstr "Liste der Schlüssel und ihrer Signaturen"
 
-#: g10/g10.c:161
+#: g10/g10.c:163
 msgid "check key signatures"
 msgstr "Signaturen der Schlüssel prüfen"
 
-#: g10/g10.c:162
+#: g10/g10.c:164
 msgid "list keys and fingerprints"
 msgstr "Liste der Schlüssel und ihrer \"Fingerabdrücke\""
 
-#: g10/g10.c:163
+#: g10/g10.c:165
 msgid "list secret keys"
 msgstr "Liste der geheimen Schlüssel"
 
-#: g10/g10.c:165
+#: g10/g10.c:167
 msgid "generate a new key pair"
 msgstr "Ein neues Schlüsselpaar erzeugen"
 
-#: g10/g10.c:167
+#: g10/g10.c:169
 msgid "remove key from the public keyring"
 msgstr "Schlüssel entfernen"
 
-#: g10/g10.c:169
+#: g10/g10.c:171
 msgid "sign or edit a key"
 msgstr "Unterschreiben oder Bearbeiten eines Schlüssels"
 
-#: g10/g10.c:170
+#: g10/g10.c:172
 msgid "generate a revocation certificate"
 msgstr "Einen Schlüsselwiderruf vornehmen"
 
-#: g10/g10.c:172
+#: g10/g10.c:174
 msgid "export keys"
 msgstr "Schlüssel exportieren"
 
-#: g10/g10.c:175
+#: g10/g10.c:176
 msgid "import/merge keys"
 msgstr "Schlüssel importieren/kombinieren"
 
-#: g10/g10.c:176
+#: g10/g10.c:177
 msgid "list only the sequence of packets"
 msgstr "Lediglich die Struktur der Datenpackete anzeigen"
 
-#: g10/g10.c:178
+#: g10/g10.c:180
 #, fuzzy
 msgid "export the ownertrust values"
 msgstr "Keine \"Owner trust\" Werte geändert.\n"
 
-#: g10/g10.c:179
+#: g10/g10.c:182
 #, fuzzy
 msgid "import ownertrust values"
 msgstr "Keine \"Owner trust\" Werte geändert.\n"
 
-#: g10/g10.c:180
+#: g10/g10.c:184
+#, fuzzy
+msgid "|[NAMES]|update the trust database"
+msgstr "|[NAMES]|Überprüfen der \"Trust\"-Datenbank"
+
+#: g10/g10.c:186
 msgid "|[NAMES]|check the trust database"
 msgstr "|[NAMES]|Überprüfen der \"Trust\"-Datenbank"
 
-#: g10/g10.c:181
+#: g10/g10.c:187
 msgid "fix a corrupted trust database"
 msgstr "Reparieren einer beschädigten \"Trust\"-Datenbank"
 
-#: g10/g10.c:182
+#: g10/g10.c:188
 msgid "De-Armor a file or stdin"
 msgstr "Datei oder stdin von der ASCII-Hülle befreien"
 
-#: g10/g10.c:183
+#: g10/g10.c:189
 msgid "En-Armor a file or stdin"
 msgstr "Datei oder stdin in eine ASCII-Hülle einpacken"
 
-#: g10/g10.c:184
+#: g10/g10.c:190
 msgid "|algo [files]|print message digests"
 msgstr "|algo [files]|Message-Digests für die Dateien ausgeben"
 
-#: g10/g10.c:185
+#: g10/g10.c:191
 msgid "print all message digests"
 msgstr "Message-Digests für die Eingabedaten ausgeben"
 
-#: g10/g10.c:192
+#: g10/g10.c:198
 msgid ""
 "@\n"
 "Options:\n"
@@ -377,128 +382,133 @@ msgstr ""
 "Optionen:\n"
 " "
 
-#: g10/g10.c:194
+#: g10/g10.c:200
 msgid "create ascii armored output"
 msgstr "Ausgabe mit ASCII-Hülle versehen"
 
-#: g10/g10.c:196
+#: g10/g10.c:202
 msgid "use this user-id to sign or decrypt"
 msgstr "Mit dieser User-ID signieren"
 
-#: g10/g10.c:197
+#: g10/g10.c:203
 msgid "use this user-id for encryption"
 msgstr "Verschlüsseln für diese User-ID"
 
-#: g10/g10.c:198
+#: g10/g10.c:204
 msgid "|N|set compress level N (0 disables)"
 msgstr "Kompressionsstufe auf N setzen (0 für keine Kompression)"
 
-#: g10/g10.c:199
+#: g10/g10.c:205
 msgid "use canonical text mode"
 msgstr "Textmodus benutzen"
 
-#: g10/g10.c:201
+#: g10/g10.c:207
 msgid "use as output file"
 msgstr "dies als Ausgabedatei benutzen"
 
-#: g10/g10.c:202
+#: g10/g10.c:208
 msgid "verbose"
 msgstr "detaillierte Informationen"
 
+#: g10/g10.c:209
+#, fuzzy
+msgid "force v3 signatures"
+msgstr "Signaturen der Schlüssel prüfen"
+
 #. { oDryRun, "dry-run",   0, N_("do not make any changes") },
-#: g10/g10.c:204
+#: g10/g10.c:211
 msgid "batch mode: never ask"
 msgstr "Stapelmodus: Keine Abfragen"
 
-#: g10/g10.c:205
+#: g10/g10.c:212
 msgid "assume yes on most questions"
 msgstr "\"Ja\" als Standardantwort annehmen"
 
-#: g10/g10.c:206
+#: g10/g10.c:213
 msgid "assume no on most questions"
 msgstr "\"Nein\" als Standardantwort annehmen"
 
-#: g10/g10.c:207
+#: g10/g10.c:214
 msgid "add this keyring to the list of keyrings"
 msgstr "Als öffentlichen Schlüsselring mitbenutzen"
 
-#: g10/g10.c:208
+#: g10/g10.c:215
 msgid "add this secret keyring to the list"
 msgstr "Als geheimen Schlüsselring mitbenutzen"
 
-#: g10/g10.c:209
+#: g10/g10.c:216
 msgid "|NAME|use NAME as default secret key"
 msgstr "|NAME|NAME als voreingestellten Schlüssel benutzen"
 
-#: g10/g10.c:210
+#: g10/g10.c:217
 msgid "read options from file"
 msgstr "Optionen aus der Datei lesen"
 
-#: g10/g10.c:212
+#: g10/g10.c:219
 msgid "set debugging flags"
 msgstr "Debug-Flags einschalten"
 
-#: g10/g10.c:213
+#: g10/g10.c:220
 msgid "enable full debugging"
 msgstr "Alle Debug-Flags einschalten"
 
-#: g10/g10.c:214
+#: g10/g10.c:221
 msgid "|FD|write status info to this FD"
 msgstr "|FD|Statusinfo auf diesen Dateihandle (\"FD\") ausgeben"
 
-#: g10/g10.c:215
+#: g10/g10.c:222
 msgid "do not write comment packets"
 msgstr "Keine Kommentarpakete schreiben"
 
-#: g10/g10.c:216
+#: g10/g10.c:223
 msgid "(default is 1)"
 msgstr "(voreingestellt ist 1)"
 
-#: g10/g10.c:217
+#: g10/g10.c:224
 msgid "(default is 3)"
 msgstr "(voreingestellt ist 3)"
 
-#: g10/g10.c:218
+#: g10/g10.c:225
 #, fuzzy
 msgid "|FILE|load extension module FILE"
 msgstr "|FILE|Erweiterungsmodul |FILE| laden"
 
-#: g10/g10.c:219
+#: g10/g10.c:226
 msgid "emulate the mode described in RFC1991"
 msgstr "Den in RFC1991 beschriebenen Modus nachahmen"
 
-#: g10/g10.c:220
+#: g10/g10.c:227
 #, fuzzy
 msgid "|N|use passphrase mode N"
 msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
 
-#: g10/g10.c:222
+#: g10/g10.c:229
 #, fuzzy
 msgid "|NAME|use message digest algorithm NAME for passphrases"
 msgstr "|NAME|Die Hashmethode NAME für die \"Passphrase\" benutzen"
 
-#: g10/g10.c:224
+#: g10/g10.c:231
 #, fuzzy
 msgid "|NAME|use cipher algorithm NAME for passphrases"
 msgstr "|NAME|Die Verschlüsslungsmethode NAME benutzen"
 
-#: g10/g10.c:226
+#: g10/g10.c:233
 msgid "|NAME|use cipher algorithm NAME"
 msgstr "|NAME|Die Verschlüsslungsmethode NAME benutzen"
 
-#: g10/g10.c:227
+#: g10/g10.c:234
 msgid "|NAME|use message digest algorithm NAME"
 msgstr "|NAME|Die Hashmethode NAME benutzen"
 
-#: g10/g10.c:228
+#: g10/g10.c:235
 msgid "|N|use compress algorithm N"
 msgstr "|N|Die Kompressionsmethode N benutzen"
 
-#: g10/g10.c:229
+#: g10/g10.c:236
 msgid "throw keyid field of encrypted packets"
 msgstr ""
 
-#: g10/g10.c:237
+#: g10/g10.c:244
 #, fuzzy
 msgid ""
 "@\n"
@@ -519,27 +529,28 @@ msgstr ""
 " --list-keys [names]        Die Schlüssel anzeigen\n"
 " --fingerprint [names]      Die \"Fingerabdrücke\" anzeigen\n"
 
-#: g10/g10.c:312
+#: g10/g10.c:319
 msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
 msgstr "Berichte über Wanzen bitte an <gnupg-bugs@gnu.org>.\n"
 
-#: g10/g10.c:317
+#: g10/g10.c:324
 msgid "Usage: gpgm [options] [files] (-h for help)"
 msgstr "Aufruf: gpgm [Optionen] [Dateien] (-h für Hilfe)"
 
-#: g10/g10.c:319
+#: g10/g10.c:326
 msgid "Usage: gpg [options] [files] (-h for help)"
 msgstr "Aufruf: gpg [Optionen] [Dateien] (-h für Hilfe)"
 
-#: g10/g10.c:324
+#: g10/g10.c:331
+#, fuzzy
 msgid ""
 "Syntax: gpgm [options] [files]\n"
-"GNUPG maintenance utility\n"
+"GnuPG maintenance utility\n"
 msgstr ""
 "Syntax: gpgm [options] [files]\n"
 "GNUPG Wartungs-Hilfsprogramm\n"
 
-#: g10/g10.c:327
+#: g10/g10.c:334
 msgid ""
 "Syntax: gpg [options] [files]\n"
 "sign, check, encrypt or decrypt\n"
@@ -549,147 +560,147 @@ msgstr ""
 "Signieren, prüfen, verschlüsseln, entschlüsseln\n"
 "Die voreingestellte Operation ist abhängig von den Eingabedaten\n"
 
-#: g10/g10.c:333
+#: g10/g10.c:340
 msgid ""
 "\n"
 "Supported algorithms:\n"
 msgstr ""
 
-#: g10/g10.c:408
+#: g10/g10.c:415
 msgid "usage: gpgm [options] "
 msgstr "Aufruf: gpgm [Optionen] "
 
-#: g10/g10.c:410
+#: g10/g10.c:417
 msgid "usage: gpg [options] "
 msgstr "Aufruf: gpg [Optionen] "
 
-#: g10/g10.c:451
+#: g10/g10.c:458
 msgid "conflicting commands\n"
 msgstr "Widersprüchliche Kommandos\n"
 
-#: g10/g10.c:590
+#: g10/g10.c:596
 #, c-format
 msgid "note: no default option file '%s'\n"
 msgstr "Hinweis: Keine voreingestellte Optionendatei '%s' vorhanden\n"
 
-#: g10/g10.c:594
+#: g10/g10.c:600
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "Optionendatei '%s': %s\n"
 
-#: g10/g10.c:601
+#: g10/g10.c:607
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "Optionen werden von '%s' gelesen\n"
 
-#: g10/g10.c:768 g10/g10.c:780
+#: g10/g10.c:778 g10/g10.c:790
 msgid "selected cipher algorithm is invalid\n"
 msgstr "Die ausgewählte Verschlüsslungsmethode ist ungültig\n"
 
-#: g10/g10.c:774 g10/g10.c:786
+#: g10/g10.c:784 g10/g10.c:796
 msgid "selected digest algorithm is invalid\n"
 msgstr "Die ausgewählte Message-Digest-Methode ist ungültig\n"
 
-#: g10/g10.c:789
+#: g10/g10.c:799
 #, c-format
 msgid "compress algorithm must be in range %d..%d\n"
 msgstr "Die Kompressionsmethode muß im Bereich %d bis %d liegen\n"
 
-#: g10/g10.c:791
+#: g10/g10.c:801
 msgid "completes-needed must be greater than 0\n"
 msgstr "completes-needed müssen größer als 0 sein\n"
 
-#: g10/g10.c:793
+#: g10/g10.c:803
 msgid "marginals-needed must be greater than 1\n"
 msgstr "marginals-needed müssen größer als 1 sein\n"
 
-#: g10/g10.c:796
+#: g10/g10.c:806
 msgid "note: simple S2K mode (0) is strongly discouraged\n"
 msgstr ""
 
-#: g10/g10.c:800
+#: g10/g10.c:810
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
 msgstr ""
 
-#: g10/g10.c:876
+#: g10/g10.c:886
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
 msgstr "Die Trust-DB kann nicht initialisiert werden: %s\n"
 
-#: g10/g10.c:882
+#: g10/g10.c:892
 msgid "--store [filename]"
 msgstr "--store [Dateiname]"
 
-#: g10/g10.c:890
+#: g10/g10.c:900
 msgid "--symmetric [filename]"
 msgstr "--symmetric [Dateiname]"
 
-#: g10/g10.c:898
+#: g10/g10.c:908
 msgid "--encrypt [filename]"
 msgstr "--encrypt [Dateiname]"
 
-#: g10/g10.c:911
+#: g10/g10.c:921
 msgid "--sign [filename]"
 msgstr "--sign [Dateiname]"
 
-#: g10/g10.c:924
+#: g10/g10.c:934
 msgid "--sign --encrypt [filename]"
 msgstr "--sign --encrypt [Dateiname]"
 
-#: g10/g10.c:938
+#: g10/g10.c:948
 msgid "--clearsign [filename]"
 msgstr "--clearsign [Dateiname]"
 
-#: g10/g10.c:950
+#: g10/g10.c:960
 msgid "--decrypt [filename]"
 msgstr "--decrypt [Dateiname]"
 
-#: g10/g10.c:959
+#: g10/g10.c:969
 msgid "--edit-key username"
 msgstr "--edit-key Benutzername"
 
-#: g10/g10.c:967
+#: g10/g10.c:977
 msgid "--delete-secret-key username"
 msgstr "--delete-secret-key Benutzername"
 
-#: g10/g10.c:970
+#: g10/g10.c:980
 msgid "--delete-key username"
 msgstr "--delete-key Benutzername"
 
-#: g10/encode.c:213 g10/g10.c:993 g10/keylist.c:79
+#: g10/encode.c:215 g10/g10.c:1003 g10/keylist.c:80
 #, c-format
 msgid "can't open %s: %s\n"
 msgstr "Datei '%s' kann nicht geöffnet werden: %s\n"
 
-#: g10/g10.c:1004
+#: g10/g10.c:1014
 msgid "-k[v][v][v][c] [userid] [keyring]"
 msgstr "-k[v][v][v][c] [Benutzername] [Keyring]"
 
-#: g10/g10.c:1059
+#: g10/g10.c:1069
 #, c-format
 msgid "dearmoring failed: %s\n"
 msgstr "De-Armor fehlgeschlagen: %s\n"
 
-#: g10/g10.c:1067
+#: g10/g10.c:1077
 #, c-format
 msgid "enarmoring failed: %s\n"
 msgstr "En-Armor fehlgeschlagen: %s\n"
 
-#: g10/g10.c:1128
+#: g10/g10.c:1138
 #, c-format
 msgid "invalid hash algorithm '%s'\n"
 msgstr "Ungültige Hashmethode '%s'\n"
 
-#: g10/g10.c:1204
+#: g10/g10.c:1220
 msgid "[filename]"
 msgstr "[Dateiname]"
 
-#: g10/decrypt.c:59 g10/g10.c:1206 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1222 g10/verify.c:66
 #, c-format
 msgid "can't open '%s'\n"
 msgstr "Datei '%s' kann nicht geöffnet werden\n"
 
-#: g10/g10.c:1251
+#: g10/g10.c:1269
 msgid ""
 "RSA keys are deprecated; please consider creating a new key and use this key "
 "in the future\n"
@@ -697,63 +708,63 @@ msgstr ""
 "RSA Schlüssel sind nicht erwünscht; bitte denken Sie darüber nach, einen "
 "neuen Schlüssel zu erzeugen und diesen in Zukunft zu benutzen\n"
 
-#: g10/armor.c:335 g10/armor.c:375
+#: g10/armor.c:341 g10/armor.c:381
 msgid "armor header: "
 msgstr ""
 
-#: g10/armor.c:340
+#: g10/armor.c:346
 #, fuzzy
 msgid "invalid clearsig header\n"
 msgstr "Ungültiges Zeichen im Namen\n"
 
-#: g10/armor.c:366
+#: g10/armor.c:372
 msgid "invalid armor header: "
 msgstr ""
 
-#: g10/armor.c:440
+#: g10/armor.c:449
 #, fuzzy, c-format
 msgid "armor: %s\n"
 msgstr "Lesefehler: %s\n"
 
-#: g10/armor.c:484
+#: g10/armor.c:493
 msgid "invalid dash escaped line: "
 msgstr ""
 
-#: g10/armor.c:553
+#: g10/armor.c:562
 msgid "invalid clear text header: "
 msgstr ""
 
-#: g10/armor.c:783
+#: g10/armor.c:794
 #, fuzzy, c-format
 msgid "invalid radix64 character %02x skipped\n"
 msgstr "Ungültiges Zeichen im Namen\n"
 
-#: g10/armor.c:816
+#: g10/armor.c:827
 msgid "premature eof (no CRC)\n"
 msgstr ""
 
-#: g10/armor.c:835
+#: g10/armor.c:846
 msgid "premature eof (in CRC)\n"
 msgstr ""
 
-#: g10/armor.c:839
+#: g10/armor.c:850
 msgid "malformed CRC\n"
 msgstr ""
 
-#: g10/armor.c:843
+#: g10/armor.c:854
 #, c-format
 msgid "CRC error; %06lx - %06lx\n"
 msgstr ""
 
-#: g10/armor.c:862
+#: g10/armor.c:873
 msgid "premature eof (in Trailer)\n"
 msgstr ""
 
-#: g10/armor.c:866
+#: g10/armor.c:877
 msgid "error in trailer line\n"
 msgstr ""
 
-#: g10/armor.c:1120
+#: g10/armor.c:1131
 msgid "no valid RFC1991 or OpenPGP data found.\n"
 msgstr ""
 
@@ -944,48 +955,48 @@ msgstr "Die Selbst-Signatur wird geschrieben\n"
 msgid "writing key binding signature\n"
 msgstr "Schreiben der \"key-binding\" Signatur\n"
 
-#: g10/keygen.c:383
+#: g10/keygen.c:387
 msgid "Please select what kind of key you want:\n"
 msgstr "Bitte wählen Sie, welche Art von Schlüssel Sie möchten:\n"
 
-#: g10/keygen.c:385
+#: g10/keygen.c:389
 #, c-format
 msgid "   (%d) DSA and ElGamal (default)\n"
 msgstr "   (%d) DSA und ElGamal (voreingestellt)\n"
 
-#: g10/keygen.c:386
+#: g10/keygen.c:390
 #, c-format
 msgid "   (%d) ElGamal (sign and encrypt)\n"
 msgstr "   (%d) ElGamal (signieren und verschlüsseln)\n"
 
-#: g10/keygen.c:388
+#: g10/keygen.c:392
 #, c-format
 msgid "   (%d) ElGamal (encrypt only)\n"
 msgstr "   (%d) ElGamal (nur verschlüsseln)\n"
 
-#: g10/keygen.c:389
+#: g10/keygen.c:393
 #, c-format
 msgid "   (%d) DSA (sign only)\n"
 msgstr "   (%d) DSA (nur signieren)\n"
 
-#: g10/keygen.c:390
+#: g10/keygen.c:394
 #, c-format
 msgid "   (%d) ElGamal in a v3 packet\n"
 msgstr "   (%d) ElGamal in einem v3-Packet\n"
 
-#: g10/keygen.c:394
+#: g10/keygen.c:398
 msgid "keygen.algo"
 msgstr ""
 
-#: g10/keygen.c:394
+#: g10/keygen.c:398
 msgid "Your selection? "
 msgstr "Ihre Auswahl? "
 
-#: g10/keygen.c:420
+#: g10/keygen.c:424
 msgid "Invalid selection.\n"
 msgstr "Ungültige Auswahl.\n"
 
-#: g10/keygen.c:432
+#: g10/keygen.c:436
 #, c-format
 msgid ""
 "About to generate a new %s keypair.\n"
@@ -998,23 +1009,23 @@ msgstr ""
 "              standard Schlüssellänge ist 1024 Bits\n"
 "      größte sinnvolle Schlüssellänge ist 2048 Bits\n"
 
-#: g10/keygen.c:438
+#: g10/keygen.c:442
 msgid "keygen.size"
 msgstr ""
 
-#: g10/keygen.c:439
+#: g10/keygen.c:443
 msgid "What keysize do you want? (1024) "
 msgstr "Welche Schlüssellänge wünschen Sie? (1024)"
 
-#: g10/keygen.c:444
+#: g10/keygen.c:448
 msgid "DSA only allows keysizes from 512 to 1024\n"
 msgstr "DSA erlaubt nur Schlüssellängen von 512 bis 1024\n"
 
-#: g10/keygen.c:446
+#: g10/keygen.c:450
 msgid "keysize too small; 768 is smallest value allowed.\n"
 msgstr "zu kurz; 768 ist die kleinste mögliche Schlüssellänge.\n"
 
-#: g10/keygen.c:449
+#: g10/keygen.c:453
 #, fuzzy
 msgid ""
 "Keysizes larger than 2048 are not suggested because\n"
@@ -1023,15 +1034,15 @@ msgstr ""
 "Schlüssellängen größer als 2048 werden nicht empfohlen, da die Berechnungen "
 "dann WIRKLICH lange brauchen\n"
 
-#: g10/keygen.c:451
+#: g10/keygen.c:455
 msgid "keygen.size.huge.okay"
 msgstr ""
 
-#: g10/keygen.c:452
+#: g10/keygen.c:456
 msgid "Are you sure that you want this keysize? "
 msgstr "Sind Sie sicher, daß Sie diese Schlüssellänge wünschen? "
 
-#: g10/keygen.c:453
+#: g10/keygen.c:457
 msgid ""
 "Okay, but keep in mind that your monitor and keyboard radiation is also very "
 "vulnerable to attacks!\n"
@@ -1039,25 +1050,25 @@ msgstr ""
 "Gut, aber bitte denken Sie auch daran, daß Monitor und Tastatur Daten "
 "abstrahlen und diese leicht mitgelesen werden können.\n"
 
-#: g10/keygen.c:460
+#: g10/keygen.c:464
 msgid "keygen.size.large.okay"
 msgstr ""
 
-#: g10/keygen.c:461
+#: g10/keygen.c:465
 msgid "Do you really need such a large keysize? "
 msgstr "Brauchen Sie wirklich eine derartig große Schlüssellänge? "
 
-#: g10/keygen.c:467
+#: g10/keygen.c:471
 #, c-format
 msgid "Requested keysize is %u bits\n"
 msgstr "Die verlangte Schlüssellänge beträgt %u Bit\n"
 
-#: g10/keygen.c:470 g10/keygen.c:474
+#: g10/keygen.c:474 g10/keygen.c:478
 #, c-format
 msgid "rounded up to %u bits\n"
 msgstr "aufgerundet auf %u Bit\n"
 
-#: g10/keygen.c:486
+#: g10/keygen.c:491
 msgid ""
 "Please specify how long the key should be valid.\n"
 "         0 = key does not expire\n"
@@ -1073,37 +1084,37 @@ msgstr ""
 "      <n>m = Schlüssel verfällt nach n Monaten\n"
 "      <n>y = Schlüssel verfällt nach n Jahren\n"
 
-#: g10/keygen.c:501
+#: g10/keygen.c:506
 msgid "keygen.valid"
 msgstr ""
 
-#: g10/keygen.c:501
+#: g10/keygen.c:506
 msgid "Key is valid for? (0) "
 msgstr "Der Schlüssel bleibt wie lange gültig? (0) "
 
-#: g10/keygen.c:512
+#: g10/keygen.c:517
 msgid "invalid value\n"
 msgstr "Ungültiger Wert.\n"
 
-#: g10/keygen.c:517
+#: g10/keygen.c:522
 msgid "Key does not expire at all\n"
 msgstr "Der Schlüssel verfällt nie.\n"
 
 #. print the date when the key expires
-#: g10/keygen.c:520
+#: g10/keygen.c:528
 #, c-format
 msgid "Key expires at %s\n"
 msgstr "Der Schlüssel verfällt am %s\n"
 
-#: g10/keygen.c:525
+#: g10/keygen.c:532
 msgid "keygen.valid.okay"
 msgstr ""
 
-#: g10/keygen.c:526
+#: g10/keygen.c:533
 msgid "Is this correct (y/n)? "
 msgstr "Ist dies richtig? (j/n) "
 
-#: g10/keygen.c:554
+#: g10/keygen.c:561
 msgid ""
 "\n"
 "You need a User-ID to identify your key; the software constructs the user "
@@ -1119,51 +1130,51 @@ msgstr ""
 "    \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>\"\n"
 "\n"
 
-#: g10/keygen.c:565
+#: g10/keygen.c:572
 msgid "keygen.name"
 msgstr ""
 
-#: g10/keygen.c:565
+#: g10/keygen.c:572
 msgid "Real name: "
 msgstr "Ihr Name (\"Vorname Nachname\"): "
 
-#: g10/keygen.c:569
+#: g10/keygen.c:576
 msgid "Invalid character in name\n"
 msgstr "Ungültiges Zeichen im Namen\n"
 
-#: g10/keygen.c:571
+#: g10/keygen.c:578
 msgid "Name may not start with a digit\n"
 msgstr "Der Name darf nicht mit einer Ziffer beginnen.\n"
 
-#: g10/keygen.c:573
+#: g10/keygen.c:580
 msgid "Name must be at least 5 characters long\n"
 msgstr "Der Name muß min. 5 Zeichen lang sein.\n"
 
-#: g10/keygen.c:581
+#: g10/keygen.c:588
 msgid "keygen.email"
 msgstr ""
 
-#: g10/keygen.c:581
+#: g10/keygen.c:588
 msgid "Email address: "
 msgstr "E-Mail-Adresse: "
 
-#: g10/keygen.c:593
+#: g10/keygen.c:600
 msgid "Not a valid email address\n"
 msgstr "E-Mail-Adresse is ungültig\n"
 
-#: g10/keygen.c:601
+#: g10/keygen.c:608
 msgid "keygen.comment"
 msgstr ""
 
-#: g10/keygen.c:601
+#: g10/keygen.c:608
 msgid "Comment: "
 msgstr "Kommentar: "
 
-#: g10/keygen.c:607
+#: g10/keygen.c:614
 msgid "Invalid character in comment\n"
 msgstr "Ungültiges Zeichen im Kommentar.\n"
 
-#: g10/keygen.c:627
+#: g10/keygen.c:634
 #, c-format
 msgid ""
 "You selected this USER-ID:\n"
@@ -1174,21 +1185,21 @@ msgstr ""
 "    \"%s\"\n"
 "\n"
 
-#: g10/keygen.c:630
+#: g10/keygen.c:637
 msgid "NnCcEeOoQq"
 msgstr ""
 
-#: g10/keygen.c:639
+#: g10/keygen.c:646
 #, fuzzy
 msgid "keygen.userid.cmd"
 msgstr "Geben Sie bitte \"help\" ein."
 
-#: g10/keygen.c:640
+#: g10/keygen.c:647
 #, fuzzy
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgstr "Ändern: N=Name, C=Kommentar, E=E-Mail, O=Okay? "
 
-#: g10/keygen.c:687
+#: g10/keygen.c:694
 msgid ""
 "You need a Passphrase to protect your secret key.\n"
 "\n"
@@ -1196,11 +1207,11 @@ msgstr ""
 "Sie benötigen eine \"passphrase\", um den geheimen Schlüssel zu schützen.\n"
 "\n"
 
-#: g10/keyedit.c:388 g10/keygen.c:695
+#: g10/keyedit.c:389 g10/keygen.c:702
 msgid "passphrase not correctly repeated; try again.\n"
 msgstr "\"passphrase\" nicht richtig wiederholt; noch einmal.\n"
 
-#: g10/keygen.c:701
+#: g10/keygen.c:708
 msgid ""
 "You don't want a passphrase - this is probably a *bad* idea!\n"
 "I will do it anyway.  You can change your passphrase at any time,\n"
@@ -1213,7 +1224,7 @@ msgstr ""
 "aufrufen.\n"
 "\n"
 
-#: g10/keygen.c:722
+#: g10/keygen.c:729
 msgid ""
 "We need to generate a lot of random bytes. It is a good idea to perform\n"
 "some other action (work in another window, move the mouse, utilize the\n"
@@ -1224,35 +1235,35 @@ msgstr ""
 "unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas\n"
 "tippen oder irgendwelche anderen Programme benutzen.\n"
 
-#: g10/keygen.c:789
+#: g10/keygen.c:799
 msgid "Key generation can only be used in interactive mode\n"
 msgstr ""
 "Die Schlüsselerzeugung kann nur im interaktiven Modus benutzt werden.\n"
 
-#: g10/keygen.c:797
+#: g10/keygen.c:807
 msgid "DSA keypair will have 1024 bits.\n"
 msgstr "Der DSA Schlüssel wird 1024 Bits haben.\n"
 
-#: g10/keygen.c:803
+#: g10/keygen.c:813
 #, fuzzy
 msgid "Key generation cancelled.\n"
 msgstr "Schlüsselerzeugung fehlgeschlagen: %s\n"
 
-#: g10/keygen.c:813
+#: g10/keygen.c:823
 #, c-format
 msgid "writing public certificate to '%s'\n"
 msgstr "schreiben des öffentlichen Schlüssels nach '%s'\n"
 
-#: g10/keygen.c:814
+#: g10/keygen.c:824
 #, c-format
 msgid "writing secret certificate to '%s'\n"
 msgstr "schreiben des geheimen Schlüssels nach '%s'\n"
 
-#: g10/keygen.c:891
+#: g10/keygen.c:901
 msgid "public and secret key created and signed.\n"
 msgstr "Öffentlichen und geheimen Schlüssel erzeugt und signiert.\n"
 
-#: g10/keygen.c:893
+#: g10/keygen.c:903
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--add-key\" to generate a secondary key for this purpose.\n"
@@ -1261,16 +1272,16 @@ msgstr ""
 "werden kann.  Sie können aber mit dem Kommando \"--add-key\" einen\n"
 "Sekundärschlüssel zu diesem Schlüssel hinzufügen.\n"
 
-#: g10/keygen.c:907 g10/keygen.c:991
+#: g10/keygen.c:917 g10/keygen.c:1002
 #, c-format
 msgid "Key generation failed: %s\n"
 msgstr "Schlüsselerzeugung fehlgeschlagen: %s\n"
 
-#: g10/keygen.c:968
+#: g10/keygen.c:979
 msgid "keygen.sub.okay"
 msgstr ""
 
-#: g10/keygen.c:969
+#: g10/keygen.c:980
 #, fuzzy
 msgid "Really create? "
 msgstr "Ihr Name (\"Vorname Nachname\"): "
@@ -1285,323 +1296,323 @@ msgstr "%s: kann nicht ge
 msgid "error creating passphrase: %s\n"
 msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
 
-#: g10/encode.c:152 g10/encode.c:264
+#: g10/encode.c:154 g10/encode.c:267
 #, c-format
 msgid "%s: warning: empty file\n"
 msgstr "%s: Achtung: Leere Datei.\n"
 
-#: g10/encode.c:219
+#: g10/encode.c:221
 #, c-format
 msgid "reading from '%s'\n"
 msgstr "Lesen von '%s'\n"
 
-#: g10/encode.c:392
+#: g10/encode.c:395
 #, c-format
 msgid "%s encrypted for: %s\n"
 msgstr "%s verschlüsselt für: %s\n"
 
-#: g10/getkey.c:884
+#: g10/getkey.c:854
 #, c-format
 msgid "using secondary key %08lX instead of primary key %08lX\n"
 msgstr ""
 
-#: g10/import.c:105 g10/trustdb.c:1389
+#: g10/import.c:106 g10/trustdb.c:1100
 #, c-format
 msgid "can't open file: %s\n"
 msgstr "Kann die Datei nicht öffnen: %s\n"
 
-#: g10/import.c:121
+#: g10/import.c:122
 #, c-format
 msgid "skipping block of type %d\n"
 msgstr "überspringe den Block vom Typ %d\n"
 
-#: g10/import.c:131 g10/trustdb.c:1464
+#: g10/import.c:132 g10/trustdb.c:1175
 #, c-format
 msgid "read error: %s\n"
 msgstr "Lesefehler: %s\n"
 
-#: g10/import.c:272 g10/import.c:445
+#: g10/import.c:273 g10/import.c:446
 #, c-format
 msgid "key %08lX: no user id\n"
 msgstr "Schlüssel %08lX: Keine User-ID\n"
 
-#: g10/import.c:282
+#: g10/import.c:283
 #, c-format
 msgid "key %08lX: no valid user ids\n"
 msgstr "Schlüssel %08lX: Keine gültigen User-IDs\n"
 
-#: g10/import.c:284
+#: g10/import.c:285
 msgid "this may be caused by a missing self-signature\n"
 msgstr ""
 
-#: g10/import.c:293 g10/import.c:511
+#: g10/import.c:294 g10/import.c:512
 #, c-format
 msgid "key %08lX: public key not found: %s\n"
 msgstr "Schlüssel %08lX: Öffentlicher Schlüssel nicht gefunden: %s\n"
 
-#: g10/import.c:299
+#: g10/import.c:300
 msgid "no default public keyring\n"
 msgstr "Kein voreingestellter öffentlicher Schlüsselring\n"
 
-#: g10/import.c:303
+#: g10/import.c:304
 #, c-format
 msgid "writing to '%s'\n"
 msgstr "Schreiben nach '%s'\n"
 
-#: g10/import.c:307 g10/import.c:362 g10/import.c:565
+#: g10/import.c:308 g10/import.c:363 g10/import.c:566
 #, c-format
 msgid "can't lock public keyring: %s\n"
 msgstr "kann öffentlichen Schlüsselring nicht sperren: %s\n"
 
-#: g10/import.c:310
+#: g10/import.c:311
 #, c-format
 msgid "can't write to keyring: %s\n"
 msgstr "kann Schlüsselring nicht schreiben: %s\n"
 
 #. we are ready
-#: g10/import.c:313
+#: g10/import.c:314
 #, c-format
 msgid "key %08lX: public key imported\n"
 msgstr "Schlüssel %08lX: Öffentlicher Schlüssel importiert\n"
 
-#: g10/import.c:322
+#: g10/import.c:323
 #, c-format
 msgid "key %08lX: doesn't match our copy\n"
 msgstr "Schlüssel %08lX: Stimmt nicht mit unserer Kopie überein\n"
 
-#: g10/import.c:335 g10/import.c:520
+#: g10/import.c:336 g10/import.c:521
 #, c-format
 msgid "key %08lX: can't locate original keyblock: %s\n"
 msgstr ""
 
-#: g10/import.c:342 g10/import.c:527
+#: g10/import.c:343 g10/import.c:528
 #, c-format
 msgid "key %08lX: can't read original keyblock: %s\n"
 msgstr ""
 
-#: g10/import.c:359 g10/import.c:460 g10/import.c:562
+#: g10/import.c:360 g10/import.c:461 g10/import.c:563
 msgid "writing keyblock\n"
 msgstr "schreiben des Schlüsselblocks\n"
 
-#: g10/import.c:365 g10/import.c:568
+#: g10/import.c:366 g10/import.c:569
 #, c-format
 msgid "can't write keyblock: %s\n"
 msgstr "Der Schlüsselblock kann nicht geschrieben werden: %s\n"
 
-#: g10/import.c:369
+#: g10/import.c:370
 #, c-format
 msgid "key %08lX: 1 new user-id\n"
 msgstr "Schlüssel %08lX: 1 neue User-ID\n"
 
-#: g10/import.c:372
+#: g10/import.c:373
 #, c-format
 msgid "key %08lX: %d new user-ids\n"
 msgstr "Schlüssel %08lX: %d neue User-IDs\n"
 
-#: g10/import.c:375
+#: g10/import.c:376
 #, c-format
 msgid "key %08lX: 1 new signature\n"
 msgstr "Schlüssel %08lX: 1 neue Signatur\n"
 
-#: g10/import.c:378
+#: g10/import.c:379
 #, c-format
 msgid "key %08lX: %d new signatures\n"
 msgstr "Schlüssel %08lX: %d neue Signaturen\n"
 
-#: g10/import.c:381
+#: g10/import.c:382
 #, c-format
 msgid "key %08lX: 1 new subkey\n"
 msgstr "Schlüssel %08lX: 1 neuer Sekundärschlüssel\n"
 
-#: g10/import.c:384
+#: g10/import.c:385
 #, c-format
 msgid "key %08lX: %d new subkeys\n"
 msgstr "Schlüssel %08lX: %d neue Sekundärschlüssel\n"
 
-#: g10/import.c:388
+#: g10/import.c:389
 #, c-format
 msgid "key %08lX: not changed\n"
 msgstr "Schlüssel %08lX: Nicht geändert\n"
 
-#: g10/import.c:463
+#: g10/import.c:464
 #, c-format
 msgid "can't lock secret keyring: %s\n"
 msgstr "kann geheimen Schlüsselring nicht sperren: %s\n"
 
-#: g10/import.c:466
+#: g10/import.c:467
 #, fuzzy, c-format
 msgid "can't write keyring: %s\n"
 msgstr "kann Schlüsselring nicht schreiben: %s\n"
 
 #. we are ready
-#: g10/import.c:469
+#: g10/import.c:470
 #, c-format
 msgid "key %08lX: secret key imported\n"
 msgstr "Schlüssel %08lX: Privater Schlüssel importiert\n"
 
 #. we can't merge secret keys
-#: g10/import.c:472
+#: g10/import.c:473
 #, c-format
 msgid "key %08lX: already in secret keyring\n"
 msgstr "Schlüssel %08lX: Ist bereits im privaten Schlüsselring\n"
 
-#: g10/import.c:476
+#: g10/import.c:477
 #, c-format
 msgid "key %08lX: secret key not found: %s\n"
 msgstr "Schlüssel %08lX: Privater Schlüssel nicht gefunden: %s\n"
 
-#: g10/import.c:505
+#: g10/import.c:506
 #, c-format
 msgid "key %08lX: no public key - can't apply revocation certificate\n"
 msgstr ""
 "Schlüssel %08lX: Kein öffentlicher Schlüssel - der Schlüsselwiderruf kann "
 "nicht angebracht werden\n"
 
-#: g10/import.c:538
+#: g10/import.c:539
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
 msgstr "Schlüssel %08lX: Ungültiges Widerrufzertifikat: %s - zurückgewiesen\n"
 
 #. we are ready
-#: g10/import.c:571
+#: g10/import.c:572
 #, c-format
 msgid "key %08lX: revocation certificate imported\n"
 msgstr "Schlüssel %08lX: Widerruofzertifikat importiert\n"
 
-#: g10/import.c:601
+#: g10/import.c:602
 #, c-format
 msgid "key %08lX: no user-id for signature\n"
 msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n"
 
-#: g10/import.c:608
+#: g10/import.c:609
 #, c-format
 msgid "key %08lX: unsupported public key algorithm\n"
 msgstr "Schlüssel %08lX: Public-Key-Algorithmus wird nicht unterstützt\n"
 
-#: g10/import.c:609
+#: g10/import.c:610
 #, c-format
 msgid "key %08lX: invalid self-signature\n"
 msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
 
-#: g10/import.c:638
+#: g10/import.c:639
 #, c-format
 msgid "key %08lX: skipped userid '"
 msgstr "Schlüssel %08lX: übergehe User-ID '"
 
-#: g10/import.c:661
+#: g10/import.c:662
 #, c-format
 msgid "key %08lX: revocation certificate at wrong place - skipped\n"
 msgstr "Schlüssel %08lX: Widerrufzertifikat an falschem Platz - übergangen\n"
 
-#: g10/import.c:669
+#: g10/import.c:670
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
 msgstr "Schlüssel %08lX: Ungültiges Widerrufzertifikat: %s - übergangen\n"
 
-#: g10/import.c:731
+#: g10/import.c:732
 #, c-format
 msgid "key %08lX: revocation certificate added\n"
 msgstr "Schlüssel %08lX: Widerrufzertifikat hinzugefügt\n"
 
-#: g10/import.c:794 g10/import.c:830
+#: g10/import.c:795 g10/import.c:831
 #, c-format
 msgid "key %08lX: our copy has no self-signature\n"
 msgstr "Schlüssel %08lX: Unser Kopie hat keine Selbst-Signatur\n"
 
-#: g10/keyedit.c:80
+#: g10/keyedit.c:81
 #, c-format
 msgid "%s: user not found\n"
 msgstr "%s: Benutzer nicht gefunden\n"
 
-#: g10/keyedit.c:163
+#: g10/keyedit.c:164
 #, fuzzy
 msgid "[self-signature]"
 msgstr "Selbst-Signatur übergangen\n"
 
-#: g10/keyedit.c:181
+#: g10/keyedit.c:182
 #, fuzzy
 msgid "1 bad signature\n"
 msgstr "%d schlechte Signaturen\n"
 
-#: g10/keyedit.c:183
+#: g10/keyedit.c:184
 #, c-format
 msgid "%d bad signatures\n"
 msgstr "%d schlechte Signaturen\n"
 
-#: g10/keyedit.c:185
+#: g10/keyedit.c:186
 #, fuzzy
 msgid "1 signature not checked due to a missing key\n"
 msgstr "%s Signaturen aufgrund von Fehlern nicht geprüft\n"
 
-#: g10/keyedit.c:187
+#: g10/keyedit.c:188
 #, fuzzy, c-format
 msgid "%d signatures not checked due to missing keys\n"
 msgstr "%s Signaturen aufgrund von Fehlern nicht geprüft\n"
 
-#: g10/keyedit.c:189
+#: g10/keyedit.c:190
 #, fuzzy
 msgid "1 signature not checked due to an error\n"
 msgstr "%s Signaturen aufgrund von Fehlern nicht geprüft\n"
 
-#: g10/keyedit.c:191
+#: g10/keyedit.c:192
 #, c-format
 msgid "%d signatures not checked due to errors\n"
 msgstr "%s Signaturen aufgrund von Fehlern nicht geprüft\n"
 
-#: g10/keyedit.c:193
+#: g10/keyedit.c:194
 #, fuzzy
 msgid "1 user id without valid self-signature detected\n"
 msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
 
-#: g10/keyedit.c:195
+#: g10/keyedit.c:196
 #, c-format
 msgid "%d user ids without valid self-signatures detected\n"
 msgstr ""
 
-#: g10/keyedit.c:257
+#: g10/keyedit.c:258
 #, fuzzy, c-format
 msgid "Already signed by key %08lX\n"
 msgstr "Ist bereits mit Schlüssel %08lX signiert.\n"
 
-#: g10/keyedit.c:265
+#: g10/keyedit.c:266
 #, fuzzy, c-format
 msgid "Nothing to sign with key %08lX\n"
 msgstr "Nichts zu signieren.\n"
 
-#: g10/keyedit.c:274
+#: g10/keyedit.c:275
 #, fuzzy
 msgid ""
 "Are you really sure that you want to sign this key\n"
 "with your key: \""
 msgstr "Sind Sie wirklich sicher, daß Sie diesen Schlüssel signieren wollen:\n"
 
-#: g10/keyedit.c:281
+#: g10/keyedit.c:282
 msgid "sign_uid.okay"
 msgstr ""
 
-#: g10/keyedit.c:281
+#: g10/keyedit.c:282
 msgid "Really sign? "
 msgstr ""
 
-#: g10/keyedit.c:302
+#: g10/keyedit.c:303
 #, fuzzy, c-format
 msgid "signing failed: %s\n"
 msgstr "En-Armor fehlgeschlagen: %s\n"
 
-#: g10/keyedit.c:355
+#: g10/keyedit.c:356
 msgid "This key is not protected.\n"
 msgstr "Dieser Schlüssel ist nicht geschützt.\n"
 
-#: g10/keyedit.c:358
+#: g10/keyedit.c:359
 msgid "Key is protected.\n"
 msgstr "Schlüssel ist geschützt.\n"
 
-#: g10/keyedit.c:375
+#: g10/keyedit.c:376
 #, c-format
 msgid "Can't edit this key: %s\n"
 msgstr "Dieser Schlüssel kann nicht editiert werden: %s\n"
 
-#: g10/keyedit.c:380
+#: g10/keyedit.c:381
 msgid ""
 "Enter the new passphrase for this secret key.\n"
 "\n"
@@ -1609,7 +1620,7 @@ msgstr ""
 "Geben Sie die neue \"passphrase\" für diesen privaten Schlüssel ein.\n"
 "\n"
 
-#: g10/keyedit.c:392
+#: g10/keyedit.c:393
 msgid ""
 "You don't want a passphrase - this is probably a *bad* idea!\n"
 "\n"
@@ -1618,308 +1629,338 @@ msgstr ""
 "Idee!\n"
 "\n"
 
-#: g10/keyedit.c:394
+#: g10/keyedit.c:395
 msgid "change_passwd.empty.okay"
 msgstr ""
 
-#: g10/keyedit.c:395
+#: g10/keyedit.c:396
 msgid "Do you really want to do this? "
 msgstr "Möchten Sie dies wirklich tun? "
 
-#: g10/keyedit.c:450
+#: g10/keyedit.c:489
 msgid "quit"
 msgstr ""
 
-#: g10/keyedit.c:450
+#: g10/keyedit.c:489
 msgid "quit this menu"
 msgstr ""
 
-#: g10/keyedit.c:451
+#: g10/keyedit.c:490
 msgid "q"
 msgstr ""
 
-#: g10/keyedit.c:452
+#: g10/keyedit.c:491
 msgid "save"
 msgstr ""
 
-#: g10/keyedit.c:452
+#: g10/keyedit.c:491
 msgid "save and quit"
 msgstr ""
 
-#: g10/keyedit.c:453
+#: g10/keyedit.c:492
 msgid "help"
 msgstr ""
 
-#: g10/keyedit.c:453
+#: g10/keyedit.c:492
 msgid "show this help"
 msgstr ""
 
-#: g10/keyedit.c:455
+#: g10/keyedit.c:494
 msgid "fpr"
 msgstr ""
 
-#: g10/keyedit.c:455
+#: g10/keyedit.c:494
 #, fuzzy
 msgid "show fingerprint"
 msgstr "Liste der Schlüssel und ihrer \"Fingerabdrücke\""
 
-#: g10/keyedit.c:456
+#: g10/keyedit.c:495
 #, fuzzy
 msgid "list"
 msgstr "Liste der Schlüssel"
 
-#: g10/keyedit.c:456
+#: g10/keyedit.c:495
 #, fuzzy
 msgid "list key and user ids"
 msgstr "Liste der Schlüssel und ihrer \"Fingerabdrücke\""
 
-#: g10/keyedit.c:457
+#: g10/keyedit.c:496
 msgid "l"
 msgstr ""
 
-#: g10/keyedit.c:458
+#: g10/keyedit.c:497
 msgid "uid"
 msgstr ""
 
-#: g10/keyedit.c:458
+#: g10/keyedit.c:497
 msgid "select user id N"
 msgstr ""
 
-#: g10/keyedit.c:459
+#: g10/keyedit.c:498
 msgid "key"
 msgstr ""
 
-#: g10/keyedit.c:459
+#: g10/keyedit.c:498
 msgid "select secondary key N"
 msgstr ""
 
-#: g10/keyedit.c:460
+#: g10/keyedit.c:499
 msgid "check"
 msgstr ""
 
-#: g10/keyedit.c:460
+#: g10/keyedit.c:499
 #, fuzzy
 msgid "list signatures"
 msgstr "Liste der Schlüssel und ihrer Signaturen"
 
-#: g10/keyedit.c:461
+#: g10/keyedit.c:500
 msgid "c"
 msgstr ""
 
-#: g10/keyedit.c:462
+#: g10/keyedit.c:501
 msgid "sign"
 msgstr ""
 
-#: g10/keyedit.c:462
+#: g10/keyedit.c:501
 #, fuzzy
 msgid "sign the key"
 msgstr "Signieren? "
 
-#: g10/keyedit.c:463
+#: g10/keyedit.c:502
 msgid "s"
 msgstr ""
 
-#: g10/keyedit.c:464
+#: g10/keyedit.c:503
 msgid "debug"
 msgstr ""
 
-#: g10/keyedit.c:465
+#: g10/keyedit.c:504
 msgid "adduid"
 msgstr ""
 
-#: g10/keyedit.c:465
+#: g10/keyedit.c:504
 msgid "add a user id"
 msgstr ""
 
-#: g10/keyedit.c:466
+#: g10/keyedit.c:505
 msgid "deluid"
 msgstr ""
 
-#: g10/keyedit.c:466
+#: g10/keyedit.c:505
 #, fuzzy
 msgid "delete user id"
 msgstr "--delete-key Benutzername"
 
-#: g10/keyedit.c:467
+#: g10/keyedit.c:506
 msgid "addkey"
 msgstr ""
 
-#: g10/keyedit.c:467
+#: g10/keyedit.c:506
 #, fuzzy
 msgid "add a secondary key"
 msgstr "Einen Sekundärschlüssel dem Primärschlüssel hinzufügen"
 
-#: g10/keyedit.c:468
+#: g10/keyedit.c:507
 msgid "delkey"
 msgstr ""
 
-#: g10/keyedit.c:468
+#: g10/keyedit.c:507
 msgid "delete a secondary key"
 msgstr ""
 
-#: g10/keyedit.c:469
+#: g10/keyedit.c:508
+msgid "expire"
+msgstr ""
+
+#: g10/keyedit.c:508
+#, fuzzy
+msgid "change the expire date"
+msgstr "Die \"Passphrase\" des geheimen Schlüssels ändern"
+
+#: g10/keyedit.c:509
 msgid "toggle"
 msgstr ""
 
-#: g10/keyedit.c:469
+#: g10/keyedit.c:509
 msgid "toggle between secret and public key listing"
 msgstr ""
 
-#: g10/keyedit.c:471
+#: g10/keyedit.c:511
 msgid "t"
 msgstr ""
 
-#: g10/keyedit.c:472
+#: g10/keyedit.c:512
 msgid "pref"
 msgstr ""
 
-#: g10/keyedit.c:472
+#: g10/keyedit.c:512
 #, fuzzy
 msgid "list preferences"
 msgstr "Liste der geheimen Schlüssel"
 
-#: g10/keyedit.c:473
+#: g10/keyedit.c:513
 msgid "passwd"
 msgstr ""
 
-#: g10/keyedit.c:473
+#: g10/keyedit.c:513
 #, fuzzy
 msgid "change the passphrase"
 msgstr "Die \"Passphrase\" des geheimen Schlüssels ändern"
 
-#: g10/keyedit.c:474
+#: g10/keyedit.c:514
 msgid "trust"
 msgstr ""
 
-#: g10/keyedit.c:474
+#: g10/keyedit.c:514
 msgid "change the ownertrust"
 msgstr ""
 
-#: g10/keyedit.c:492
+#: g10/keyedit.c:532
 msgid "can't do that in batchmode\n"
 msgstr "Dies kann im Batchmodus nicht durchgeführt werden.\n"
 
 #. check that they match
 #. FIXME: check that they both match
-#: g10/keyedit.c:515
+#: g10/keyedit.c:559
 #, fuzzy
 msgid "Secret key is available.\n"
 msgstr "Öffentlicher Schlüssel ist nicht verfügbar.\n"
 
-#: g10/keyedit.c:531
+#: g10/keyedit.c:575
 msgid "keyedit.cmd"
 msgstr "Geben Sie bitte \"help\" ein."
 
-#: g10/keyedit.c:531
+#: g10/keyedit.c:575
 #, fuzzy
 msgid "Command> "
 msgstr ""
 "@Kommandos:\n"
 " "
 
-#: g10/keyedit.c:556
+#: g10/keyedit.c:600
 #, fuzzy
 msgid "Need the secret key to to this.\n"
 msgstr "Als geheimen Schlüsselring mitbenutzen"
 
-#: g10/keyedit.c:575
+#: g10/keyedit.c:619
 msgid "keyedit.save.okay"
 msgstr ""
 
-#: g10/keyedit.c:576
+#: g10/keyedit.c:620
 msgid "Save changes? "
 msgstr ""
 
-#: g10/keyedit.c:578
+#: g10/keyedit.c:622
 #, fuzzy
 msgid "keyedit.cancel.okay"
 msgstr "Geben Sie bitte \"help\" ein."
 
-#: g10/keyedit.c:579
+#: g10/keyedit.c:623
 msgid "Quit without saving? "
 msgstr ""
 
-#: g10/keyedit.c:589
+#: g10/keyedit.c:633
 #, fuzzy, c-format
 msgid "update failed: %s\n"
 msgstr "De-Armor fehlgeschlagen: %s\n"
 
-#: g10/keyedit.c:596
+#: g10/keyedit.c:640
 #, fuzzy, c-format
 msgid "update secret failed: %s\n"
 msgstr "Enschlüsselung fehlgeschlagen: %s\n"
 
-#: g10/keyedit.c:603
+#: g10/keyedit.c:647
 msgid "Key not changed so no update needed.\n"
 msgstr ""
 
-#: g10/keyedit.c:606 g10/keyedit.c:664
+#: g10/keyedit.c:650 g10/keyedit.c:708
 #, fuzzy, c-format
 msgid "update of trust db failed: %s\n"
 msgstr "Enschlüsselung fehlgeschlagen: %s\n"
 
-#: g10/keyedit.c:637
+#: g10/keyedit.c:681
 msgid "keyedit.sign_all.okay"
 msgstr ""
 
-#: g10/keyedit.c:638
+#: g10/keyedit.c:682
 msgid "Really sign all user ids? "
 msgstr ""
 
-#: g10/keyedit.c:639
+#: g10/keyedit.c:683
 msgid "Hint: Select the user ids to sign\n"
 msgstr ""
 
-#: g10/keyedit.c:675
+#: g10/keyedit.c:719
 msgid "You must select at least one user id.\n"
 msgstr ""
 
-#: g10/keyedit.c:677
+#: g10/keyedit.c:721
 msgid "You can't delete the last user id!\n"
 msgstr ""
 
-#: g10/keyedit.c:679
+#: g10/keyedit.c:723
 msgid "keyedit.remove.uid.okay"
 msgstr ""
 
-#: g10/keyedit.c:680
+#: g10/keyedit.c:724
 #, fuzzy
 msgid "Really remove all selected user ids? "
 msgstr "Möchten Sie die ausgewählten Signaturen wirklich entfernen? "
 
-#: g10/keyedit.c:681
+#: g10/keyedit.c:725
 #, fuzzy
 msgid "Really remove this user id? "
 msgstr "Die Signatur entfernen? "
 
-#: g10/keyedit.c:704
+#: g10/keyedit.c:748
 msgid "You must select at least one key.\n"
 msgstr ""
 
-#: g10/keyedit.c:706
+#: g10/keyedit.c:750
 msgid "keyedit.remove.subkey.okay"
 msgstr ""
 
-#: g10/keyedit.c:708
+#: g10/keyedit.c:752
 #, fuzzy
 msgid "Do you really want to delete the selected keys? "
 msgstr "Möchten Sie die ausgewählten Signaturen wirklich entfernen? "
 
-#: g10/keyedit.c:709
+#: g10/keyedit.c:753
 #, fuzzy
 msgid "Do you really want to delete this key? "
 msgstr "Möchten Sie dies wirklich tun? "
 
-#: g10/keyedit.c:746
+#: g10/keyedit.c:800
 msgid "Invalid command  (try \"help\")\n"
 msgstr ""
 
-#: g10/keyedit.c:1129
+#: g10/keyedit.c:1178
+msgid "Please remove selections from the secret keys.\n"
+msgstr ""
+
+#: g10/keyedit.c:1184
+#, fuzzy
+msgid "Please select at most one secondary key.\n"
+msgstr "Bitte wählen Sie, welche Art von Schlüssel Sie möchten:\n"
+
+#: g10/keyedit.c:1188
+msgid "Changing exiration time for a secondary key.\n"
+msgstr ""
+
+#: g10/keyedit.c:1190
+msgid "Changing exiration time for the primary key.\n"
+msgstr ""
+
+#: g10/keyedit.c:1234
+msgid "No corresponding signature in secret ring\n"
+msgstr ""
+
+#: g10/keyedit.c:1294
 #, c-format
 msgid "No user id with index %d\n"
 msgstr ""
 
-#: g10/keyedit.c:1174
+#: g10/keyedit.c:1339
 #, c-format
 msgid "No secondary key with index %d\n"
 msgstr ""
@@ -1938,20 +1979,20 @@ msgstr "Enschl
 msgid "note: sender requested \"for-your-eyes-only\"\n"
 msgstr ""
 
-#: g10/mainproc.c:846
+#: g10/mainproc.c:848
 #, c-format
 msgid "Signature made %.*s using %s key ID %08lX\n"
 msgstr "Signatur am %.*s mit %s Schlüssel %08lX erzeugt\n"
 
-#: g10/mainproc.c:854
+#: g10/mainproc.c:856
 msgid "BAD signature from \""
 msgstr "FALSCHE Signatur von \""
 
-#: g10/mainproc.c:855
+#: g10/mainproc.c:857
 msgid "Good signature from \""
 msgstr "Gültige Signatur von \""
 
-#: g10/mainproc.c:866
+#: g10/mainproc.c:868
 #, c-format
 msgid "Can't check signature: %s\n"
 msgstr "Signatur kann nicht geprüft werden: %s\n"
@@ -2035,12 +2076,16 @@ msgstr "Ung
 
 #: g10/seckey-cert.c:215
 msgid "Warning: Weak key detected - please change passphrase again.\n"
-msgstr "Warnung: Unsicherer Schlüssel entdeckt - bitte die \"Passphrase\" nochmal eingeben.\n"
+msgstr ""
+"Warnung: Unsicherer Schlüssel entdeckt - bitte die \"Passphrase\" nochmal "
+"eingeben.\n"
 
 #: g10/sig-check.c:155
 msgid ""
 "this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
-msgstr "Dieser durch PGP erzeugte ElGamal-Schlüssel ist für Signaturen NICHT sicher genug!\n"
+msgstr ""
+"Dieser durch PGP erzeugte ElGamal-Schlüssel ist für Signaturen NICHT sicher "
+"genug!\n"
 
 #: g10/sig-check.c:165
 msgid "public key created in future (time warp or clock problem)\n"
@@ -2048,88 +2093,200 @@ msgstr ""
 "Öffentlicher Schlüssel wurde in der Zukunft erzeugt (Zeitreise oder Uhren "
 "stimmen nicht überein)\n"
 
-#: g10/sig-check.c:171
+#: g10/sig-check.c:170
 #, c-format
 msgid "warning: signature key expired %s\n"
 msgstr "Achtung: Schlüssel der Signatur ist verfallen am %s.\n"
 
-#: g10/trustdb.c:127
+#: g10/trustdb.c:122
 msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n"
-msgstr "Die \"Trust\"-Datenbank ist beschädigt; verwenden Sie \"gpgm --fix-trust-db\".\n"
+msgstr ""
+"Die \"Trust\"-Datenbank ist beschädigt; verwenden Sie \"gpgm "
+"--fix-trust-db\".\n"
 
-#: g10/trustdb.c:406
+#: g10/trustdb.c:389
 #, c-format
 msgid "chained sigrec %lu has a wrong owner\n"
 msgstr "Verketteter Signatursatz %lu hat einen falschen Besitzer\n"
 
-#: g10/trustdb.c:453
-#, c-format
-msgid "key %08lX: secret key without public key\n"
+#: g10/trustdb.c:436
+#, fuzzy, c-format
+msgid "key %08lX: secret key without public key - skipped\n"
 msgstr "Schlüssel %08lX: geheimer, aber kein öffentlicher Schlüssel.\n"
 
-#: g10/trustdb.c:458
+#: g10/trustdb.c:442
 #, c-format
 msgid "key %08lX: secret and public key don't match\n"
 msgstr ""
 "Schlüssel %08lX: geheimer und öffentlicher Schlüssel passen nicht zusammen.\n"
 
-#: g10/trustdb.c:469
+#: g10/trustdb.c:452
 #, fuzzy, c-format
 msgid "key %08lX: can't put it into the trustdb\n"
 msgstr "Schlüssel %08lX.%lu: in \"trustdb\" eingefügt\n"
 
-#: g10/trustdb.c:475
+#: g10/trustdb.c:458
 #, fuzzy, c-format
 msgid "key %08lX: query record failed\n"
 msgstr "Schlüssel %08lX: Keine User-ID\n"
 
-#: g10/trustdb.c:484
-#, c-format
-msgid "key %08lX: already in ultikey_table\n"
-msgstr "Schlüssel %08lX: bereits in der Tabelle der private Schlüssel\n"
-
-#: g10/trustdb.c:491
+#: g10/trustdb.c:467
 #, fuzzy, c-format
-msgid "enum_secret_keys failed: %s\n"
-msgstr "En-Armor fehlgeschlagen: %s\n"
+msgid "key %08lX: already in secret key table\n"
+msgstr "Schlüssel %08lX: Ist bereits im privaten Schlüsselring\n"
 
-#: g10/trustdb.c:964
+#: g10/trustdb.c:470
 #, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X: no public key for signature %08lX\n"
-msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n"
+msgid "key %08lX: accepted as secret key.\n"
+msgstr "Schlüssel %08lX: Ist bereits im privaten Schlüsselring\n"
 
-#: g10/trustdb.c:971
+#: g10/trustdb.c:477
 #, fuzzy, c-format
-msgid "key %08lX.%lu, uid %02X%02X: invalid %ssignature: %s\n"
-msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+msgid "enum_secret_keys failed: %s\n"
+msgstr "En-Armor fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:1658
+#: g10/trustdb.c:1428
 #, fuzzy, c-format
 msgid "key %08lX: insert trust record failed: %s\n"
 msgstr "Schlüssel %08lX.%lu: Vertrauensprüfung fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:1662
+#: g10/trustdb.c:1432
 #, c-format
 msgid "key %08lX.%lu: inserted into trustdb\n"
 msgstr "Schlüssel %08lX.%lu: in \"trustdb\" eingefügt\n"
 
-#: g10/trustdb.c:1670
+#: g10/trustdb.c:1440
 #, c-format
 msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
 msgstr ""
 "Schlüssel %08lX.%lu: wurde in der Zukunft erzeugt (Zeitreise oder Uhren "
 "stimmen nicht überein)\n"
 
-#: g10/trustdb.c:1678
+#: g10/trustdb.c:1447
 #, c-format
 msgid "key %08lX.%lu: expired at %s\n"
 msgstr "Schlüssel %08lX.%lu: verfallen am %s\n"
 
-#: g10/trustdb.c:1687
+#: g10/trustdb.c:1455
 #, c-format
 msgid "key %08lX.%lu: trust check failed: %s\n"
 msgstr "Schlüssel %08lX.%lu: Vertrauensprüfung fehlgeschlagen: %s\n"
 
+#: g10/trustdb.c:1718
+#, c-format
+msgid "note: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
+msgstr ""
+
+#: g10/trustdb.c:1722
+#, c-format
+msgid "note: sig rec %lu[%d] in hintlist of %lu but not marked\n"
+msgstr ""
+
+#. we need the dir record
+#: g10/trustdb.c:1729
+#, c-format
+msgid "sig rec %lu[%d] in hintlist of %u does not point to a dir record\n"
+msgstr ""
+
+#: g10/trustdb.c:1735
+#, c-format
+msgid "lid %lu: no primary key\n"
+msgstr ""
+
+#: g10/trustdb.c:1764
+#, fuzzy, c-format
+msgid "lid %lu: user id not found in keyblock\n"
+msgstr "%s: Benutzer nicht gefunden\n"
+
+#: g10/trustdb.c:1771
+#, fuzzy, c-format
+msgid "lid %lu: self-signature in hintlist\n"
+msgstr "build_sigrecs: Selbst-Signatur fehlt\n"
+
+#: g10/trustdb.c:1776
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (3)\n"
+msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+
+#: g10/trustdb.c:1783
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: very strange: no public key\n"
+msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n"
+
+#: g10/trustdb.c:1790 g10/trustdb.c:2225 g10/trustdb.c:2297
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: invalid signature: %s\n"
+msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+
+#: g10/trustdb.c:1835
+#, c-format
+msgid "hintlist %lu[%d] of %lu does not point to a dir record\n"
+msgstr ""
+
+#: g10/trustdb.c:1841
+#, c-format
+msgid "lid %lu does not have a key\n"
+msgstr ""
+
+#: g10/trustdb.c:1851
+#, fuzzy, c-format
+msgid "lid %lu: can't get keyblock: %s\n"
+msgstr "Der Schlüsselblock kann nicht geschrieben werden: %s\n"
+
+#: g10/trustdb.c:2096
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X: good self-signature\n"
+msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+
+#: g10/trustdb.c:2188
+#, fuzzy, c-format
+msgid ""
+"key %08lX.%lu, uid %02X%02X, sig %08lX: duplicated signature - deleted\n"
+msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+
+#: g10/trustdb.c:2211
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (1)\n"
+msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+
+#: g10/trustdb.c:2218
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: weird: no public key\n"
+msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n"
+
+#: g10/trustdb.c:2240
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X: has shadow dir %lu but not yet marked.\n"
+msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+
+#: g10/trustdb.c:2279
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (2)\n"
+msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n"
+
+#: g10/trustdb.c:2290
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: no public key\n"
+msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n"
+
+#. key binding
+#: g10/trustdb.c:2386
+#, fuzzy, c-format
+msgid "key %08lX: bogus key binding by %08lX\n"
+msgstr "Schlüssel %08lX: Keine User-ID\n"
+
+#. key revocation
+#: g10/trustdb.c:2390
+#, fuzzy, c-format
+msgid "key %08lX: bogus key revocation by %08lX\n"
+msgstr "Schlüssel %08lX: Öffentlicher Schlüssel nicht gefunden: %s\n"
+
+#. subkey revocation
+#: g10/trustdb.c:2394
+#, fuzzy, c-format
+msgid "key %08lX: bogus subkey revocation by %08lX\n"
+msgstr "Schlüssel %08lX: Öffentlicher Schlüssel nicht gefunden: %s\n"
+
 #: g10/status.c:246
 msgid "No help available"
 msgstr "Keine Hilfe vorhanden."
@@ -2181,8 +2338,11 @@ msgstr "Unsicherer Schl
 #, c-format
 msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
 msgstr ""
-"Trotz %d-fachen Versuch konnte die Erzeugung eines unsicheren Schlüssel" 
-"für sym.Verschlüsselung nicht vermieden werden!\n"
+"Trotz %d-fachen Versuch konnte die Erzeugung eines unsicheren Schlüsselfür "
+"sym.Verschlüsselung nicht vermieden werden!\n"
+
+#~ msgid "key %08lX: already in ultikey_table\n"
+#~ msgstr "Schlüssel %08lX: bereits in der Tabelle der private Schlüssel\n"
 
 #, fuzzy
 #~ msgid "error reading sigrec: %s\n"
@@ -2250,8 +2410,5 @@ msgstr ""
 #~ msgid "This is a secret key! - really delete? "
 #~ msgstr "Dies ist ein privater Schlüssel! - Wirklich löschen? "
 
-#~ msgid "build_sigrecs: self-signature missing\n"
-#~ msgstr "build_sigrecs: Selbst-Signatur fehlt\n"
-
 #~ msgid "build_sigrecs: key has been revoked\n"
 #~ msgstr "build_sigrecs: Schlüssel ist widerrufen\n"
index b1db896..53c86db 100644 (file)
--- a/po/en.po
+++ b/po/en.po
@@ -1,6 +1,6 @@
 msgid ""
 msgstr ""
-"POT-Creation-Date: 1998-10-07 14:24+0200\n"
+"POT-Creation-Date: 1998-10-18 16:36+0200\n"
 "Content-Type: text/plain; charset=\n"
 "Date: 1998-08-08 18:07:50+0200\n"
 "From: Werner Koch <wk@frodo>\n"
@@ -231,93 +231,93 @@ msgid ""
 "the OS a chance to collect more entropy! (Need %d more bytes)\n"
 msgstr ""
 
-#: g10/g10.c:147
+#: g10/g10.c:149
 msgid ""
 "@Commands:\n"
 " "
 msgstr ""
 
-#: g10/g10.c:150
+#: g10/g10.c:152
 msgid "|[file]|make a signature"
 msgstr ""
 
-#: g10/g10.c:151
+#: g10/g10.c:153
 msgid "|[file]|make a clear text signature"
 msgstr ""
 
-#: g10/g10.c:152
+#: g10/g10.c:154
 msgid "make a detached signature"
 msgstr ""
 
-#: g10/g10.c:153
+#: g10/g10.c:155
 msgid "encrypt data"
 msgstr ""
 
-#: g10/g10.c:154
+#: g10/g10.c:156
 msgid "encryption only with symmetric cipher"
 msgstr ""
 
-#: g10/g10.c:155
+#: g10/g10.c:157
 msgid "store only"
 msgstr ""
 
-#: g10/g10.c:156
+#: g10/g10.c:158
 msgid "decrypt data (default)"
 msgstr ""
 
-#: g10/g10.c:157
+#: g10/g10.c:159
 msgid "verify a signature"
 msgstr ""
 
-#: g10/g10.c:159
+#: g10/g10.c:161
 msgid "list keys"
 msgstr ""
 
-#: g10/g10.c:160
+#: g10/g10.c:162
 msgid "list keys and signatures"
 msgstr ""
 
-#: g10/g10.c:161
+#: g10/g10.c:163
 msgid "check key signatures"
 msgstr ""
 
-#: g10/g10.c:162
+#: g10/g10.c:164
 msgid "list keys and fingerprints"
 msgstr ""
 
-#: g10/g10.c:163
+#: g10/g10.c:165
 msgid "list secret keys"
 msgstr ""
 
-#: g10/g10.c:165
+#: g10/g10.c:167
 msgid "generate a new key pair"
 msgstr ""
 
-#: g10/g10.c:167
+#: g10/g10.c:169
 msgid "remove key from the public keyring"
 msgstr ""
 
-#: g10/g10.c:169
+#: g10/g10.c:171
 msgid "sign or edit a key"
 msgstr ""
 
-#: g10/g10.c:170
+#: g10/g10.c:172
 msgid "generate a revocation certificate"
 msgstr ""
 
-#: g10/g10.c:172
+#: g10/g10.c:174
 msgid "export keys"
 msgstr ""
 
-#: g10/g10.c:175
+#: g10/g10.c:176
 msgid "import/merge keys"
 msgstr ""
 
-#: g10/g10.c:176
+#: g10/g10.c:177
 msgid "list only the sequence of packets"
 msgstr ""
 
-#: g10/g10.c:178
+#: g10/g10.c:180
 #, fuzzy
 msgid "export the ownertrust values"
 msgstr ""
@@ -325,7 +325,7 @@ msgstr ""
 "to any 3rd party.  We need it to implement the web-of-trust; it has nothing\n"
 "to do with the (implicitly created) web-of-certificates."
 
-#: g10/g10.c:179
+#: g10/g10.c:182
 #, fuzzy
 msgid "import ownertrust values"
 msgstr ""
@@ -333,155 +333,163 @@ msgstr ""
 "to any 3rd party.  We need it to implement the web-of-trust; it has nothing\n"
 "to do with the (implicitly created) web-of-certificates."
 
-#: g10/g10.c:180
+#: g10/g10.c:184
+msgid "|[NAMES]|update the trust database"
+msgstr ""
+
+#: g10/g10.c:186
 msgid "|[NAMES]|check the trust database"
 msgstr ""
 
-#: g10/g10.c:181
+#: g10/g10.c:187
 msgid "fix a corrupted trust database"
 msgstr ""
 
-#: g10/g10.c:182
+#: g10/g10.c:188
 msgid "De-Armor a file or stdin"
 msgstr ""
 
-#: g10/g10.c:183
+#: g10/g10.c:189
 msgid "En-Armor a file or stdin"
 msgstr ""
 
-#: g10/g10.c:184
+#: g10/g10.c:190
 msgid "|algo [files]|print message digests"
 msgstr ""
 
-#: g10/g10.c:185
+#: g10/g10.c:191
 msgid "print all message digests"
 msgstr ""
 
-#: g10/g10.c:192
+#: g10/g10.c:198
 msgid ""
 "@\n"
 "Options:\n"
 " "
 msgstr ""
 
-#: g10/g10.c:194
+#: g10/g10.c:200
 msgid "create ascii armored output"
 msgstr ""
 
-#: g10/g10.c:196
+#: g10/g10.c:202
 msgid "use this user-id to sign or decrypt"
 msgstr ""
 
-#: g10/g10.c:197
+#: g10/g10.c:203
 msgid "use this user-id for encryption"
 msgstr ""
 
-#: g10/g10.c:198
+#: g10/g10.c:204
 msgid "|N|set compress level N (0 disables)"
 msgstr ""
 
-#: g10/g10.c:199
+#: g10/g10.c:205
 msgid "use canonical text mode"
 msgstr ""
 
-#: g10/g10.c:201
+#: g10/g10.c:207
 msgid "use as output file"
 msgstr ""
 
-#: g10/g10.c:202
+#: g10/g10.c:208
 msgid "verbose"
 msgstr ""
 
+#: g10/g10.c:209
+msgid "force v3 signatures"
+msgstr ""
+
 #. { oDryRun, "dry-run",   0, N_("do not make any changes") },
-#: g10/g10.c:204
+#: g10/g10.c:211
 msgid "batch mode: never ask"
 msgstr ""
 
-#: g10/g10.c:205
+#: g10/g10.c:212
 msgid "assume yes on most questions"
 msgstr ""
 
-#: g10/g10.c:206
+#: g10/g10.c:213
 msgid "assume no on most questions"
 msgstr ""
 
-#: g10/g10.c:207
+#: g10/g10.c:214
 msgid "add this keyring to the list of keyrings"
 msgstr ""
 
-#: g10/g10.c:208
+#: g10/g10.c:215
 msgid "add this secret keyring to the list"
 msgstr ""
 
-#: g10/g10.c:209
+#: g10/g10.c:216
 msgid "|NAME|use NAME as default secret key"
 msgstr ""
 
-#: g10/g10.c:210
+#: g10/g10.c:217
 msgid "read options from file"
 msgstr ""
 
-#: g10/g10.c:212
+#: g10/g10.c:219
 msgid "set debugging flags"
 msgstr ""
 
-#: g10/g10.c:213
+#: g10/g10.c:220
 msgid "enable full debugging"
 msgstr ""
 
-#: g10/g10.c:214
+#: g10/g10.c:221
 msgid "|FD|write status info to this FD"
 msgstr ""
 
-#: g10/g10.c:215
+#: g10/g10.c:222
 msgid "do not write comment packets"
 msgstr ""
 
-#: g10/g10.c:216
+#: g10/g10.c:223
 msgid "(default is 1)"
 msgstr ""
 
-#: g10/g10.c:217
+#: g10/g10.c:224
 msgid "(default is 3)"
 msgstr ""
 
-#: g10/g10.c:218
+#: g10/g10.c:225
 msgid "|FILE|load extension module FILE"
 msgstr ""
 
-#: g10/g10.c:219
+#: g10/g10.c:226
 msgid "emulate the mode described in RFC1991"
 msgstr ""
 
-#: g10/g10.c:220
+#: g10/g10.c:227
 msgid "|N|use passphrase mode N"
 msgstr ""
 
-#: g10/g10.c:222
+#: g10/g10.c:229
 msgid "|NAME|use message digest algorithm NAME for passphrases"
 msgstr ""
 
-#: g10/g10.c:224
+#: g10/g10.c:231
 msgid "|NAME|use cipher algorithm NAME for passphrases"
 msgstr ""
 
-#: g10/g10.c:226
+#: g10/g10.c:233
 msgid "|NAME|use cipher algorithm NAME"
 msgstr ""
 
-#: g10/g10.c:227
+#: g10/g10.c:234
 msgid "|NAME|use message digest algorithm NAME"
 msgstr ""
 
-#: g10/g10.c:228
+#: g10/g10.c:235
 msgid "|N|use compress algorithm N"
 msgstr ""
 
-#: g10/g10.c:229
+#: g10/g10.c:236
 msgid "throw keyid field of encrypted packets"
 msgstr ""
 
-#: g10/g10.c:237
+#: g10/g10.c:244
 msgid ""
 "@\n"
 "Examples:\n"
@@ -493,233 +501,233 @@ msgid ""
 " --fingerprint [names]      show fingerprints\n"
 msgstr ""
 
-#: g10/g10.c:312
+#: g10/g10.c:319
 msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
 msgstr ""
 
-#: g10/g10.c:317
+#: g10/g10.c:324
 msgid "Usage: gpgm [options] [files] (-h for help)"
 msgstr ""
 
-#: g10/g10.c:319
+#: g10/g10.c:326
 msgid "Usage: gpg [options] [files] (-h for help)"
 msgstr ""
 
-#: g10/g10.c:324
+#: g10/g10.c:331
 msgid ""
 "Syntax: gpgm [options] [files]\n"
-"GNUPG maintenance utility\n"
+"GnuPG maintenance utility\n"
 msgstr ""
 
-#: g10/g10.c:327
+#: g10/g10.c:334
 msgid ""
 "Syntax: gpg [options] [files]\n"
 "sign, check, encrypt or decrypt\n"
 "default operation depends on the input data\n"
 msgstr ""
 
-#: g10/g10.c:333
+#: g10/g10.c:340
 msgid ""
 "\n"
 "Supported algorithms:\n"
 msgstr ""
 
-#: g10/g10.c:408
+#: g10/g10.c:415
 msgid "usage: gpgm [options] "
 msgstr ""
 
-#: g10/g10.c:410
+#: g10/g10.c:417
 msgid "usage: gpg [options] "
 msgstr ""
 
-#: g10/g10.c:451
+#: g10/g10.c:458
 msgid "conflicting commands\n"
 msgstr ""
 
-#: g10/g10.c:590
+#: g10/g10.c:596
 #, c-format
 msgid "note: no default option file '%s'\n"
 msgstr ""
 
-#: g10/g10.c:594
+#: g10/g10.c:600
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: g10/g10.c:601
+#: g10/g10.c:607
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: g10/g10.c:768 g10/g10.c:780
+#: g10/g10.c:778 g10/g10.c:790
 msgid "selected cipher algorithm is invalid\n"
 msgstr ""
 
-#: g10/g10.c:774 g10/g10.c:786
+#: g10/g10.c:784 g10/g10.c:796
 msgid "selected digest algorithm is invalid\n"
 msgstr ""
 
-#: g10/g10.c:789
+#: g10/g10.c:799
 #, c-format
 msgid "compress algorithm must be in range %d..%d\n"
 msgstr ""
 
-#: g10/g10.c:791
+#: g10/g10.c:801
 msgid "completes-needed must be greater than 0\n"
 msgstr ""
 
-#: g10/g10.c:793
+#: g10/g10.c:803
 msgid "marginals-needed must be greater than 1\n"
 msgstr ""
 
-#: g10/g10.c:796
+#: g10/g10.c:806
 msgid "note: simple S2K mode (0) is strongly discouraged\n"
 msgstr ""
 
-#: g10/g10.c:800
+#: g10/g10.c:810
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
 msgstr ""
 
-#: g10/g10.c:876
+#: g10/g10.c:886
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
 msgstr ""
 
-#: g10/g10.c:882
+#: g10/g10.c:892
 msgid "--store [filename]"
 msgstr ""
 
-#: g10/g10.c:890
+#: g10/g10.c:900
 msgid "--symmetric [filename]"
 msgstr ""
 
-#: g10/g10.c:898
+#: g10/g10.c:908
 msgid "--encrypt [filename]"
 msgstr ""
 
-#: g10/g10.c:911
+#: g10/g10.c:921
 msgid "--sign [filename]"
 msgstr ""
 
-#: g10/g10.c:924
+#: g10/g10.c:934
 msgid "--sign --encrypt [filename]"
 msgstr ""
 
-#: g10/g10.c:938
+#: g10/g10.c:948
 msgid "--clearsign [filename]"
 msgstr ""
 
-#: g10/g10.c:950
+#: g10/g10.c:960
 msgid "--decrypt [filename]"
 msgstr ""
 
-#: g10/g10.c:959
+#: g10/g10.c:969
 msgid "--edit-key username"
 msgstr ""
 
-#: g10/g10.c:967
+#: g10/g10.c:977
 msgid "--delete-secret-key username"
 msgstr ""
 
-#: g10/g10.c:970
+#: g10/g10.c:980
 msgid "--delete-key username"
 msgstr ""
 
-#: g10/encode.c:213 g10/g10.c:993 g10/keylist.c:79
+#: g10/encode.c:215 g10/g10.c:1003 g10/keylist.c:80
 #, c-format
 msgid "can't open %s: %s\n"
 msgstr ""
 
-#: g10/g10.c:1004
+#: g10/g10.c:1014
 msgid "-k[v][v][v][c] [userid] [keyring]"
 msgstr ""
 
-#: g10/g10.c:1059
+#: g10/g10.c:1069
 #, c-format
 msgid "dearmoring failed: %s\n"
 msgstr ""
 
-#: g10/g10.c:1067
+#: g10/g10.c:1077
 #, c-format
 msgid "enarmoring failed: %s\n"
 msgstr ""
 
-#: g10/g10.c:1128
+#: g10/g10.c:1138
 #, c-format
 msgid "invalid hash algorithm '%s'\n"
 msgstr ""
 
-#: g10/g10.c:1204
+#: g10/g10.c:1220
 msgid "[filename]"
 msgstr ""
 
-#: g10/decrypt.c:59 g10/g10.c:1206 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1222 g10/verify.c:66
 #, c-format
 msgid "can't open '%s'\n"
 msgstr ""
 
-#: g10/g10.c:1251
+#: g10/g10.c:1269
 msgid ""
 "RSA keys are deprecated; please consider creating a new key and use this key "
 "in the future\n"
 msgstr ""
 
-#: g10/armor.c:335 g10/armor.c:375
+#: g10/armor.c:341 g10/armor.c:381
 msgid "armor header: "
 msgstr ""
 
-#: g10/armor.c:340
+#: g10/armor.c:346
 msgid "invalid clearsig header\n"
 msgstr ""
 
-#: g10/armor.c:366
+#: g10/armor.c:372
 msgid "invalid armor header: "
 msgstr ""
 
-#: g10/armor.c:440
+#: g10/armor.c:449
 #, c-format
 msgid "armor: %s\n"
 msgstr ""
 
-#: g10/armor.c:484
+#: g10/armor.c:493
 msgid "invalid dash escaped line: "
 msgstr ""
 
-#: g10/armor.c:553
+#: g10/armor.c:562
 msgid "invalid clear text header: "
 msgstr ""
 
-#: g10/armor.c:783
+#: g10/armor.c:794
 #, c-format
 msgid "invalid radix64 character %02x skipped\n"
 msgstr ""
 
-#: g10/armor.c:816
+#: g10/armor.c:827
 msgid "premature eof (no CRC)\n"
 msgstr ""
 
-#: g10/armor.c:835
+#: g10/armor.c:846
 msgid "premature eof (in CRC)\n"
 msgstr ""
 
-#: g10/armor.c:839
+#: g10/armor.c:850
 msgid "malformed CRC\n"
 msgstr ""
 
-#: g10/armor.c:843
+#: g10/armor.c:854
 #, c-format
 msgid "CRC error; %06lx - %06lx\n"
 msgstr ""
 
-#: g10/armor.c:862
+#: g10/armor.c:873
 msgid "premature eof (in Trailer)\n"
 msgstr ""
 
-#: g10/armor.c:866
+#: g10/armor.c:877
 msgid "error in trailer line\n"
 msgstr ""
 
-#: g10/armor.c:1120
+#: g10/armor.c:1131
 msgid "no valid RFC1991 or OpenPGP data found.\n"
 msgstr ""
 
@@ -883,36 +891,36 @@ msgstr ""
 msgid "writing key binding signature\n"
 msgstr ""
 
-#: g10/keygen.c:383
+#: g10/keygen.c:387
 msgid "Please select what kind of key you want:\n"
 msgstr ""
 
-#: g10/keygen.c:385
+#: g10/keygen.c:389
 #, c-format
 msgid "   (%d) DSA and ElGamal (default)\n"
 msgstr ""
 
-#: g10/keygen.c:386
+#: g10/keygen.c:390
 #, c-format
 msgid "   (%d) ElGamal (sign and encrypt)\n"
 msgstr ""
 
-#: g10/keygen.c:388
+#: g10/keygen.c:392
 #, c-format
 msgid "   (%d) ElGamal (encrypt only)\n"
 msgstr ""
 
-#: g10/keygen.c:389
+#: g10/keygen.c:393
 #, c-format
 msgid "   (%d) DSA (sign only)\n"
 msgstr ""
 
-#: g10/keygen.c:390
+#: g10/keygen.c:394
 #, c-format
 msgid "   (%d) ElGamal in a v3 packet\n"
 msgstr ""
 
-#: g10/keygen.c:394
+#: g10/keygen.c:398
 msgid "keygen.algo"
 msgstr ""
 "Select the algorithm to use.\n"
@@ -930,15 +938,15 @@ msgstr ""
 "You should not select the \"ElGamal in a v3 packet\", because that key is\n"
 "not compatible to other OpenPGP implementations."
 
-#: g10/keygen.c:394
+#: g10/keygen.c:398
 msgid "Your selection? "
 msgstr ""
 
-#: g10/keygen.c:420
+#: g10/keygen.c:424
 msgid "Invalid selection.\n"
 msgstr ""
 
-#: g10/keygen.c:432
+#: g10/keygen.c:436
 #, c-format
 msgid ""
 "About to generate a new %s keypair.\n"
@@ -947,61 +955,61 @@ msgid ""
 "    highest suggested keysize is 2048 bits\n"
 msgstr ""
 
-#: g10/keygen.c:438
+#: g10/keygen.c:442
 msgid "keygen.size"
 msgstr ""
 
-#: g10/keygen.c:439
+#: g10/keygen.c:443
 msgid "What keysize do you want? (1024) "
 msgstr ""
 
-#: g10/keygen.c:444
+#: g10/keygen.c:448
 msgid "DSA only allows keysizes from 512 to 1024\n"
 msgstr ""
 
-#: g10/keygen.c:446
+#: g10/keygen.c:450
 msgid "keysize too small; 768 is smallest value allowed.\n"
 msgstr ""
 
-#: g10/keygen.c:449
+#: g10/keygen.c:453
 msgid ""
 "Keysizes larger than 2048 are not suggested because\n"
 "computations take REALLY long!\n"
 msgstr ""
 
-#: g10/keygen.c:451
+#: g10/keygen.c:455
 msgid "keygen.size.huge.okay"
 msgstr ""
 
-#: g10/keygen.c:452
+#: g10/keygen.c:456
 msgid "Are you sure that you want this keysize? "
 msgstr ""
 
-#: g10/keygen.c:453
+#: g10/keygen.c:457
 msgid ""
 "Okay, but keep in mind that your monitor and keyboard radiation is also very "
 "vulnerable to attacks!\n"
 msgstr ""
 
-#: g10/keygen.c:460
+#: g10/keygen.c:464
 msgid "keygen.size.large.okay"
 msgstr ""
 
-#: g10/keygen.c:461
+#: g10/keygen.c:465
 msgid "Do you really need such a large keysize? "
 msgstr ""
 
-#: g10/keygen.c:467
+#: g10/keygen.c:471
 #, c-format
 msgid "Requested keysize is %u bits\n"
 msgstr ""
 
-#: g10/keygen.c:470 g10/keygen.c:474
+#: g10/keygen.c:474 g10/keygen.c:478
 #, c-format
 msgid "rounded up to %u bits\n"
 msgstr ""
 
-#: g10/keygen.c:486
+#: g10/keygen.c:491
 msgid ""
 "Please specify how long the key should be valid.\n"
 "         0 = key does not expire\n"
@@ -1011,37 +1019,37 @@ msgid ""
 "      <n>y = key expires in n years\n"
 msgstr ""
 
-#: g10/keygen.c:501
+#: g10/keygen.c:506
 msgid "keygen.valid"
 msgstr ""
 
-#: g10/keygen.c:501
+#: g10/keygen.c:506
 msgid "Key is valid for? (0) "
 msgstr ""
 
-#: g10/keygen.c:512
+#: g10/keygen.c:517
 msgid "invalid value\n"
 msgstr ""
 
-#: g10/keygen.c:517
+#: g10/keygen.c:522
 msgid "Key does not expire at all\n"
 msgstr ""
 
 #. print the date when the key expires
-#: g10/keygen.c:520
+#: g10/keygen.c:528
 #, c-format
 msgid "Key expires at %s\n"
 msgstr ""
 
-#: g10/keygen.c:525
+#: g10/keygen.c:532
 msgid "keygen.valid.okay"
 msgstr ""
 
-#: g10/keygen.c:526
+#: g10/keygen.c:533
 msgid "Is this correct (y/n)? "
 msgstr ""
 
-#: g10/keygen.c:554
+#: g10/keygen.c:561
 msgid ""
 "\n"
 "You need a User-ID to identify your key; the software constructs the user "
@@ -1051,51 +1059,51 @@ msgid ""
 "\n"
 msgstr ""
 
-#: g10/keygen.c:565
+#: g10/keygen.c:572
 msgid "keygen.name"
 msgstr ""
 
-#: g10/keygen.c:565
+#: g10/keygen.c:572
 msgid "Real name: "
 msgstr ""
 
-#: g10/keygen.c:569
+#: g10/keygen.c:576
 msgid "Invalid character in name\n"
 msgstr ""
 
-#: g10/keygen.c:571
+#: g10/keygen.c:578
 msgid "Name may not start with a digit\n"
 msgstr ""
 
-#: g10/keygen.c:573
+#: g10/keygen.c:580
 msgid "Name must be at least 5 characters long\n"
 msgstr ""
 
-#: g10/keygen.c:581
+#: g10/keygen.c:588
 msgid "keygen.email"
 msgstr ""
 
-#: g10/keygen.c:581
+#: g10/keygen.c:588
 msgid "Email address: "
 msgstr ""
 
-#: g10/keygen.c:593
+#: g10/keygen.c:600
 msgid "Not a valid email address\n"
 msgstr ""
 
-#: g10/keygen.c:601
+#: g10/keygen.c:608
 msgid "keygen.comment"
 msgstr ""
 
-#: g10/keygen.c:601
+#: g10/keygen.c:608
 msgid "Comment: "
 msgstr ""
 
-#: g10/keygen.c:607
+#: g10/keygen.c:614
 msgid "Invalid character in comment\n"
 msgstr ""
 
-#: g10/keygen.c:627
+#: g10/keygen.c:634
 #, c-format
 msgid ""
 "You selected this USER-ID:\n"
@@ -1103,11 +1111,11 @@ msgid ""
 "\n"
 msgstr ""
 
-#: g10/keygen.c:630
+#: g10/keygen.c:637
 msgid "NnCcEeOoQq"
 msgstr ""
 
-#: g10/keygen.c:639
+#: g10/keygen.c:646
 msgid "keygen.userid.cmd"
 msgstr ""
 "N  to change the name.\n"
@@ -1116,21 +1124,21 @@ msgstr ""
 "O  to continue with key generation.\n"
 "Q  to to quit the key generation."
 
-#: g10/keygen.c:640
+#: g10/keygen.c:647
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgstr ""
 
-#: g10/keygen.c:687
+#: g10/keygen.c:694
 msgid ""
 "You need a Passphrase to protect your secret key.\n"
 "\n"
 msgstr ""
 
-#: g10/keyedit.c:388 g10/keygen.c:695
+#: g10/keyedit.c:389 g10/keygen.c:702
 msgid "passphrase not correctly repeated; try again.\n"
 msgstr ""
 
-#: g10/keygen.c:701
+#: g10/keygen.c:708
 msgid ""
 "You don't want a passphrase - this is probably a *bad* idea!\n"
 "I will do it anyway.  You can change your passphrase at any time,\n"
@@ -1138,7 +1146,7 @@ msgid ""
 "\n"
 msgstr ""
 
-#: g10/keygen.c:722
+#: g10/keygen.c:729
 msgid ""
 "We need to generate a lot of random bytes. It is a good idea to perform\n"
 "some other action (work in another window, move the mouse, utilize the\n"
@@ -1146,48 +1154,48 @@ msgid ""
 "number generator a better chance to gain enough entropy.\n"
 msgstr ""
 
-#: g10/keygen.c:789
+#: g10/keygen.c:799
 msgid "Key generation can only be used in interactive mode\n"
 msgstr ""
 
-#: g10/keygen.c:797
+#: g10/keygen.c:807
 msgid "DSA keypair will have 1024 bits.\n"
 msgstr ""
 
-#: g10/keygen.c:803
+#: g10/keygen.c:813
 msgid "Key generation cancelled.\n"
 msgstr ""
 
-#: g10/keygen.c:813
+#: g10/keygen.c:823
 #, c-format
 msgid "writing public certificate to '%s'\n"
 msgstr ""
 
-#: g10/keygen.c:814
+#: g10/keygen.c:824
 #, c-format
 msgid "writing secret certificate to '%s'\n"
 msgstr ""
 
-#: g10/keygen.c:891
+#: g10/keygen.c:901
 msgid "public and secret key created and signed.\n"
 msgstr ""
 
-#: g10/keygen.c:893
+#: g10/keygen.c:903
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--add-key\" to generate a secondary key for this purpose.\n"
 msgstr ""
 
-#: g10/keygen.c:907 g10/keygen.c:991
+#: g10/keygen.c:917 g10/keygen.c:1002
 #, c-format
 msgid "Key generation failed: %s\n"
 msgstr ""
 
-#: g10/keygen.c:968
+#: g10/keygen.c:979
 msgid "keygen.sub.okay"
 msgstr "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
 
-#: g10/keygen.c:969
+#: g10/keygen.c:980
 msgid "Really create? "
 msgstr ""
 
@@ -1201,609 +1209,637 @@ msgstr ""
 msgid "error creating passphrase: %s\n"
 msgstr ""
 
-#: g10/encode.c:152 g10/encode.c:264
+#: g10/encode.c:154 g10/encode.c:267
 #, c-format
 msgid "%s: warning: empty file\n"
 msgstr ""
 
-#: g10/encode.c:219
+#: g10/encode.c:221
 #, c-format
 msgid "reading from '%s'\n"
 msgstr ""
 
-#: g10/encode.c:392
+#: g10/encode.c:395
 #, c-format
 msgid "%s encrypted for: %s\n"
 msgstr ""
 
-#: g10/getkey.c:884
+#: g10/getkey.c:854
 #, c-format
 msgid "using secondary key %08lX instead of primary key %08lX\n"
 msgstr ""
 
-#: g10/import.c:105 g10/trustdb.c:1389
+#: g10/import.c:106 g10/trustdb.c:1100
 #, c-format
 msgid "can't open file: %s\n"
 msgstr ""
 
-#: g10/import.c:121
+#: g10/import.c:122
 #, c-format
 msgid "skipping block of type %d\n"
 msgstr ""
 
-#: g10/import.c:131 g10/trustdb.c:1464
+#: g10/import.c:132 g10/trustdb.c:1175
 #, c-format
 msgid "read error: %s\n"
 msgstr ""
 
-#: g10/import.c:272 g10/import.c:445
+#: g10/import.c:273 g10/import.c:446
 #, c-format
 msgid "key %08lX: no user id\n"
 msgstr ""
 
-#: g10/import.c:282
+#: g10/import.c:283
 #, c-format
 msgid "key %08lX: no valid user ids\n"
 msgstr ""
 
-#: g10/import.c:284
+#: g10/import.c:285
 msgid "this may be caused by a missing self-signature\n"
 msgstr ""
 
-#: g10/import.c:293 g10/import.c:511
+#: g10/import.c:294 g10/import.c:512
 #, c-format
 msgid "key %08lX: public key not found: %s\n"
 msgstr ""
 
-#: g10/import.c:299
+#: g10/import.c:300
 msgid "no default public keyring\n"
 msgstr ""
 
-#: g10/import.c:303
+#: g10/import.c:304
 #, c-format
 msgid "writing to '%s'\n"
 msgstr ""
 
-#: g10/import.c:307 g10/import.c:362 g10/import.c:565
+#: g10/import.c:308 g10/import.c:363 g10/import.c:566
 #, c-format
 msgid "can't lock public keyring: %s\n"
 msgstr ""
 
-#: g10/import.c:310
+#: g10/import.c:311
 #, c-format
 msgid "can't write to keyring: %s\n"
 msgstr ""
 
 #. we are ready
-#: g10/import.c:313
+#: g10/import.c:314
 #, c-format
 msgid "key %08lX: public key imported\n"
 msgstr ""
 
-#: g10/import.c:322
+#: g10/import.c:323
 #, c-format
 msgid "key %08lX: doesn't match our copy\n"
 msgstr ""
 
-#: g10/import.c:335 g10/import.c:520
+#: g10/import.c:336 g10/import.c:521
 #, c-format
 msgid "key %08lX: can't locate original keyblock: %s\n"
 msgstr ""
 
-#: g10/import.c:342 g10/import.c:527
+#: g10/import.c:343 g10/import.c:528
 #, c-format
 msgid "key %08lX: can't read original keyblock: %s\n"
 msgstr ""
 
-#: g10/import.c:359 g10/import.c:460 g10/import.c:562
+#: g10/import.c:360 g10/import.c:461 g10/import.c:563
 msgid "writing keyblock\n"
 msgstr ""
 
-#: g10/import.c:365 g10/import.c:568
+#: g10/import.c:366 g10/import.c:569
 #, c-format
 msgid "can't write keyblock: %s\n"
 msgstr ""
 
-#: g10/import.c:369
+#: g10/import.c:370
 #, c-format
 msgid "key %08lX: 1 new user-id\n"
 msgstr ""
 
-#: g10/import.c:372
+#: g10/import.c:373
 #, c-format
 msgid "key %08lX: %d new user-ids\n"
 msgstr ""
 
-#: g10/import.c:375
+#: g10/import.c:376
 #, c-format
 msgid "key %08lX: 1 new signature\n"
 msgstr ""
 
-#: g10/import.c:378
+#: g10/import.c:379
 #, c-format
 msgid "key %08lX: %d new signatures\n"
 msgstr ""
 
-#: g10/import.c:381
+#: g10/import.c:382
 #, c-format
 msgid "key %08lX: 1 new subkey\n"
 msgstr ""
 
-#: g10/import.c:384
+#: g10/import.c:385
 #, c-format
 msgid "key %08lX: %d new subkeys\n"
 msgstr ""
 
-#: g10/import.c:388
+#: g10/import.c:389
 #, c-format
 msgid "key %08lX: not changed\n"
 msgstr ""
 
-#: g10/import.c:463
+#: g10/import.c:464
 #, c-format
 msgid "can't lock secret keyring: %s\n"
 msgstr ""
 
-#: g10/import.c:466
+#: g10/import.c:467
 #, c-format
 msgid "can't write keyring: %s\n"
 msgstr ""
 
 #. we are ready
-#: g10/import.c:469
+#: g10/import.c:470
 #, c-format
 msgid "key %08lX: secret key imported\n"
 msgstr ""
 
 #. we can't merge secret keys
-#: g10/import.c:472
+#: g10/import.c:473
 #, c-format
 msgid "key %08lX: already in secret keyring\n"
 msgstr ""
 
-#: g10/import.c:476
+#: g10/import.c:477
 #, c-format
 msgid "key %08lX: secret key not found: %s\n"
 msgstr ""
 
-#: g10/import.c:505
+#: g10/import.c:506
 #, c-format
 msgid "key %08lX: no public key - can't apply revocation certificate\n"
 msgstr ""
 
-#: g10/import.c:538
+#: g10/import.c:539
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
 msgstr ""
 
 #. we are ready
-#: g10/import.c:571
+#: g10/import.c:572
 #, c-format
 msgid "key %08lX: revocation certificate imported\n"
 msgstr ""
 
-#: g10/import.c:601
+#: g10/import.c:602
 #, c-format
 msgid "key %08lX: no user-id for signature\n"
 msgstr ""
 
-#: g10/import.c:608
+#: g10/import.c:609
 #, c-format
 msgid "key %08lX: unsupported public key algorithm\n"
 msgstr ""
 
-#: g10/import.c:609
+#: g10/import.c:610
 #, c-format
 msgid "key %08lX: invalid self-signature\n"
 msgstr ""
 
-#: g10/import.c:638
+#: g10/import.c:639
 #, c-format
 msgid "key %08lX: skipped userid '"
 msgstr ""
 
-#: g10/import.c:661
+#: g10/import.c:662
 #, c-format
 msgid "key %08lX: revocation certificate at wrong place - skipped\n"
 msgstr ""
 
-#: g10/import.c:669
+#: g10/import.c:670
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
 msgstr ""
 
-#: g10/import.c:731
+#: g10/import.c:732
 #, c-format
 msgid "key %08lX: revocation certificate added\n"
 msgstr ""
 
-#: g10/import.c:794 g10/import.c:830
+#: g10/import.c:795 g10/import.c:831
 #, c-format
 msgid "key %08lX: our copy has no self-signature\n"
 msgstr ""
 
-#: g10/keyedit.c:80
+#: g10/keyedit.c:81
 #, c-format
 msgid "%s: user not found\n"
 msgstr ""
 
-#: g10/keyedit.c:163
+#: g10/keyedit.c:164
 msgid "[self-signature]"
 msgstr ""
 
-#: g10/keyedit.c:181
+#: g10/keyedit.c:182
 msgid "1 bad signature\n"
 msgstr ""
 
-#: g10/keyedit.c:183
+#: g10/keyedit.c:184
 #, c-format
 msgid "%d bad signatures\n"
 msgstr ""
 
-#: g10/keyedit.c:185
+#: g10/keyedit.c:186
 msgid "1 signature not checked due to a missing key\n"
 msgstr ""
 
-#: g10/keyedit.c:187
+#: g10/keyedit.c:188
 #, c-format
 msgid "%d signatures not checked due to missing keys\n"
 msgstr ""
 
-#: g10/keyedit.c:189
+#: g10/keyedit.c:190
 msgid "1 signature not checked due to an error\n"
 msgstr ""
 
-#: g10/keyedit.c:191
+#: g10/keyedit.c:192
 #, c-format
 msgid "%d signatures not checked due to errors\n"
 msgstr ""
 
-#: g10/keyedit.c:193
+#: g10/keyedit.c:194
 msgid "1 user id without valid self-signature detected\n"
 msgstr ""
 
-#: g10/keyedit.c:195
+#: g10/keyedit.c:196
 #, c-format
 msgid "%d user ids without valid self-signatures detected\n"
 msgstr ""
 
-#: g10/keyedit.c:257
+#: g10/keyedit.c:258
 #, c-format
 msgid "Already signed by key %08lX\n"
 msgstr ""
 
-#: g10/keyedit.c:265
+#: g10/keyedit.c:266
 #, c-format
 msgid "Nothing to sign with key %08lX\n"
 msgstr ""
 
-#: g10/keyedit.c:274
+#: g10/keyedit.c:275
 msgid ""
 "Are you really sure that you want to sign this key\n"
 "with your key: \""
 msgstr ""
 
-#: g10/keyedit.c:281
+#: g10/keyedit.c:282
 msgid "sign_uid.okay"
 msgstr ""
 
-#: g10/keyedit.c:281
+#: g10/keyedit.c:282
 msgid "Really sign? "
 msgstr ""
 
-#: g10/keyedit.c:302
+#: g10/keyedit.c:303
 #, c-format
 msgid "signing failed: %s\n"
 msgstr ""
 
-#: g10/keyedit.c:355
+#: g10/keyedit.c:356
 msgid "This key is not protected.\n"
 msgstr ""
 
-#: g10/keyedit.c:358
+#: g10/keyedit.c:359
 msgid "Key is protected.\n"
 msgstr ""
 
-#: g10/keyedit.c:375
+#: g10/keyedit.c:376
 #, c-format
 msgid "Can't edit this key: %s\n"
 msgstr ""
 
-#: g10/keyedit.c:380
+#: g10/keyedit.c:381
 msgid ""
 "Enter the new passphrase for this secret key.\n"
 "\n"
 msgstr ""
 
-#: g10/keyedit.c:392
+#: g10/keyedit.c:393
 msgid ""
 "You don't want a passphrase - this is probably a *bad* idea!\n"
 "\n"
 msgstr ""
 
-#: g10/keyedit.c:394
+#: g10/keyedit.c:395
 msgid "change_passwd.empty.okay"
 msgstr ""
 
-#: g10/keyedit.c:395
+#: g10/keyedit.c:396
 msgid "Do you really want to do this? "
 msgstr ""
 
-#: g10/keyedit.c:450
+#: g10/keyedit.c:489
 msgid "quit"
 msgstr ""
 
-#: g10/keyedit.c:450
+#: g10/keyedit.c:489
 msgid "quit this menu"
 msgstr ""
 
-#: g10/keyedit.c:451
+#: g10/keyedit.c:490
 msgid "q"
 msgstr ""
 
-#: g10/keyedit.c:452
+#: g10/keyedit.c:491
 msgid "save"
 msgstr ""
 
-#: g10/keyedit.c:452
+#: g10/keyedit.c:491
 msgid "save and quit"
 msgstr ""
 
-#: g10/keyedit.c:453
+#: g10/keyedit.c:492
 msgid "help"
 msgstr ""
 
-#: g10/keyedit.c:453
+#: g10/keyedit.c:492
 msgid "show this help"
 msgstr ""
 
-#: g10/keyedit.c:455
+#: g10/keyedit.c:494
 msgid "fpr"
 msgstr ""
 
-#: g10/keyedit.c:455
+#: g10/keyedit.c:494
 msgid "show fingerprint"
 msgstr ""
 
-#: g10/keyedit.c:456
+#: g10/keyedit.c:495
 msgid "list"
 msgstr ""
 
-#: g10/keyedit.c:456
+#: g10/keyedit.c:495
 msgid "list key and user ids"
 msgstr ""
 
-#: g10/keyedit.c:457
+#: g10/keyedit.c:496
 msgid "l"
 msgstr ""
 
-#: g10/keyedit.c:458
+#: g10/keyedit.c:497
 msgid "uid"
 msgstr ""
 
-#: g10/keyedit.c:458
+#: g10/keyedit.c:497
 msgid "select user id N"
 msgstr ""
 
-#: g10/keyedit.c:459
+#: g10/keyedit.c:498
 msgid "key"
 msgstr ""
 
-#: g10/keyedit.c:459
+#: g10/keyedit.c:498
 msgid "select secondary key N"
 msgstr ""
 
-#: g10/keyedit.c:460
+#: g10/keyedit.c:499
 msgid "check"
 msgstr ""
 
-#: g10/keyedit.c:460
+#: g10/keyedit.c:499
 msgid "list signatures"
 msgstr ""
 
-#: g10/keyedit.c:461
+#: g10/keyedit.c:500
 msgid "c"
 msgstr ""
 
-#: g10/keyedit.c:462
+#: g10/keyedit.c:501
 msgid "sign"
 msgstr ""
 
-#: g10/keyedit.c:462
+#: g10/keyedit.c:501
 msgid "sign the key"
 msgstr ""
 
-#: g10/keyedit.c:463
+#: g10/keyedit.c:502
 msgid "s"
 msgstr ""
 
-#: g10/keyedit.c:464
+#: g10/keyedit.c:503
 msgid "debug"
 msgstr ""
 
-#: g10/keyedit.c:465
+#: g10/keyedit.c:504
 msgid "adduid"
 msgstr ""
 
-#: g10/keyedit.c:465
+#: g10/keyedit.c:504
 msgid "add a user id"
 msgstr ""
 
-#: g10/keyedit.c:466
+#: g10/keyedit.c:505
 msgid "deluid"
 msgstr ""
 
-#: g10/keyedit.c:466
+#: g10/keyedit.c:505
 msgid "delete user id"
 msgstr ""
 
-#: g10/keyedit.c:467
+#: g10/keyedit.c:506
 msgid "addkey"
 msgstr ""
 
-#: g10/keyedit.c:467
+#: g10/keyedit.c:506
 msgid "add a secondary key"
 msgstr ""
 
-#: g10/keyedit.c:468
+#: g10/keyedit.c:507
 msgid "delkey"
 msgstr ""
 
-#: g10/keyedit.c:468
+#: g10/keyedit.c:507
 msgid "delete a secondary key"
 msgstr ""
 
-#: g10/keyedit.c:469
+#: g10/keyedit.c:508
+msgid "expire"
+msgstr ""
+
+#: g10/keyedit.c:508
+msgid "change the expire date"
+msgstr ""
+
+#: g10/keyedit.c:509
 msgid "toggle"
 msgstr ""
 
-#: g10/keyedit.c:469
+#: g10/keyedit.c:509
 msgid "toggle between secret and public key listing"
 msgstr ""
 
-#: g10/keyedit.c:471
+#: g10/keyedit.c:511
 msgid "t"
 msgstr ""
 
-#: g10/keyedit.c:472
+#: g10/keyedit.c:512
 msgid "pref"
 msgstr ""
 
-#: g10/keyedit.c:472
+#: g10/keyedit.c:512
 msgid "list preferences"
 msgstr ""
 
-#: g10/keyedit.c:473
+#: g10/keyedit.c:513
 msgid "passwd"
 msgstr ""
 
-#: g10/keyedit.c:473
+#: g10/keyedit.c:513
 msgid "change the passphrase"
 msgstr ""
 
-#: g10/keyedit.c:474
+#: g10/keyedit.c:514
 msgid "trust"
 msgstr ""
 
-#: g10/keyedit.c:474
+#: g10/keyedit.c:514
 msgid "change the ownertrust"
 msgstr ""
 
-#: g10/keyedit.c:492
+#: g10/keyedit.c:532
 msgid "can't do that in batchmode\n"
 msgstr ""
 
 #. check that they match
 #. FIXME: check that they both match
-#: g10/keyedit.c:515
+#: g10/keyedit.c:559
 msgid "Secret key is available.\n"
 msgstr ""
 
-#: g10/keyedit.c:531
+#: g10/keyedit.c:575
 msgid "keyedit.cmd"
 msgstr "Please enter \"help\"."
 
-#: g10/keyedit.c:531
+#: g10/keyedit.c:575
 msgid "Command> "
 msgstr ""
 
-#: g10/keyedit.c:556
+#: g10/keyedit.c:600
 msgid "Need the secret key to to this.\n"
 msgstr ""
 
-#: g10/keyedit.c:575
+#: g10/keyedit.c:619
 msgid "keyedit.save.okay"
 msgstr ""
 
-#: g10/keyedit.c:576
+#: g10/keyedit.c:620
 msgid "Save changes? "
 msgstr ""
 
-#: g10/keyedit.c:578
+#: g10/keyedit.c:622
 msgid "keyedit.cancel.okay"
 msgstr ""
 
-#: g10/keyedit.c:579
+#: g10/keyedit.c:623
 msgid "Quit without saving? "
 msgstr ""
 
-#: g10/keyedit.c:589
+#: g10/keyedit.c:633
 #, c-format
 msgid "update failed: %s\n"
 msgstr ""
 
-#: g10/keyedit.c:596
+#: g10/keyedit.c:640
 #, c-format
 msgid "update secret failed: %s\n"
 msgstr ""
 
-#: g10/keyedit.c:603
+#: g10/keyedit.c:647
 msgid "Key not changed so no update needed.\n"
 msgstr ""
 
-#: g10/keyedit.c:606 g10/keyedit.c:664
+#: g10/keyedit.c:650 g10/keyedit.c:708
 #, c-format
 msgid "update of trust db failed: %s\n"
 msgstr ""
 
-#: g10/keyedit.c:637
+#: g10/keyedit.c:681
 msgid "keyedit.sign_all.okay"
 msgstr ""
 
-#: g10/keyedit.c:638
+#: g10/keyedit.c:682
 msgid "Really sign all user ids? "
 msgstr ""
 
-#: g10/keyedit.c:639
+#: g10/keyedit.c:683
 msgid "Hint: Select the user ids to sign\n"
 msgstr ""
 
-#: g10/keyedit.c:675
+#: g10/keyedit.c:719
 msgid "You must select at least one user id.\n"
 msgstr ""
 
-#: g10/keyedit.c:677
+#: g10/keyedit.c:721
 msgid "You can't delete the last user id!\n"
 msgstr ""
 
-#: g10/keyedit.c:679
+#: g10/keyedit.c:723
 msgid "keyedit.remove.uid.okay"
 msgstr ""
 
-#: g10/keyedit.c:680
+#: g10/keyedit.c:724
 msgid "Really remove all selected user ids? "
 msgstr ""
 
-#: g10/keyedit.c:681
+#: g10/keyedit.c:725
 msgid "Really remove this user id? "
 msgstr ""
 
-#: g10/keyedit.c:704
+#: g10/keyedit.c:748
 msgid "You must select at least one key.\n"
 msgstr ""
 
-#: g10/keyedit.c:706
+#: g10/keyedit.c:750
 msgid "keyedit.remove.subkey.okay"
 msgstr ""
 
-#: g10/keyedit.c:708
+#: g10/keyedit.c:752
 msgid "Do you really want to delete the selected keys? "
 msgstr ""
 
-#: g10/keyedit.c:709
+#: g10/keyedit.c:753
 msgid "Do you really want to delete this key? "
 msgstr ""
 
-#: g10/keyedit.c:746
+#: g10/keyedit.c:800
 msgid "Invalid command  (try \"help\")\n"
 msgstr ""
 
-#: g10/keyedit.c:1129
+#: g10/keyedit.c:1178
+msgid "Please remove selections from the secret keys.\n"
+msgstr ""
+
+#: g10/keyedit.c:1184
+msgid "Please select at most one secondary key.\n"
+msgstr ""
+
+#: g10/keyedit.c:1188
+msgid "Changing exiration time for a secondary key.\n"
+msgstr ""
+
+#: g10/keyedit.c:1190
+msgid "Changing exiration time for the primary key.\n"
+msgstr ""
+
+#: g10/keyedit.c:1234
+msgid "No corresponding signature in secret ring\n"
+msgstr ""
+
+#: g10/keyedit.c:1294
 #, c-format
 msgid "No user id with index %d\n"
 msgstr ""
 
-#: g10/keyedit.c:1174
+#: g10/keyedit.c:1339
 #, c-format
 msgid "No secondary key with index %d\n"
 msgstr ""
@@ -1822,20 +1858,20 @@ msgstr ""
 msgid "note: sender requested \"for-your-eyes-only\"\n"
 msgstr ""
 
-#: g10/mainproc.c:846
+#: g10/mainproc.c:848
 #, c-format
 msgid "Signature made %.*s using %s key ID %08lX\n"
 msgstr ""
 
-#: g10/mainproc.c:854
+#: g10/mainproc.c:856
 msgid "BAD signature from \""
 msgstr ""
 
-#: g10/mainproc.c:855
+#: g10/mainproc.c:857
 msgid "Good signature from \""
 msgstr ""
 
-#: g10/mainproc.c:866
+#: g10/mainproc.c:868
 #, c-format
 msgid "Can't check signature: %s\n"
 msgstr ""
@@ -1909,85 +1945,195 @@ msgstr ""
 msgid "public key created in future (time warp or clock problem)\n"
 msgstr ""
 
-#: g10/sig-check.c:171
+#: g10/sig-check.c:170
 #, c-format
 msgid "warning: signature key expired %s\n"
 msgstr ""
 
-#: g10/trustdb.c:127
+#: g10/trustdb.c:122
 msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n"
 msgstr ""
 
-#: g10/trustdb.c:406
+#: g10/trustdb.c:389
 #, c-format
 msgid "chained sigrec %lu has a wrong owner\n"
 msgstr ""
 
-#: g10/trustdb.c:453
+#: g10/trustdb.c:436
 #, c-format
-msgid "key %08lX: secret key without public key\n"
+msgid "key %08lX: secret key without public key - skipped\n"
 msgstr ""
 
-#: g10/trustdb.c:458
+#: g10/trustdb.c:442
 #, c-format
 msgid "key %08lX: secret and public key don't match\n"
 msgstr ""
 
-#: g10/trustdb.c:469
+#: g10/trustdb.c:452
 #, c-format
 msgid "key %08lX: can't put it into the trustdb\n"
 msgstr ""
 
-#: g10/trustdb.c:475
+#: g10/trustdb.c:458
 #, c-format
 msgid "key %08lX: query record failed\n"
 msgstr ""
 
-#: g10/trustdb.c:484
-#, c-format
-msgid "key %08lX: already in ultikey_table\n"
-msgstr ""
-
-#: g10/trustdb.c:491
+#: g10/trustdb.c:467
 #, c-format
-msgid "enum_secret_keys failed: %s\n"
+msgid "key %08lX: already in secret key table\n"
 msgstr ""
 
-#: g10/trustdb.c:964
+#: g10/trustdb.c:470
 #, c-format
-msgid "key %08lX.%lu, uid %02X%02X: no public key for signature %08lX\n"
+msgid "key %08lX: accepted as secret key.\n"
 msgstr ""
 
-#: g10/trustdb.c:971
+#: g10/trustdb.c:477
 #, c-format
-msgid "key %08lX.%lu, uid %02X%02X: invalid %ssignature: %s\n"
+msgid "enum_secret_keys failed: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:1658
+#: g10/trustdb.c:1428
 #, c-format
 msgid "key %08lX: insert trust record failed: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:1662
+#: g10/trustdb.c:1432
 #, c-format
 msgid "key %08lX.%lu: inserted into trustdb\n"
 msgstr ""
 
-#: g10/trustdb.c:1670
+#: g10/trustdb.c:1440
 #, c-format
 msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
 msgstr ""
 
-#: g10/trustdb.c:1678
+#: g10/trustdb.c:1447
 #, c-format
 msgid "key %08lX.%lu: expired at %s\n"
 msgstr ""
 
-#: g10/trustdb.c:1687
+#: g10/trustdb.c:1455
 #, c-format
 msgid "key %08lX.%lu: trust check failed: %s\n"
 msgstr ""
 
+#: g10/trustdb.c:1718
+#, c-format
+msgid "note: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
+msgstr ""
+
+#: g10/trustdb.c:1722
+#, c-format
+msgid "note: sig rec %lu[%d] in hintlist of %lu but not marked\n"
+msgstr ""
+
+#. we need the dir record
+#: g10/trustdb.c:1729
+#, c-format
+msgid "sig rec %lu[%d] in hintlist of %u does not point to a dir record\n"
+msgstr ""
+
+#: g10/trustdb.c:1735
+#, c-format
+msgid "lid %lu: no primary key\n"
+msgstr ""
+
+#: g10/trustdb.c:1764
+#, c-format
+msgid "lid %lu: user id not found in keyblock\n"
+msgstr ""
+
+#: g10/trustdb.c:1771
+#, c-format
+msgid "lid %lu: self-signature in hintlist\n"
+msgstr ""
+
+#: g10/trustdb.c:1776
+#, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (3)\n"
+msgstr ""
+
+#: g10/trustdb.c:1783
+#, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: very strange: no public key\n"
+msgstr ""
+
+#: g10/trustdb.c:1790 g10/trustdb.c:2225 g10/trustdb.c:2297
+#, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: invalid signature: %s\n"
+msgstr ""
+
+#: g10/trustdb.c:1835
+#, c-format
+msgid "hintlist %lu[%d] of %lu does not point to a dir record\n"
+msgstr ""
+
+#: g10/trustdb.c:1841
+#, c-format
+msgid "lid %lu does not have a key\n"
+msgstr ""
+
+#: g10/trustdb.c:1851
+#, c-format
+msgid "lid %lu: can't get keyblock: %s\n"
+msgstr ""
+
+#: g10/trustdb.c:2096
+#, c-format
+msgid "key %08lX.%lu, uid %02X%02X: good self-signature\n"
+msgstr ""
+
+#: g10/trustdb.c:2188
+#, c-format
+msgid ""
+"key %08lX.%lu, uid %02X%02X, sig %08lX: duplicated signature - deleted\n"
+msgstr ""
+
+#: g10/trustdb.c:2211
+#, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (1)\n"
+msgstr ""
+
+#: g10/trustdb.c:2218
+#, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: weird: no public key\n"
+msgstr ""
+
+#: g10/trustdb.c:2240
+#, c-format
+msgid "key %08lX.%lu, uid %02X%02X: has shadow dir %lu but not yet marked.\n"
+msgstr ""
+
+#: g10/trustdb.c:2279
+#, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (2)\n"
+msgstr ""
+
+#: g10/trustdb.c:2290
+#, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: no public key\n"
+msgstr ""
+
+#. key binding
+#: g10/trustdb.c:2386
+#, c-format
+msgid "key %08lX: bogus key binding by %08lX\n"
+msgstr ""
+
+#. key revocation
+#: g10/trustdb.c:2390
+#, c-format
+msgid "key %08lX: bogus key revocation by %08lX\n"
+msgstr ""
+
+#. subkey revocation
+#: g10/trustdb.c:2394
+#, c-format
+msgid "key %08lX: bogus subkey revocation by %08lX\n"
+msgstr ""
+
 #: g10/status.c:246
 msgid "No help available"
 msgstr ""
index 9208502..f6c2bc0 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnupg-0.4.1\n"
-"POT-Creation-Date: 1998-10-10 20:37+0200\n"
+"POT-Creation-Date: 1998-10-18 16:36+0200\n"
 "PO-Revision-Date: 1998-10-11 00:21+0200\n"
 "Last-Translator: Gaël Quéri <gqueri@mail.dotcom.fr>\n"
 "Language-Team: French <fr@li.org>\n"
@@ -198,10 +198,12 @@ msgid "Weak key"
 msgstr "Mauvaise clé"
 
 #: util/logger.c:177
+#, c-format
 msgid "Ohhhh jeeee ... this is a bug (%s:%d:%s)\n"
 msgstr "Ouais ... c'est un bug (%s:%d:%s)\n"
 
 #: util/logger.c:183
+#, c-format
 msgid "you found a bug ... (%s:%d)\n"
 msgstr "vous avez trouvé un bug ... (%s:%d)\n"
 
@@ -235,7 +237,7 @@ msgstr ""
 "Il n'y a pas assez d'octets aléatoires disponibles. Faites autre chose\n"
 "pour que l'OS puisse amasser plus d'entropie! (il faut %d octets de plus)\n"
 
-#: g10/g10.c:147
+#: g10/g10.c:149
 msgid ""
 "@Commands:\n"
 " "
@@ -243,119 +245,124 @@ msgstr ""
 "@Commandes:\n"
 " "
 
-#: g10/g10.c:150
+#: g10/g10.c:152
 msgid "|[file]|make a signature"
 msgstr "|[fichier]|faire une signature"
 
-#: g10/g10.c:151
+#: g10/g10.c:153
 msgid "|[file]|make a clear text signature"
 msgstr "|[fichier]|faire une signature en texte clair"
 
-#: g10/g10.c:152
+#: g10/g10.c:154
 msgid "make a detached signature"
 msgstr "faire une signature détachée"
 
-#: g10/g10.c:153
+#: g10/g10.c:155
 msgid "encrypt data"
 msgstr "crypter les données"
 
-#: g10/g10.c:154
+#: g10/g10.c:156
 msgid "encryption only with symmetric cipher"
 msgstr "chiffrement symétrique seumement"
 
-#: g10/g10.c:155
+#: g10/g10.c:157
 msgid "store only"
 msgstr "pas d'action"
 
-#: g10/g10.c:156
+#: g10/g10.c:158
 msgid "decrypt data (default)"
 msgstr "décrypter les données (défaut)"
 
-#: g10/g10.c:157
+#: g10/g10.c:159
 msgid "verify a signature"
 msgstr "vérifier une signature"
 
-#: g10/g10.c:159
+#: g10/g10.c:161
 msgid "list keys"
 msgstr "lister les clés"
 
-#: g10/g10.c:160
+#: g10/g10.c:162
 msgid "list keys and signatures"
 msgstr "lister les clés et les signatures"
 
-#: g10/g10.c:161
+#: g10/g10.c:163
 msgid "check key signatures"
 msgstr "vérifier les signatures des clés"
 
-#: g10/g10.c:162
+#: g10/g10.c:164
 msgid "list keys and fingerprints"
 msgstr "lister les clés et les empreintes"
 
-#: g10/g10.c:163
+#: g10/g10.c:165
 msgid "list secret keys"
 msgstr "lister les clés secrètes"
 
-#: g10/g10.c:165
+#: g10/g10.c:167
 msgid "generate a new key pair"
 msgstr "générer une nouvelle paire de clés"
 
-#: g10/g10.c:167
+#: g10/g10.c:169
 msgid "remove key from the public keyring"
 msgstr "enlever la clé du porte-clés public"
 
-#: g10/g10.c:169
+#: g10/g10.c:171
 msgid "sign or edit a key"
 msgstr "signer ou éditer une clé"
 
-#: g10/g10.c:170
+#: g10/g10.c:172
 msgid "generate a revocation certificate"
 msgstr "générer un certificat de révocation"
 
-#: g10/g10.c:172
+#: g10/g10.c:174
 msgid "export keys"
 msgstr "exporter les clés"
 
-#: g10/g10.c:175
+#: g10/g10.c:176
 msgid "import/merge keys"
 msgstr "importer/fusionner les clés"
 
-#: g10/g10.c:176
+#: g10/g10.c:177
 msgid "list only the sequence of packets"
 msgstr "ne lister qu'une suite de paquets"
 
-#: g10/g10.c:178
+#: g10/g10.c:180
 msgid "export the ownertrust values"
 msgstr "exporter les valeurs de confiance"
 
-#: g10/g10.c:179
+#: g10/g10.c:182
 msgid "import ownertrust values"
 msgstr "importer les valeurs de confiance"
 
-#: g10/g10.c:180
+#: g10/g10.c:184
+#, fuzzy
+msgid "|[NAMES]|update the trust database"
+msgstr "|[NOMS]|vérifier la base de confiance"
+
+#: g10/g10.c:186
 msgid "|[NAMES]|check the trust database"
 msgstr "|[NOMS]|vérifier la base de confiance"
 
-#: g10/g10.c:181
+#: g10/g10.c:187
 msgid "fix a corrupted trust database"
 msgstr "réparer une base de confiance corrompue"
 
-#: g10/g10.c:182
+#: g10/g10.c:188
 msgid "De-Armor a file or stdin"
 msgstr "Enlever l'armure d'un fichier ou de stdin"
 
-#: g10/g10.c:183
+#: g10/g10.c:189
 msgid "En-Armor a file or stdin"
 msgstr "Mettre une armure à un fichier ou à stdin"
 
-#: g10/g10.c:184
+#: g10/g10.c:190
 msgid "|algo [files]|print message digests"
 msgstr "|alg. [fich.]|indiquer les fonctions de hachage"
 
-#: g10/g10.c:185
+#: g10/g10.c:191
 msgid "print all message digests"
 msgstr "écrire toutes les fonctions de hachage"
 
-#: g10/g10.c:192
+#: g10/g10.c:198
 msgid ""
 "@\n"
 "Options:\n"
@@ -365,124 +372,129 @@ msgstr ""
 "Options:\n"
 " "
 
-#: g10/g10.c:194
+#: g10/g10.c:200
 msgid "create ascii armored output"
 msgstr "créer une sortie ascii armurée"
 
-#: g10/g10.c:196
+#: g10/g10.c:202
 msgid "use this user-id to sign or decrypt"
 msgstr "utiliser ce nom pour signer ou décrypter"
 
-#: g10/g10.c:197
+#: g10/g10.c:203
 msgid "use this user-id for encryption"
 msgstr "utiliser ce nom d'utilisateur pour crypter"
 
-#: g10/g10.c:198
+#: g10/g10.c:204
 msgid "|N|set compress level N (0 disables)"
 msgstr "|N|niveau de compression N (0 désactive)"
 
-#: g10/g10.c:199
+#: g10/g10.c:205
 msgid "use canonical text mode"
 msgstr "utiliser le mode de texte canonique"
 
-#: g10/g10.c:201
+#: g10/g10.c:207
 msgid "use as output file"
 msgstr "utiliser comme fichier de sortie"
 
-#: g10/g10.c:202
+#: g10/g10.c:208
 msgid "verbose"
 msgstr "bavard"
 
+#: g10/g10.c:209
+#, fuzzy
+msgid "force v3 signatures"
+msgstr "vérifier les signatures des clés"
+
 #. { oDryRun, "dry-run",   0, N_("do not make any changes") },
-#: g10/g10.c:204
+#: g10/g10.c:211
 msgid "batch mode: never ask"
 msgstr "mode automatique: ne jamais demander"
 
-#: g10/g10.c:205
+#: g10/g10.c:212
 msgid "assume yes on most questions"
 msgstr "supposer oui à la plupart des questions"
 
-#: g10/g10.c:206
+#: g10/g10.c:213
 msgid "assume no on most questions"
 msgstr "supposer non à la plupart des questions"
 
-#: g10/g10.c:207
+#: g10/g10.c:214
 msgid "add this keyring to the list of keyrings"
 msgstr "ajouter ce porte-clés à la liste des porte-clés"
 
-#: g10/g10.c:208
+#: g10/g10.c:215
 msgid "add this secret keyring to the list"
 msgstr "ajouter ce porte-clés secret à la liste"
 
-#: g10/g10.c:209
+#: g10/g10.c:216
 msgid "|NAME|use NAME as default secret key"
 msgstr "|NOM|utiliser NOM comme clé secrète par défaut"
 
-#: g10/g10.c:210
+#: g10/g10.c:217
 msgid "read options from file"
 msgstr "lire les options du fichier"
 
-#: g10/g10.c:212
+#: g10/g10.c:219
 msgid "set debugging flags"
 msgstr "choisir les attributs de déboguage"
 
-#: g10/g10.c:213
+#: g10/g10.c:220
 msgid "enable full debugging"
 msgstr "permettre un déboguage complet"
 
-#: g10/g10.c:214
+#: g10/g10.c:221
 msgid "|FD|write status info to this FD"
 msgstr "|FD|écrire les informations d'état sur ce descripteur"
 
-#: g10/g10.c:215
+#: g10/g10.c:222
 msgid "do not write comment packets"
 msgstr "ne pas écrire de paquets de commentaire"
 
-#: g10/g10.c:216
+#: g10/g10.c:223
 msgid "(default is 1)"
 msgstr "(1 par défaut)"
 
-#: g10/g10.c:217
+#: g10/g10.c:224
 msgid "(default is 3)"
 msgstr "(3 par défaut)"
 
-#: g10/g10.c:218
+#: g10/g10.c:225
 msgid "|FILE|load extension module FILE"
 msgstr "|FICH|charger le module d'extension FICH"
 
-#: g10/g10.c:219
+#: g10/g10.c:226
 msgid "emulate the mode described in RFC1991"
 msgstr "émuler le mode décrit dans la RFC1991"
 
-#: g10/g10.c:220
+#: g10/g10.c:227
 msgid "|N|use passphrase mode N"
 msgstr "|N|utiliser le mode de mots de passe N"
 
-#: g10/g10.c:222
+#: g10/g10.c:229
 msgid "|NAME|use message digest algorithm NAME for passphrases"
 msgstr "|NOM|utiliser le hachage NOM pour les mots de passe"
 
-#: g10/g10.c:224
+#: g10/g10.c:231
 msgid "|NAME|use cipher algorithm NAME for passphrases"
 msgstr "|NOM|utiliser le cryptage NOM pour les mots de passe"
 
-#: g10/g10.c:226
+#: g10/g10.c:233
 msgid "|NAME|use cipher algorithm NAME"
 msgstr "|NOM|utiliser l'algorithme de cryptage NOM"
 
-#: g10/g10.c:227
+#: g10/g10.c:234
 msgid "|NAME|use message digest algorithm NAME"
 msgstr "|NOM|utiliser la fonction de hachage NOM"
 
-#: g10/g10.c:228
+#: g10/g10.c:235
 msgid "|N|use compress algorithm N"
 msgstr "|N|utiliser l'algorithme de compression N"
 
-#: g10/g10.c:229
+#: g10/g10.c:236
 msgid "throw keyid field of encrypted packets"
 msgstr "enlever l'identification des paquets cryptés"
 
-#: g10/g10.c:237
+#: g10/g10.c:244
 msgid ""
 "@\n"
 "Examples:\n"
@@ -502,27 +514,28 @@ msgstr ""
 " --list-keys [utilisateur]    montrer les clés\n"
 " --fingerprint [utilisateur]  montrer les empreintes\n"
 
-#: g10/g10.c:312
+#: g10/g10.c:319
 msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
 msgstr "Rapporter toutes anomalies à <gnupg-bugs@gnu.org>.\n"
 
-#: g10/g10.c:317
+#: g10/g10.c:324
 msgid "Usage: gpgm [options] [files] (-h for help)"
 msgstr "Utilisation: gpgm [options] [fichiers] (-h pour l'aide)"
 
-#: g10/g10.c:319
+#: g10/g10.c:326
 msgid "Usage: gpg [options] [files] (-h for help)"
 msgstr "Utilisation: gpg [options] [fichiers] (-h pour l'aide)"
 
-#: g10/g10.c:324
+#: g10/g10.c:331
+#, fuzzy
 msgid ""
 "Syntax: gpgm [options] [files]\n"
-"GNUPG maintenance utility\n"
+"GnuPG maintenance utility\n"
 msgstr ""
 "Syntaxe: gpgm [options] [fichiers]\n"
 "utilitaire de maitenance de GNUPG\n"
 
-#: g10/g10.c:327
+#: g10/g10.c:334
 msgid ""
 "Syntax: gpg [options] [files]\n"
 "sign, check, encrypt or decrypt\n"
@@ -532,7 +545,7 @@ msgstr ""
 "signer, vérifier, crypter ou décrypter\n"
 "l'opération par défaut dépend des données entrées\n"
 
-#: g10/g10.c:333
+#: g10/g10.c:340
 msgid ""
 "\n"
 "Supported algorithms:\n"
@@ -540,141 +553,141 @@ msgstr ""
 "\n"
 "Algorithmes supportés:\n"
 
-#: g10/g10.c:408
+#: g10/g10.c:415
 msgid "usage: gpgm [options] "
 msgstr "utilisation: gpgm [options] "
 
-#: g10/g10.c:410
+#: g10/g10.c:417
 msgid "usage: gpg [options] "
 msgstr "utilisation: gpg [options] "
 
-#: g10/g10.c:451
+#: g10/g10.c:458
 msgid "conflicting commands\n"
 msgstr "commandes en conflit\n"
 
-#: g10/g10.c:590
+#: g10/g10.c:596
 #, c-format
 msgid "note: no default option file '%s'\n"
 msgstr "note: pas de fichier d'options par défaut '%s'\n"
 
-#: g10/g10.c:594
+#: g10/g10.c:600
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "fichier d'options '%s' : %s\n"
 
-#: g10/g10.c:601
+#: g10/g10.c:607
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "lire les options de '%s'\n"
 
-#: g10/g10.c:768 g10/g10.c:780
+#: g10/g10.c:778 g10/g10.c:790
 msgid "selected cipher algorithm is invalid\n"
 msgstr "l'algorithme de cryptage sélectionné est invalide\n"
 
-#: g10/g10.c:774 g10/g10.c:786
+#: g10/g10.c:784 g10/g10.c:796
 msgid "selected digest algorithm is invalid\n"
 msgstr "la fonction de hachage sélectionnée est invalide\n"
 
-#: g10/g10.c:789
+#: g10/g10.c:799
 #, c-format
 msgid "compress algorithm must be in range %d..%d\n"
 msgstr "l'algorithme de compression doit faire partie de l'échelle %d..%d\n"
 
-#: g10/g10.c:791
+#: g10/g10.c:801
 msgid "completes-needed must be greater than 0\n"
 msgstr "le nombre de signatures complètes minimal doit être supérieur à 0\n"
 
-#: g10/g10.c:793
+#: g10/g10.c:803
 msgid "marginals-needed must be greater than 1\n"
 msgstr "le nombre de singatures marginales minimal doit être supérieur à 1\n"
 
-#: g10/g10.c:796
+#: g10/g10.c:806
 msgid "note: simple S2K mode (0) is strongly discouraged\n"
 msgstr "note: le mode S2K simple (0) est fortement déconseillé\n"
 
-#: g10/g10.c:800
+#: g10/g10.c:810
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
 msgstr "mode S2K invalide; doit être 0, 1 ou 3\n"
 
-#: g10/g10.c:876
+#: g10/g10.c:886
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
 msgstr "n'a pas pu initialiser la base de confiance: %s\n"
 
-#: g10/g10.c:882
+#: g10/g10.c:892
 msgid "--store [filename]"
 msgstr "--store [nom du fichier]"
 
-#: g10/g10.c:890
+#: g10/g10.c:900
 msgid "--symmetric [filename]"
 msgstr "--symmetric [nom du fichier]"
 
-#: g10/g10.c:898
+#: g10/g10.c:908
 msgid "--encrypt [filename]"
 msgstr "--encrypt [nom du fichier]"
 
-#: g10/g10.c:911
+#: g10/g10.c:921
 msgid "--sign [filename]"
 msgstr "--sign [nom du fichier]"
 
-#: g10/g10.c:924
+#: g10/g10.c:934
 msgid "--sign --encrypt [filename]"
 msgstr "--sign --encrypt [nom du fichier]"
 
-#: g10/g10.c:938
+#: g10/g10.c:948
 msgid "--clearsign [filename]"
 msgstr "--clearsign [nom du fichier]"
 
-#: g10/g10.c:950
+#: g10/g10.c:960
 msgid "--decrypt [filename]"
 msgstr "--decrypt [nom du fichier]"
 
-#: g10/g10.c:959
+#: g10/g10.c:969
 msgid "--edit-key username"
 msgstr "--edit-key utilisateur"
 
-#: g10/g10.c:967
+#: g10/g10.c:977
 msgid "--delete-secret-key username"
 msgstr "--delete-secret-key utilisateur"
 
-#: g10/g10.c:970
+#: g10/g10.c:980
 msgid "--delete-key username"
 msgstr "--delete-key utilisateur"
 
-#: g10/encode.c:213 g10/g10.c:993 g10/keylist.c:79
+#: g10/encode.c:215 g10/g10.c:1003 g10/keylist.c:80
 #, c-format
 msgid "can't open %s: %s\n"
 msgstr "ne peut ouvrir %s: %s\n"
 
-#: g10/g10.c:1004
+#: g10/g10.c:1014
 msgid "-k[v][v][v][c] [userid] [keyring]"
 msgstr "-k[v][v][v][c] [utilisateur] [porte-clés]"
 
-#: g10/g10.c:1059
+#: g10/g10.c:1069
 #, c-format
 msgid "dearmoring failed: %s\n"
 msgstr "suppression d'armure non réussie: %s\n"
 
-#: g10/g10.c:1067
+#: g10/g10.c:1077
 #, c-format
 msgid "enarmoring failed: %s\n"
 msgstr "mise d'armure non réussie:%s \n"
 
-#: g10/g10.c:1128
+#: g10/g10.c:1138
 #, c-format
 msgid "invalid hash algorithm '%s'\n"
 msgstr "algorithme de hachage invalide '%s'\n"
 
-#: g10/g10.c:1204
+#: g10/g10.c:1220
 msgid "[filename]"
 msgstr "[nom du fichier]"
 
-#: g10/decrypt.c:59 g10/g10.c:1206 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1222 g10/verify.c:66
 #, c-format
 msgid "can't open '%s'\n"
 msgstr "ne peut ouvrir '%s'\n"
 
-#: g10/g10.c:1251
+#: g10/g10.c:1269
 msgid ""
 "RSA keys are deprecated; please consider creating a new key and use this key "
 "in the future\n"
@@ -682,61 +695,62 @@ msgstr ""
 "Les clés RSA sont déconseillées: considérez créer une nouvelle clé et "
 "l'utiliser dans l'avenir\n"
 
-#: g10/armor.c:335 g10/armor.c:375
+#: g10/armor.c:341 g10/armor.c:381
 msgid "armor header: "
 msgstr "entête d'armure: "
 
-#: g10/armor.c:340
+#: g10/armor.c:346
 msgid "invalid clearsig header\n"
 msgstr "entête de signature claire invalide\n"
 
-#: g10/armor.c:366
+#: g10/armor.c:372
 msgid "invalid armor header: "
 msgstr "entête d'armure invalide: "
 
-#: g10/armor.c:440
+#: g10/armor.c:449
 #, c-format
 msgid "armor: %s\n"
 msgstr "armure: %s\n"
 
-#: g10/armor.c:484
+#: g10/armor.c:493
 msgid "invalid dash escaped line: "
 msgstr "ligne d'échappement invalide: "
 
-#: g10/armor.c:553
+#: g10/armor.c:562
 msgid "invalid clear text header: "
 msgstr "entête de texte clair invalide: "
 
-#: g10/armor.c:783
+#: g10/armor.c:794
+#, c-format
 msgid "invalid radix64 character %02x skipped\n"
 msgstr "caractère %02x invalide en base 64 sauté\n"
 
-#: g10/armor.c:816
+#: g10/armor.c:827
 msgid "premature eof (no CRC)\n"
 msgstr "fin de fichier prématurée (pas de CRC)\n"
 
-#: g10/armor.c:835
+#: g10/armor.c:846
 msgid "premature eof (in CRC)\n"
 msgstr "fin de fichier prématurée (dans le CRC)\n"
 
-#: g10/armor.c:839
+#: g10/armor.c:850
 msgid "malformed CRC\n"
 msgstr "CRC malformé\n"
 
-#: g10/armor.c:843
+#: g10/armor.c:854
 #, c-format
 msgid "CRC error; %06lx - %06lx\n"
 msgstr "Erreur de CRC; 06lx - %06lx\n"
 
-#: g10/armor.c:862
+#: g10/armor.c:873
 msgid "premature eof (in Trailer)\n"
 msgstr "fin de fichier prématurée (dans la remorque)\n"
 
-#: g10/armor.c:866
+#: g10/armor.c:877
 msgid "error in trailer line\n"
 msgstr "erreur dans la ligne de remorque\n"
 
-#: g10/armor.c:1120
+#: g10/armor.c:1131
 msgid "no valid RFC1991 or OpenPGP data found.\n"
 msgstr "pas de donnée RFC1991 ou OpenPGP valide trouvée.\n"
 
@@ -928,48 +942,48 @@ msgstr "
 msgid "writing key binding signature\n"
 msgstr "écriture de la signature de \"key-binding\"\n"
 
-#: g10/keygen.c:383
+#: g10/keygen.c:387
 msgid "Please select what kind of key you want:\n"
 msgstr "Sélectionnez le type de clé désiré:\n"
 
-#: g10/keygen.c:385
+#: g10/keygen.c:389
 #, c-format
 msgid "   (%d) DSA and ElGamal (default)\n"
 msgstr "   (%d) DSA et ElGamal (défaut)\n"
 
-#: g10/keygen.c:386
+#: g10/keygen.c:390
 #, c-format
 msgid "   (%d) ElGamal (sign and encrypt)\n"
 msgstr "   (%d) ElGamal (signature et cryptage)\n"
 
-#: g10/keygen.c:388
+#: g10/keygen.c:392
 #, c-format
 msgid "   (%d) ElGamal (encrypt only)\n"
 msgstr "   (%d) ElGamal (cryptage seulement)\n"
 
-#: g10/keygen.c:389
+#: g10/keygen.c:393
 #, c-format
 msgid "   (%d) DSA (sign only)\n"
 msgstr "   (%d) DSA (signature seulement)\n"
 
-#: g10/keygen.c:390
+#: g10/keygen.c:394
 #, c-format
 msgid "   (%d) ElGamal in a v3 packet\n"
 msgstr "   (%d) ElGamal dans un paquet v3\n"
 
-#: g10/keygen.c:394
+#: g10/keygen.c:398
 msgid "keygen.algo"
 msgstr "Sélectionnez l'algorithme à utiliser:"
 
-#: g10/keygen.c:394
+#: g10/keygen.c:398
 msgid "Your selection? "
 msgstr "Votre choix? "
 
-#: g10/keygen.c:420
+#: g10/keygen.c:424
 msgid "Invalid selection.\n"
 msgstr "Choix invalide.\n"
 
-#: g10/keygen.c:432
+#: g10/keygen.c:436
 #, c-format
 msgid ""
 "About to generate a new %s keypair.\n"
@@ -982,23 +996,23 @@ msgstr ""
 "          la taille par défaut est 1024 bits\n"
 " la taille maximale conseillée est 2048 bits\n"
 
-#: g10/keygen.c:438
+#: g10/keygen.c:442
 msgid "keygen.size"
 msgstr ""
 
-#: g10/keygen.c:439
+#: g10/keygen.c:443
 msgid "What keysize do you want? (1024) "
 msgstr "Quelle taille de clé désirez-vous? (1024) "
 
-#: g10/keygen.c:444
+#: g10/keygen.c:448
 msgid "DSA only allows keysizes from 512 to 1024\n"
 msgstr "DSA permet seulement des tailles comprises entre 512 et 1024\n"
 
-#: g10/keygen.c:446
+#: g10/keygen.c:450
 msgid "keysize too small; 768 is smallest value allowed.\n"
 msgstr "taille trop petite; 768 est la plus petite valeur permise.\n"
 
-#: g10/keygen.c:449
+#: g10/keygen.c:453
 msgid ""
 "Keysizes larger than 2048 are not suggested because\n"
 "computations take REALLY long!\n"
@@ -1006,15 +1020,15 @@ msgstr ""
 "Les tailles supérieures à 2048 ne sont pas conseillées car\n"
 "les calculs sont VRAIMENT longs!\n"
 
-#: g10/keygen.c:451
+#: g10/keygen.c:455
 msgid "keygen.size.huge.okay"
 msgstr ""
 
-#: g10/keygen.c:452
+#: g10/keygen.c:456
 msgid "Are you sure that you want this keysize? "
 msgstr "Etes-vous sûr que vous voulez cette taille? "
 
-#: g10/keygen.c:453
+#: g10/keygen.c:457
 msgid ""
 "Okay, but keep in mind that your monitor and keyboard radiation is also very "
 "vulnerable to attacks!\n"
@@ -1022,25 +1036,25 @@ msgstr ""
 "D'accord, mais n'oubliez pas que votre écran et les radiations du clavier "
 "sont aussi très vulnérables aux attaques!\n"
 
-#: g10/keygen.c:460
+#: g10/keygen.c:464
 msgid "keygen.size.large.okay"
 msgstr ""
 
-#: g10/keygen.c:461
+#: g10/keygen.c:465
 msgid "Do you really need such a large keysize? "
 msgstr "Avez-vous réellement besoin d'une taille aussi grande? "
 
-#: g10/keygen.c:467
+#: g10/keygen.c:471
 #, c-format
 msgid "Requested keysize is %u bits\n"
 msgstr "La taille demandée est %u bits\n"
 
-#: g10/keygen.c:470 g10/keygen.c:474
+#: g10/keygen.c:474 g10/keygen.c:478
 #, c-format
 msgid "rounded up to %u bits\n"
 msgstr "arrondie à %u bits\n"
 
-#: g10/keygen.c:486
+#: g10/keygen.c:491
 msgid ""
 "Please specify how long the key should be valid.\n"
 "         0 = key does not expire\n"
@@ -1056,37 +1070,37 @@ msgstr ""
 "      <n>m = la clé expire dans n mois\n"
 "      <n>y = la clé expire dans n ans\n"
 
-#: g10/keygen.c:501
+#: g10/keygen.c:506
 msgid "keygen.valid"
 msgstr ""
 
-#: g10/keygen.c:501
+#: g10/keygen.c:506
 msgid "Key is valid for? (0) "
 msgstr "La clé est valide pour? (0) "
 
-#: g10/keygen.c:512
+#: g10/keygen.c:517
 msgid "invalid value\n"
 msgstr "valeur invalide\n"
 
-#: g10/keygen.c:517
+#: g10/keygen.c:522
 msgid "Key does not expire at all\n"
 msgstr "La clé n'expire pas du tout\n"
 
 #. print the date when the key expires
-#: g10/keygen.c:520
+#: g10/keygen.c:528
 #, c-format
 msgid "Key expires at %s\n"
 msgstr "La clé expire le %s\n"
 
-#: g10/keygen.c:525
+#: g10/keygen.c:532
 msgid "keygen.valid.okay"
 msgstr ""
 
-#: g10/keygen.c:526
+#: g10/keygen.c:533
 msgid "Is this correct (y/n)? "
 msgstr "Est-ce correct (o/n)? "
 
-#: g10/keygen.c:554
+#: g10/keygen.c:561
 msgid ""
 "\n"
 "You need a User-ID to identify your key; the software constructs the user "
@@ -1102,51 +1116,51 @@ msgstr ""
 "   \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de\"\n"
 "\n"
 
-#: g10/keygen.c:565
+#: g10/keygen.c:572
 msgid "keygen.name"
 msgstr ""
 
-#: g10/keygen.c:565
+#: g10/keygen.c:572
 msgid "Real name: "
 msgstr "Nom: "
 
-#: g10/keygen.c:569
+#: g10/keygen.c:576
 msgid "Invalid character in name\n"
 msgstr "Caractère invalide dans le nom\n"
 
-#: g10/keygen.c:571
+#: g10/keygen.c:578
 msgid "Name may not start with a digit\n"
 msgstr "Le nom ne doit pas commencer avec un chiffre\n"
 
-#: g10/keygen.c:573
+#: g10/keygen.c:580
 msgid "Name must be at least 5 characters long\n"
 msgstr "Le nom doit faire au moins 5 caractères de long\n"
 
-#: g10/keygen.c:581
+#: g10/keygen.c:588
 msgid "keygen.email"
 msgstr ""
 
-#: g10/keygen.c:581
+#: g10/keygen.c:588
 msgid "Email address: "
 msgstr "Adresse e-mail: "
 
-#: g10/keygen.c:593
+#: g10/keygen.c:600
 msgid "Not a valid email address\n"
 msgstr "Ce n'est pas une adresse e-mail valide\n"
 
-#: g10/keygen.c:601
+#: g10/keygen.c:608
 msgid "keygen.comment"
 msgstr ""
 
-#: g10/keygen.c:601
+#: g10/keygen.c:608
 msgid "Comment: "
 msgstr "Commentaire: "
 
-#: g10/keygen.c:607
+#: g10/keygen.c:614
 msgid "Invalid character in comment\n"
 msgstr "Caractère invalide dans le commentaire\n"
 
-#: g10/keygen.c:627
+#: g10/keygen.c:634
 #, c-format
 msgid ""
 "You selected this USER-ID:\n"
@@ -1157,11 +1171,11 @@ msgstr ""
 "    \"%s\"\n"
 "\n"
 
-#: g10/keygen.c:630
+#: g10/keygen.c:637
 msgid "NnCcEeOoQq"
 msgstr "NnCcEeOoQq"
 
-#: g10/keygen.c:639
+#: g10/keygen.c:646
 msgid "keygen.userid.cmd"
 msgstr ""
 "N pour changer le nom.\n"
@@ -1170,11 +1184,11 @@ msgstr ""
 "O pour continuer à générer la clé.\n"
 "Q pour arrêter de générer de clé."
 
-#: g10/keygen.c:640
+#: g10/keygen.c:647
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgstr "Changer le (N)om, le (C)ommentaire, l'(E)-mail ou (O)K/(Q)uitter? "
 
-#: g10/keygen.c:687
+#: g10/keygen.c:694
 msgid ""
 "You need a Passphrase to protect your secret key.\n"
 "\n"
@@ -1182,11 +1196,11 @@ msgstr ""
 "Vous avez besoin d'un mot de passe pour protéger votre clé secrète.\n"
 "\n"
 
-#: g10/keyedit.c:388 g10/keygen.c:695
+#: g10/keyedit.c:389 g10/keygen.c:702
 msgid "passphrase not correctly repeated; try again.\n"
 msgstr "le mot de passe n'a pas été correctement répété; recommencez.\n"
 
-#: g10/keygen.c:701
+#: g10/keygen.c:708
 msgid ""
 "You don't want a passphrase - this is probably a *bad* idea!\n"
 "I will do it anyway.  You can change your passphrase at any time,\n"
@@ -1198,7 +1212,7 @@ msgstr ""
 "le désirez, en utilisant ce programme avec l'option \"--edit-key\".\n"
 "\n"
 
-#: g10/keygen.c:722
+#: g10/keygen.c:729
 msgid ""
 "We need to generate a lot of random bytes. It is a good idea to perform\n"
 "some other action (work in another window, move the mouse, utilize the\n"
@@ -1211,33 +1225,33 @@ msgstr ""
 "premiers; cela permet au générateur de nombres aléatoires de gagner assez\n"
 "d'entropie plus facilement.\n"
 
-#: g10/keygen.c:789
+#: g10/keygen.c:799
 msgid "Key generation can only be used in interactive mode\n"
 msgstr "La génération de clé ne peut être faite qu'en mode interactif\n"
 
-#: g10/keygen.c:797
+#: g10/keygen.c:807
 msgid "DSA keypair will have 1024 bits.\n"
 msgstr "La paire de clés DSA fera 1024 bits.\n"
 
-#: g10/keygen.c:803
+#: g10/keygen.c:813
 msgid "Key generation cancelled.\n"
 msgstr "La génération a été annulée.\n"
 
-#: g10/keygen.c:813
+#: g10/keygen.c:823
 #, c-format
 msgid "writing public certificate to '%s'\n"
 msgstr "écriture d'un certificat public à '%s'\n"
 
-#: g10/keygen.c:814
+#: g10/keygen.c:824
 #, c-format
 msgid "writing secret certificate to '%s'\n"
 msgstr "écriture d'un certificat secret à '%s'\n"
 
-#: g10/keygen.c:891
+#: g10/keygen.c:901
 msgid "public and secret key created and signed.\n"
 msgstr "les clés publique et secrète ont été créées et signées.\n"
 
-#: g10/keygen.c:893
+#: g10/keygen.c:903
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--add-key\" to generate a secondary key for this purpose.\n"
@@ -1246,16 +1260,16 @@ msgstr ""
 "utiliser\n"
 "la commande \"--add-key\" pour générer une clé secondaire à cette fin.\n"
 
-#: g10/keygen.c:907 g10/keygen.c:991
+#: g10/keygen.c:917 g10/keygen.c:1002
 #, c-format
 msgid "Key generation failed: %s\n"
 msgstr "La génération de clé a échoué: %s\n"
 
-#: g10/keygen.c:968
+#: g10/keygen.c:979
 msgid "keygen.sub.okay"
 msgstr "Répondez \"oui\" (ou simplement \"o\") pour générer la sous-clé"
 
-#: g10/keygen.c:969
+#: g10/keygen.c:980
 msgid "Really create? "
 msgstr "Créer vraiment? "
 
@@ -1269,289 +1283,290 @@ msgstr "%s: ne peut ouvrir: %s\n"
 msgid "error creating passphrase: %s\n"
 msgstr "erreur pendant la création du mot de passe: %s\n"
 
-#: g10/encode.c:152 g10/encode.c:264
+#: g10/encode.c:154 g10/encode.c:267
 #, c-format
 msgid "%s: warning: empty file\n"
 msgstr "%s: attention: fichier vide\n"
 
-#: g10/encode.c:219
+#: g10/encode.c:221
 #, c-format
 msgid "reading from '%s'\n"
 msgstr "lecture de '%s'\n"
 
-#: g10/encode.c:392
+#: g10/encode.c:395
 #, c-format
 msgid "%s encrypted for: %s\n"
 msgstr "%s crypté pour: %s\n"
 
-#: g10/getkey.c:884
+#: g10/getkey.c:854
 #, c-format
 msgid "using secondary key %08lX instead of primary key %08lX\n"
-msgstr "utilisation de la clé secondaire %08lX à la place de la clé\n"
+msgstr ""
+"utilisation de la clé secondaire %08lX à la place de la clé\n"
 "principale %08lX\n"
 
-#: g10/import.c:105 g10/trustdb.c:1389
+#: g10/import.c:106 g10/trustdb.c:1100
 #, c-format
 msgid "can't open file: %s\n"
 msgstr "ne peut ouvrir le fichier: %s\n"
 
-#: g10/import.c:121
+#: g10/import.c:122
 #, c-format
 msgid "skipping block of type %d\n"
 msgstr "ne prend pas en compte le bloc du type %d\n"
 
-#: g10/import.c:131 g10/trustdb.c:1464
+#: g10/import.c:132 g10/trustdb.c:1175
 #, c-format
 msgid "read error: %s\n"
 msgstr "erreur de lecture: %s\n"
 
-#: g10/import.c:272 g10/import.c:445
+#: g10/import.c:273 g10/import.c:446
 #, c-format
 msgid "key %08lX: no user id\n"
 msgstr "clé %08lX: pas de nom d'utilisateur\n"
 
-#: g10/import.c:282
+#: g10/import.c:283
 #, c-format
 msgid "key %08lX: no valid user ids\n"
 msgstr "clé %08lX: pas de nom d'utilisateur valide\n"
 
-#: g10/import.c:284
+#: g10/import.c:285
 msgid "this may be caused by a missing self-signature\n"
 msgstr "cela peut provenir d'une auto-signature manquante\n"
 
-#: g10/import.c:293 g10/import.c:511
+#: g10/import.c:294 g10/import.c:512
 #, c-format
 msgid "key %08lX: public key not found: %s\n"
 msgstr "clé %08lX: clé publique pas trouvée: %s\n"
 
-#: g10/import.c:299
+#: g10/import.c:300
 msgid "no default public keyring\n"
 msgstr "pas de porte-clés public par défaut\n"
 
-#: g10/import.c:303
+#: g10/import.c:304
 #, c-format
 msgid "writing to '%s'\n"
 msgstr "écriture de '%s'\n"
 
-#: g10/import.c:307 g10/import.c:362 g10/import.c:565
+#: g10/import.c:308 g10/import.c:363 g10/import.c:566
 #, c-format
 msgid "can't lock public keyring: %s\n"
 msgstr "ne peut verrouiller le porte-clés public: %s\n"
 
-#: g10/import.c:310
+#: g10/import.c:311
 #, c-format
 msgid "can't write to keyring: %s\n"
 msgstr "ne peut écrire sur le porte-clés: %s\n"
 
 #. we are ready
-#: g10/import.c:313
+#: g10/import.c:314
 #, c-format
 msgid "key %08lX: public key imported\n"
 msgstr "clé %08lX: clé publique importée\n"
 
-#: g10/import.c:322
+#: g10/import.c:323
 #, c-format
 msgid "key %08lX: doesn't match our copy\n"
 msgstr "clé %08lX: ne vérifie pas notre copie\n"
 
-#: g10/import.c:335 g10/import.c:520
+#: g10/import.c:336 g10/import.c:521
 #, c-format
 msgid "key %08lX: can't locate original keyblock: %s\n"
 msgstr "clé %08lX: ne peut trouver le bloc de clés original: %s\n"
 
-#: g10/import.c:342 g10/import.c:527
+#: g10/import.c:343 g10/import.c:528
 #, c-format
 msgid "key %08lX: can't read original keyblock: %s\n"
 msgstr "clé %08lX: ne peut lire le bloc de clés original: %s\n"
 
-#: g10/import.c:359 g10/import.c:460 g10/import.c:562
+#: g10/import.c:360 g10/import.c:461 g10/import.c:563
 msgid "writing keyblock\n"
 msgstr "écriture du bloc de clés\n"
 
-#: g10/import.c:365 g10/import.c:568
+#: g10/import.c:366 g10/import.c:569
 #, c-format
 msgid "can't write keyblock: %s\n"
 msgstr "ne peut écrire le bloc de clés: %s\n"
 
-#: g10/import.c:369
+#: g10/import.c:370
 #, c-format
 msgid "key %08lX: 1 new user-id\n"
 msgstr "clé %08lX: un nouvel utilisateur\n"
 
-#: g10/import.c:372
+#: g10/import.c:373
 #, c-format
 msgid "key %08lX: %d new user-ids\n"
 msgstr "clé %08lX: %d nouveaux utilisateurs\n"
 
-#: g10/import.c:375
+#: g10/import.c:376
 #, c-format
 msgid "key %08lX: 1 new signature\n"
 msgstr "clé %08lX: une nouvelle signature\n"
 
-#: g10/import.c:378
+#: g10/import.c:379
 #, c-format
 msgid "key %08lX: %d new signatures\n"
 msgstr "clé %08lX: %d nouvelles signatures\n"
 
-#: g10/import.c:381
+#: g10/import.c:382
 #, c-format
 msgid "key %08lX: 1 new subkey\n"
 msgstr "clé %08lX: une nouvelle sous-clé\n"
 
-#: g10/import.c:384
+#: g10/import.c:385
 #, c-format
 msgid "key %08lX: %d new subkeys\n"
 msgstr "clé %08lX: %d nouvelles sous-clés\n"
 
-#: g10/import.c:388
+#: g10/import.c:389
 #, c-format
 msgid "key %08lX: not changed\n"
 msgstr "clé %08lX: n'a pas changé\n"
 
-#: g10/import.c:463
+#: g10/import.c:464
 #, c-format
 msgid "can't lock secret keyring: %s\n"
 msgstr "ne peut verrouiller le porte-clés secret: %s\n"
 
-#: g10/import.c:466
+#: g10/import.c:467
 #, c-format
 msgid "can't write keyring: %s\n"
 msgstr "ne peut écrire le porte-clés: %s\n"
 
 #. we are ready
-#: g10/import.c:469
+#: g10/import.c:470
 #, c-format
 msgid "key %08lX: secret key imported\n"
 msgstr "clé %08lX: clé secrète importée\n"
 
 #. we can't merge secret keys
-#: g10/import.c:472
+#: g10/import.c:473
 #, c-format
 msgid "key %08lX: already in secret keyring\n"
 msgstr "clé %08lX: déjà dans le porte-clés secret\n"
 
-#: g10/import.c:476
+#: g10/import.c:477
 #, c-format
 msgid "key %08lX: secret key not found: %s\n"
 msgstr "clé %08lX: clé secrète pas trouvée: %s\n"
 
-#: g10/import.c:505
+#: g10/import.c:506
 #, c-format
 msgid "key %08lX: no public key - can't apply revocation certificate\n"
 msgstr ""
 "clé %08lX: pas de clé publique - ne peut appliquer le certificat de\n"
 "révocation\n"
 
-#: g10/import.c:538
+#: g10/import.c:539
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
 msgstr "clé %08lX: certificat de révocation invalide: %s - rejeté\n"
 
 #. we are ready
-#: g10/import.c:571
+#: g10/import.c:572
 #, c-format
 msgid "key %08lX: revocation certificate imported\n"
 msgstr "clé %08lX: certificat de révocation importé\n"
 
-#: g10/import.c:601
+#: g10/import.c:602
 #, c-format
 msgid "key %08lX: no user-id for signature\n"
 msgstr "clé %08lX: pas d'utilisateur pour la signature\n"
 
-#: g10/import.c:608
+#: g10/import.c:609
 #, c-format
 msgid "key %08lX: unsupported public key algorithm\n"
 msgstr "clé %08lX: algorithme de clé publique non supporté\n"
 
-#: g10/import.c:609
+#: g10/import.c:610
 #, c-format
 msgid "key %08lX: invalid self-signature\n"
 msgstr "clé %08lX: auto-signature invalide\n"
 
-#: g10/import.c:638
+#: g10/import.c:639
 #, c-format
 msgid "key %08lX: skipped userid '"
 msgstr "clé %08lX: utilisateur non pris en compte '"
 
-#: g10/import.c:661
+#: g10/import.c:662
 #, c-format
 msgid "key %08lX: revocation certificate at wrong place - skipped\n"
 msgstr ""
 "clé %08lX: certificat de révocation au mauvais endroit - non prise en "
 "compte\n"
 
-#: g10/import.c:669
+#: g10/import.c:670
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
 msgstr ""
 "clé %08lX: certificat de révocation invalide: %s - non prise en compte\n"
 
-#: g10/import.c:731
+#: g10/import.c:732
 #, c-format
 msgid "key %08lX: revocation certificate added\n"
 msgstr "clé %08lX: certificat de révocation ajouté\n"
 
-#: g10/import.c:794 g10/import.c:830
+#: g10/import.c:795 g10/import.c:831
 #, c-format
 msgid "key %08lX: our copy has no self-signature\n"
 msgstr "clé %08lX: notre copie n'a pas d'auto-signature\n"
 
-#: g10/keyedit.c:80
+#: g10/keyedit.c:81
 #, c-format
 msgid "%s: user not found\n"
 msgstr "%s: utilisateur non trouvé\n"
 
-#: g10/keyedit.c:163
+#: g10/keyedit.c:164
 msgid "[self-signature]"
 msgstr "[auto-signature]"
 
-#: g10/keyedit.c:181
+#: g10/keyedit.c:182
 msgid "1 bad signature\n"
 msgstr "une mauvaise signature\n"
 
-#: g10/keyedit.c:183
+#: g10/keyedit.c:184
 #, c-format
 msgid "%d bad signatures\n"
 msgstr "%d mauvaises signatures\n"
 
-#: g10/keyedit.c:185
+#: g10/keyedit.c:186
 msgid "1 signature not checked due to a missing key\n"
 msgstr "une signature non vérifiée à cause d'une clé manquante\n"
 
-#: g10/keyedit.c:187
+#: g10/keyedit.c:188
 #, c-format
 msgid "%d signatures not checked due to missing keys\n"
 msgstr "%d signatures non vérifiées à cause de clés manquantes\n"
 
-#: g10/keyedit.c:189
+#: g10/keyedit.c:190
 msgid "1 signature not checked due to an error\n"
 msgstr "une signature non vérifiée à cause d'une erreur\n"
 
-#: g10/keyedit.c:191
+#: g10/keyedit.c:192
 #, c-format
 msgid "%d signatures not checked due to errors\n"
 msgstr "%d signatures non vérifiées à cause d'erreurs\n"
 
-#: g10/keyedit.c:193
+#: g10/keyedit.c:194
 msgid "1 user id without valid self-signature detected\n"
 msgstr "un nom d'utilisateur sans auto-signature valide détecté\n"
 
-#: g10/keyedit.c:195
+#: g10/keyedit.c:196
 #, c-format
 msgid "%d user ids without valid self-signatures detected\n"
 msgstr "%d nom d'utilisateurs sans auto-signature valide détecté\n"
 
-#: g10/keyedit.c:257
+#: g10/keyedit.c:258
 #, c-format
 msgid "Already signed by key %08lX\n"
 msgstr "Déjà signé par la clé %08lX\n"
 
-#: g10/keyedit.c:265
+#: g10/keyedit.c:266
 #, c-format
 msgid "Nothing to sign with key %08lX\n"
 msgstr "Rien à signer avec la clé %08lX\n"
 
-#: g10/keyedit.c:274
+#: g10/keyedit.c:275
 msgid ""
 "Are you really sure that you want to sign this key\n"
 "with your key: \""
@@ -1559,39 +1574,39 @@ msgstr ""
 "Etes-vous vraiment sûr(e) que vous voulez signer cette clé\n"
 "avec votre clé: \""
 
-#: g10/keyedit.c:281
+#: g10/keyedit.c:282
 msgid "sign_uid.okay"
 msgstr ""
 
-#: g10/keyedit.c:281
+#: g10/keyedit.c:282
 msgid "Really sign? "
 msgstr "Signer réellement? "
 
-#: g10/keyedit.c:302
+#: g10/keyedit.c:303
 #, c-format
 msgid "signing failed: %s\n"
 msgstr "la signature a échoué: %s\n"
 
-#: g10/keyedit.c:355
+#: g10/keyedit.c:356
 msgid "This key is not protected.\n"
 msgstr "Cette clé n'est pas protégée.\n"
 
-#: g10/keyedit.c:358
+#: g10/keyedit.c:359
 msgid "Key is protected.\n"
 msgstr "La clé est protégée.\n"
 
-#: g10/keyedit.c:375
+#: g10/keyedit.c:376
 #, c-format
 msgid "Can't edit this key: %s\n"
 msgstr "Ne peut éditer cette clé: %s\n"
 
-#: g10/keyedit.c:380
+#: g10/keyedit.c:381
 msgid ""
 "Enter the new passphrase for this secret key.\n"
 "\n"
 msgstr "Entrez le nouveau mot de passe pour cette clé secrète.\n"
 
-#: g10/keyedit.c:392
+#: g10/keyedit.c:393
 msgid ""
 "You don't want a passphrase - this is probably a *bad* idea!\n"
 "\n"
@@ -1599,290 +1614,321 @@ msgstr ""
 "Vous ne voulez pas de mot de passe - cela est certainement une *mauvaise* "
 "idée\n"
 
-#: g10/keyedit.c:394
+#: g10/keyedit.c:395
 msgid "change_passwd.empty.okay"
 msgstr ""
 
-#: g10/keyedit.c:395
+#: g10/keyedit.c:396
 msgid "Do you really want to do this? "
 msgstr "Voulez-vous vraiment faire cela? "
 
-#: g10/keyedit.c:450
+#: g10/keyedit.c:489
 msgid "quit"
 msgstr "quitter"
 
-#: g10/keyedit.c:450
+#: g10/keyedit.c:489
 msgid "quit this menu"
 msgstr "quitter ce menu"
 
-#: g10/keyedit.c:451
+#: g10/keyedit.c:490
 msgid "q"
 msgstr "q"
 
-#: g10/keyedit.c:452
+#: g10/keyedit.c:491
 msgid "save"
 msgstr "enregistrer"
 
-#: g10/keyedit.c:452
+#: g10/keyedit.c:491
 msgid "save and quit"
 msgstr "enregistrer et quitter"
 
-#: g10/keyedit.c:453
+#: g10/keyedit.c:492
 msgid "help"
 msgstr "aide"
 
-#: g10/keyedit.c:453
+#: g10/keyedit.c:492
 msgid "show this help"
 msgstr "montrer cette aide"
 
 # g10/keyedit.c:556 ???
-#: g10/keyedit.c:455
+#: g10/keyedit.c:494
 msgid "fpr"
 msgstr "fpr"
 
-#: g10/keyedit.c:455
+#: g10/keyedit.c:494
 msgid "show fingerprint"
 msgstr "montrer l'empreinte"
 
-#: g10/keyedit.c:456
+#: g10/keyedit.c:495
 msgid "list"
 msgstr "lister"
 
-#: g10/keyedit.c:456
+#: g10/keyedit.c:495
 msgid "list key and user ids"
 msgstr "lister la clé et les noms d'utilisateurs"
 
-#: g10/keyedit.c:457
+#: g10/keyedit.c:496
 msgid "l"
 msgstr "l"
 
-#: g10/keyedit.c:458
+#: g10/keyedit.c:497
 msgid "uid"
 msgstr "uid"
 
-#: g10/keyedit.c:458
+#: g10/keyedit.c:497
 msgid "select user id N"
 msgstr "sélectionner le nom d'utilisateur N"
 
-#: g10/keyedit.c:459
+#: g10/keyedit.c:498
 msgid "key"
 msgstr "clé"
 
-#: g10/keyedit.c:459
+#: g10/keyedit.c:498
 msgid "select secondary key N"
 msgstr "sélectionner la clé secondaire N"
 
-#: g10/keyedit.c:460
+#: g10/keyedit.c:499
 msgid "check"
 msgstr "vérifier"
 
-#: g10/keyedit.c:460
+#: g10/keyedit.c:499
 msgid "list signatures"
 msgstr "lister les signatures"
 
-#: g10/keyedit.c:461
+#: g10/keyedit.c:500
 msgid "c"
 msgstr "c"
 
-#: g10/keyedit.c:462
+#: g10/keyedit.c:501
 msgid "sign"
 msgstr "signer"
 
-#: g10/keyedit.c:462
+#: g10/keyedit.c:501
 msgid "sign the key"
 msgstr "signer la clé"
 
-#: g10/keyedit.c:463
+#: g10/keyedit.c:502
 msgid "s"
 msgstr "s"
 
-#: g10/keyedit.c:464
+#: g10/keyedit.c:503
 msgid "debug"
 msgstr "déboguer"
 
-#: g10/keyedit.c:465
+#: g10/keyedit.c:504
 msgid "adduid"
 msgstr "aj.ut"
 
-#: g10/keyedit.c:465
+#: g10/keyedit.c:504
 msgid "add a user id"
 msgstr "ajouter un utilisateur"
 
-#: g10/keyedit.c:466
+#: g10/keyedit.c:505
 msgid "deluid"
 msgstr "suppr.ut"
 
-#: g10/keyedit.c:466
+#: g10/keyedit.c:505
 msgid "delete user id"
 msgstr "enlever un utilisateur"
 
-#: g10/keyedit.c:467
+#: g10/keyedit.c:506
 msgid "addkey"
 msgstr "aj.clé"
 
-#: g10/keyedit.c:467
+#: g10/keyedit.c:506
 msgid "add a secondary key"
 msgstr "ajouter une clé secondaire"
 
-#: g10/keyedit.c:468
+#: g10/keyedit.c:507
 msgid "delkey"
 msgstr "suppr.clé"
 
-#: g10/keyedit.c:468
+#: g10/keyedit.c:507
 msgid "delete a secondary key"
 msgstr "enlever une clé secondaire"
 
-#: g10/keyedit.c:469
+#: g10/keyedit.c:508
+#, fuzzy
+msgid "expire"
+msgstr "préf"
+
+#: g10/keyedit.c:508
+#, fuzzy
+msgid "change the expire date"
+msgstr "changer le mot de passe"
+
+#: g10/keyedit.c:509
 msgid "toggle"
 msgstr "changer"
 
-#: g10/keyedit.c:469
+#: g10/keyedit.c:509
 msgid "toggle between secret and public key listing"
 msgstr "passer de la liste des clés secrètes aux clés privées et inversement"
 
-#: g10/keyedit.c:471
+#: g10/keyedit.c:511
 msgid "t"
 msgstr "t"
 
-#: g10/keyedit.c:472
+#: g10/keyedit.c:512
 msgid "pref"
 msgstr "préf"
 
-#: g10/keyedit.c:472
+#: g10/keyedit.c:512
 msgid "list preferences"
 msgstr "lister les préférences"
 
-#: g10/keyedit.c:473
+#: g10/keyedit.c:513
 msgid "passwd"
 msgstr "mot.pas"
 
-#: g10/keyedit.c:473
+#: g10/keyedit.c:513
 msgid "change the passphrase"
 msgstr "changer le mot de passe"
 
-#: g10/keyedit.c:474
+#: g10/keyedit.c:514
 msgid "trust"
 msgstr "confi."
 
-#: g10/keyedit.c:474
+#: g10/keyedit.c:514
 msgid "change the ownertrust"
 msgstr "changer la confiance"
 
-#: g10/keyedit.c:492
+#: g10/keyedit.c:532
 msgid "can't do that in batchmode\n"
 msgstr "ne peut faire cela en mode automatique\n"
 
 #. check that they match
 #. FIXME: check that they both match
-#: g10/keyedit.c:515
+#: g10/keyedit.c:559
 msgid "Secret key is available.\n"
 msgstr "La clé secrète est disponible.\n"
 
-#: g10/keyedit.c:531
+#: g10/keyedit.c:575
 msgid "keyedit.cmd"
 msgstr "Entrez \"aide\" s'il vous plaît."
 
-#: g10/keyedit.c:531
+#: g10/keyedit.c:575
 msgid "Command> "
 msgstr "Commande> "
 
-#: g10/keyedit.c:556
+#: g10/keyedit.c:600
 msgid "Need the secret key to to this.\n"
 msgstr "Il faut la clé secrète pour faire cela.\n"
 
-#: g10/keyedit.c:575
+#: g10/keyedit.c:619
 msgid "keyedit.save.okay"
 msgstr ""
 
-#: g10/keyedit.c:576
+#: g10/keyedit.c:620
 msgid "Save changes? "
 msgstr "Enregistrer les changements? "
 
-#: g10/keyedit.c:578
+#: g10/keyedit.c:622
 msgid "keyedit.cancel.okay"
 msgstr ""
 
-#: g10/keyedit.c:579
+#: g10/keyedit.c:623
 msgid "Quit without saving? "
 msgstr "Quitter sans enregistrer? "
 
-#: g10/keyedit.c:589
+#: g10/keyedit.c:633
 #, c-format
 msgid "update failed: %s\n"
 msgstr "la mise à jour a échoué: %s\n"
 
-#: g10/keyedit.c:596
+#: g10/keyedit.c:640
 #, c-format
 msgid "update secret failed: %s\n"
 msgstr "la mise à jour de la clé secrète a échoué: %s\n"
 
-#: g10/keyedit.c:603
+#: g10/keyedit.c:647
 msgid "Key not changed so no update needed.\n"
 msgstr "La clé n'a pas changé donc la mise à jour est inutile.\n"
 
-#: g10/keyedit.c:606 g10/keyedit.c:664
+#: g10/keyedit.c:650 g10/keyedit.c:708
 #, c-format
 msgid "update of trust db failed: %s\n"
 msgstr "la mise à jour de la base de confiance a échoué: %s\n"
 
-#: g10/keyedit.c:637
+#: g10/keyedit.c:681
 msgid "keyedit.sign_all.okay"
 msgstr ""
 
-#: g10/keyedit.c:638
+#: g10/keyedit.c:682
 msgid "Really sign all user ids? "
 msgstr "Signer vraiment tous les utilisateurs? "
 
-#: g10/keyedit.c:639
+#: g10/keyedit.c:683
 msgid "Hint: Select the user ids to sign\n"
 msgstr "Aide: Sélectionner les utilisateurs à signer\n"
 
-#: g10/keyedit.c:675
+#: g10/keyedit.c:719
 msgid "You must select at least one user id.\n"
 msgstr "Vous devez sélectionner au moins un utilisateur.\n"
 
-#: g10/keyedit.c:677
+#: g10/keyedit.c:721
 msgid "You can't delete the last user id!\n"
 msgstr "Vous ne pouvez pas supprimer le dernier utilisateur!\n"
 
-#: g10/keyedit.c:679
+#: g10/keyedit.c:723
 msgid "keyedit.remove.uid.okay"
 msgstr ""
 
-#: g10/keyedit.c:680
+#: g10/keyedit.c:724
 msgid "Really remove all selected user ids? "
 msgstr "Enlever réellement tous les utilisateurs sélectionnés? "
 
-#: g10/keyedit.c:681
+#: g10/keyedit.c:725
 msgid "Really remove this user id? "
 msgstr "Enlever réellement cet utilisateur? "
 
-#: g10/keyedit.c:704
+#: g10/keyedit.c:748
 msgid "You must select at least one key.\n"
 msgstr "Vous devez sélectionner au moins une clé.\n"
 
-#: g10/keyedit.c:706
+#: g10/keyedit.c:750
 msgid "keyedit.remove.subkey.okay"
 msgstr ""
 
-#: g10/keyedit.c:708
+#: g10/keyedit.c:752
 msgid "Do you really want to delete the selected keys? "
 msgstr "Voulez-vous supprimer les clés sélectionnées? "
 
-#: g10/keyedit.c:709
+#: g10/keyedit.c:753
 msgid "Do you really want to delete this key? "
 msgstr "Voulez-vous vraiment supprimer cette clé? "
 
-#: g10/keyedit.c:746
+#: g10/keyedit.c:800
 msgid "Invalid command  (try \"help\")\n"
 msgstr "Commande invalide  (essayez \"help\")\n"
 
-#: g10/keyedit.c:1129
+#: g10/keyedit.c:1178
+msgid "Please remove selections from the secret keys.\n"
+msgstr ""
+
+#: g10/keyedit.c:1184
+#, fuzzy
+msgid "Please select at most one secondary key.\n"
+msgstr "Vous devez sélectionner au moins une clé.\n"
+
+#: g10/keyedit.c:1188
+msgid "Changing exiration time for a secondary key.\n"
+msgstr ""
+
+#: g10/keyedit.c:1190
+msgid "Changing exiration time for the primary key.\n"
+msgstr ""
+
+#: g10/keyedit.c:1234
+msgid "No corresponding signature in secret ring\n"
+msgstr ""
+
+#: g10/keyedit.c:1294
 #, c-format
 msgid "No user id with index %d\n"
 msgstr "Pas d'utilisateur avec l'index %d\n"
 
-#: g10/keyedit.c:1174
+#: g10/keyedit.c:1339
 #, c-format
 msgid "No secondary key with index %d\n"
 msgstr "Pas de clé secondaire avec l'index %d\n"
@@ -1901,20 +1947,20 @@ msgstr "le d
 msgid "note: sender requested \"for-your-eyes-only\"\n"
 msgstr "note: l'expéditeur a demandé \"pour vos yeux seulement\"\n"
 
-#: g10/mainproc.c:846
+#: g10/mainproc.c:848
 #, c-format
 msgid "Signature made %.*s using %s key ID %08lX\n"
 msgstr "Signature faite %.*s avec %s clé ID %08lX\n"
 
-#: g10/mainproc.c:854
+#: g10/mainproc.c:856
 msgid "BAD signature from \""
 msgstr "MAUVAISE signature de \""
 
-#: g10/mainproc.c:855
+#: g10/mainproc.c:857
 msgid "Good signature from \""
 msgstr "Bonne signature de \""
 
-#: g10/mainproc.c:866
+#: g10/mainproc.c:868
 #, c-format
 msgid "Can't check signature: %s\n"
 msgstr "Ne peut vérifier la signature: %s\n"
@@ -1955,7 +2001,8 @@ msgstr "R
 
 #: g10/plaintext.c:102
 msgid "data not saved; use option \"--output\" to save it\n"
-msgstr "données non enregistrées; utilisez l'option \"--output\" pour\n"
+msgstr ""
+"données non enregistrées; utilisez l'option \"--output\" pour\n"
 "les enregistrer\n"
 
 #: g10/plaintext.c:214
@@ -1993,88 +2040,203 @@ msgstr ""
 
 #: g10/sig-check.c:165
 msgid "public key created in future (time warp or clock problem)\n"
-msgstr "clé publique créée dans le futur (voyage dans le temps ou problème\n"
+msgstr ""
+"clé publique créée dans le futur (voyage dans le temps ou problème\n"
 "d'horloge)\n"
 
-#: g10/sig-check.c:171
+#: g10/sig-check.c:170
 #, c-format
 msgid "warning: signature key expired %s\n"
 msgstr "attention: la clé de signature a expiré le %s\n"
 
-#: g10/trustdb.c:127
+#: g10/trustdb.c:122
 msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n"
-msgstr "La base de confiance est corrompue; exécutez \"gpgm --fix-trust-db\".\n"
+msgstr ""
+"La base de confiance est corrompue; exécutez \"gpgm --fix-trust-db\".\n"
 
-#: g10/trustdb.c:406
+#: g10/trustdb.c:389
 #, c-format
 msgid "chained sigrec %lu has a wrong owner\n"
 msgstr "l'enregistrement de signature %lu a un mauvais propriétaire\n"
 
-#: g10/trustdb.c:453
-#, c-format
-msgid "key %08lX: secret key without public key\n"
+#: g10/trustdb.c:436
+#, fuzzy, c-format
+msgid "key %08lX: secret key without public key - skipped\n"
 msgstr "clé %08lX: clé secrète sans clé publique\n"
 
-#: g10/trustdb.c:458
+#: g10/trustdb.c:442
 #, c-format
 msgid "key %08lX: secret and public key don't match\n"
 msgstr "clé %08lX: les clés secrète et publique ne correspondent pas\n"
 
-#: g10/trustdb.c:469
+#: g10/trustdb.c:452
 #, c-format
 msgid "key %08lX: can't put it into the trustdb\n"
 msgstr "clé %08lX: ne peut mettre cela dans la base de confiance\n"
 
-#: g10/trustdb.c:475
+#: g10/trustdb.c:458
 #, c-format
 msgid "key %08lX: query record failed\n"
 msgstr "clé %08lX: l'enregistrement de requête a échoué\n"
 
-#: g10/trustdb.c:484
-#, c-format
-msgid "key %08lX: already in ultikey_table\n"
-msgstr "clé %08lX: déja dans ultikey_table\n"
+#: g10/trustdb.c:467
+#, fuzzy, c-format
+msgid "key %08lX: already in secret key table\n"
+msgstr "clé %08lX: déjà dans le porte-clés secret\n"
 
-#: g10/trustdb.c:491
+#: g10/trustdb.c:470
+#, fuzzy, c-format
+msgid "key %08lX: accepted as secret key.\n"
+msgstr "clé %08lX: déjà dans le porte-clés secret\n"
+
+#: g10/trustdb.c:477
 #, c-format
 msgid "enum_secret_keys failed: %s\n"
 msgstr "enum_secret_keys a échoué: %s\n"
 
-#: g10/trustdb.c:964
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X: no public key for signature %08lX\n"
-msgstr "clé %08lX.%lu, uid %02X%02X: pas de clé publique pour la signature %08lX\n"
-
-#: g10/trustdb.c:971
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X: invalid %ssignature: %s\n"
-msgstr "clé %08lXi.%lu, uid %02X%02X: %ssignature invalide: %s\n"
-
-#: g10/trustdb.c:1658
+#: g10/trustdb.c:1428
 #, c-format
 msgid "key %08lX: insert trust record failed: %s\n"
 msgstr "clé %08lX: l'insertion d'enregistrement de confiance a échoué: %s\n"
 
-#: g10/trustdb.c:1662
+#: g10/trustdb.c:1432
 #, c-format
 msgid "key %08lX.%lu: inserted into trustdb\n"
 msgstr "clé %08lX.%lu: insérée dans la base de confiance\n"
 
-#: g10/trustdb.c:1670
+#: g10/trustdb.c:1440
 #, c-format
 msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
 msgstr "clé %08lX.%lu: créée dans le futur (problème d'horloge)\n"
 
-#: g10/trustdb.c:1678
+#: g10/trustdb.c:1447
 #, c-format
 msgid "key %08lX.%lu: expired at %s\n"
 msgstr "clé %08lX.%lu: a expiré le %s\n"
 
-#: g10/trustdb.c:1687
+#: g10/trustdb.c:1455
 #, c-format
 msgid "key %08lX.%lu: trust check failed: %s\n"
 msgstr "clé %08lX.%lu: la vérification de confiance a échoué: %s\n"
 
+#: g10/trustdb.c:1718
+#, c-format
+msgid "note: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
+msgstr ""
+
+#: g10/trustdb.c:1722
+#, c-format
+msgid "note: sig rec %lu[%d] in hintlist of %lu but not marked\n"
+msgstr ""
+
+#. we need the dir record
+#: g10/trustdb.c:1729
+#, c-format
+msgid "sig rec %lu[%d] in hintlist of %u does not point to a dir record\n"
+msgstr ""
+
+#: g10/trustdb.c:1735
+#, c-format
+msgid "lid %lu: no primary key\n"
+msgstr ""
+
+#: g10/trustdb.c:1764
+#, fuzzy, c-format
+msgid "lid %lu: user id not found in keyblock\n"
+msgstr "%s: utilisateur non trouvé\n"
+
+#: g10/trustdb.c:1771
+#, c-format
+msgid "lid %lu: self-signature in hintlist\n"
+msgstr ""
+
+#: g10/trustdb.c:1776
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (3)\n"
+msgstr "clé %08lXi.%lu, uid %02X%02X: %ssignature invalide: %s\n"
+
+#: g10/trustdb.c:1783
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: very strange: no public key\n"
+msgstr ""
+"clé %08lX.%lu, uid %02X%02X: pas de clé publique pour la signature %08lX\n"
+
+#: g10/trustdb.c:1790 g10/trustdb.c:2225 g10/trustdb.c:2297
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: invalid signature: %s\n"
+msgstr "clé %08lXi.%lu, uid %02X%02X: %ssignature invalide: %s\n"
+
+#: g10/trustdb.c:1835
+#, c-format
+msgid "hintlist %lu[%d] of %lu does not point to a dir record\n"
+msgstr ""
+
+#: g10/trustdb.c:1841
+#, c-format
+msgid "lid %lu does not have a key\n"
+msgstr ""
+
+#: g10/trustdb.c:1851
+#, fuzzy, c-format
+msgid "lid %lu: can't get keyblock: %s\n"
+msgstr "ne peut écrire le bloc de clés: %s\n"
+
+#: g10/trustdb.c:2096
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X: good self-signature\n"
+msgstr "clé %08lXi.%lu, uid %02X%02X: %ssignature invalide: %s\n"
+
+#: g10/trustdb.c:2188
+#, fuzzy, c-format
+msgid ""
+"key %08lX.%lu, uid %02X%02X, sig %08lX: duplicated signature - deleted\n"
+msgstr "clé %08lXi.%lu, uid %02X%02X: %ssignature invalide: %s\n"
+
+#: g10/trustdb.c:2211
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (1)\n"
+msgstr "clé %08lXi.%lu, uid %02X%02X: %ssignature invalide: %s\n"
+
+#: g10/trustdb.c:2218
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: weird: no public key\n"
+msgstr ""
+"clé %08lX.%lu, uid %02X%02X: pas de clé publique pour la signature %08lX\n"
+
+#: g10/trustdb.c:2240
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X: has shadow dir %lu but not yet marked.\n"
+msgstr "clé %08lXi.%lu, uid %02X%02X: %ssignature invalide: %s\n"
+
+#: g10/trustdb.c:2279
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (2)\n"
+msgstr "clé %08lXi.%lu, uid %02X%02X: %ssignature invalide: %s\n"
+
+#: g10/trustdb.c:2290
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: no public key\n"
+msgstr ""
+"clé %08lX.%lu, uid %02X%02X: pas de clé publique pour la signature %08lX\n"
+
+#. key binding
+#: g10/trustdb.c:2386
+#, fuzzy, c-format
+msgid "key %08lX: bogus key binding by %08lX\n"
+msgstr "clé %08lX: pas de nom d'utilisateur\n"
+
+#. key revocation
+#: g10/trustdb.c:2390
+#, fuzzy, c-format
+msgid "key %08lX: bogus key revocation by %08lX\n"
+msgstr "clé %08lX: clé publique pas trouvée: %s\n"
+
+#. subkey revocation
+#: g10/trustdb.c:2394
+#, fuzzy, c-format
+msgid "key %08lX: bogus subkey revocation by %08lX\n"
+msgstr "clé %08lX: clé publique pas trouvée: %s\n"
+
 #: g10/status.c:246
 msgid "No help available"
 msgstr "Pas d'aide disponible"
@@ -2130,3 +2292,6 @@ msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
 msgstr ""
 "ne peut éviter une mauvaise clé pour le chiffrement symétrique: \n"
 "%d essais ont eu lieu!\n"
+
+#~ msgid "key %08lX: already in ultikey_table\n"
+#~ msgstr "clé %08lX: déja dans ultikey_table\n"
index 3cb54c3..695265d 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gnupg-0.4.0\n"
-"POT-Creation-Date: 1998-10-11 12:08+0200\n"
+"POT-Creation-Date: 1998-10-18 16:36+0200\n"
 "PO-Revision-Date: 1998-10-11 12:34+02:00\n"
 "Last-Translator: Marco d'Itri <md@linux.it>\n"
 "Language-Team: Italian <it@li.org>\n"
@@ -235,7 +235,7 @@ msgstr ""
 "altra cosa per dare all'OS la possibilità di raccogliere altra entropia!\n"
 "(Servono ancora %d altri byte)\n"
 
-#: g10/g10.c:147
+#: g10/g10.c:149
 msgid ""
 "@Commands:\n"
 " "
@@ -243,119 +243,124 @@ msgstr ""
 "@Comandi:\n"
 " "
 
-#: g10/g10.c:150
+#: g10/g10.c:152
 msgid "|[file]|make a signature"
 msgstr "|[file]|fai una firma"
 
-#: g10/g10.c:151
+#: g10/g10.c:153
 msgid "|[file]|make a clear text signature"
 msgstr "|[file]|fai una firma mantenendo il testo in chiaro"
 
-#: g10/g10.c:152
+#: g10/g10.c:154
 msgid "make a detached signature"
 msgstr "fai una firma separata"
 
-#: g10/g10.c:153
+#: g10/g10.c:155
 msgid "encrypt data"
 msgstr "cifra dati"
 
-#: g10/g10.c:154
+#: g10/g10.c:156
 msgid "encryption only with symmetric cipher"
 msgstr "cifra solo con un cifrario simmetrico"
 
-#: g10/g10.c:155
+#: g10/g10.c:157
 msgid "store only"
 msgstr "immagazzina soltanto"
 
-#: g10/g10.c:156
+#: g10/g10.c:158
 msgid "decrypt data (default)"
 msgstr "decifra dati (predefinito)"
 
-#: g10/g10.c:157
+#: g10/g10.c:159
 msgid "verify a signature"
 msgstr "verifica una firma"
 
-#: g10/g10.c:159
+#: g10/g10.c:161
 msgid "list keys"
 msgstr "elenca le chiavi"
 
-#: g10/g10.c:160
+#: g10/g10.c:162
 msgid "list keys and signatures"
 msgstr "elenca le chiavi e le firme"
 
-#: g10/g10.c:161
+#: g10/g10.c:163
 msgid "check key signatures"
 msgstr "controlla le firme delle chiavi"
 
-#: g10/g10.c:162
+#: g10/g10.c:164
 msgid "list keys and fingerprints"
 msgstr "elenca le chiavi e le impronte digitali"
 
-#: g10/g10.c:163
+#: g10/g10.c:165
 msgid "list secret keys"
 msgstr "elenca le chiavi segrete"
 
-#: g10/g10.c:165
+#: g10/g10.c:167
 msgid "generate a new key pair"
 msgstr "genera una nuova coppia di chiavi"
 
-#: g10/g10.c:167
+#: g10/g10.c:169
 msgid "remove key from the public keyring"
 msgstr "rimuove una chiave dal portachiavi pubblico"
 
-#: g10/g10.c:169
+#: g10/g10.c:171
 msgid "sign or edit a key"
 msgstr "firma o modifica una chiave"
 
-#: g10/g10.c:170
+#: g10/g10.c:172
 msgid "generate a revocation certificate"
 msgstr "genera un certificato di revoca"
 
-#: g10/g10.c:172
+#: g10/g10.c:174
 msgid "export keys"
 msgstr "esporta delle chiavi"
 
-#: g10/g10.c:175
+#: g10/g10.c:176
 msgid "import/merge keys"
 msgstr "importa/aggiungi delle chiavi"
 
-#: g10/g10.c:176
+#: g10/g10.c:177
 msgid "list only the sequence of packets"
 msgstr "elenca solo la sequenza dei pacchetti"
 
-#: g10/g10.c:178
+#: g10/g10.c:180
 msgid "export the ownertrust values"
 msgstr "esporta i valori di fiducia"
 
-#: g10/g10.c:179
+#: g10/g10.c:182
 msgid "import ownertrust values"
 msgstr "importa i valori di fiducia"
 
-#: g10/g10.c:180
+#: g10/g10.c:184
+#, fuzzy
+msgid "|[NAMES]|update the trust database"
+msgstr "|[NAMES]|controlla il TrustDB"
+
+#: g10/g10.c:186
 msgid "|[NAMES]|check the trust database"
 msgstr "|[NAMES]|controlla il TrustDB"
 
-#: g10/g10.c:181
+#: g10/g10.c:187
 msgid "fix a corrupted trust database"
 msgstr "ripara un database della fiducia rovinato"
 
-#: g10/g10.c:182
+#: g10/g10.c:188
 msgid "De-Armor a file or stdin"
 msgstr "rimuovi l'armatura a un file o a stdin"
 
-#: g10/g10.c:183
+#: g10/g10.c:189
 msgid "En-Armor a file or stdin"
 msgstr "crea l'armatura a un file o a stdin"
 
-#: g10/g10.c:184
+#: g10/g10.c:190
 msgid "|algo [files]|print message digests"
 msgstr "|algo [files]|stampa tutti i message digests"
 
-#: g10/g10.c:185
+#: g10/g10.c:191
 msgid "print all message digests"
 msgstr "stampa tutti i message digests"
 
-#: g10/g10.c:192
+#: g10/g10.c:198
 msgid ""
 "@\n"
 "Options:\n"
@@ -365,124 +370,129 @@ msgstr ""
 "Opzioni:\n"
 " "
 
-#: g10/g10.c:194
+#: g10/g10.c:200
 msgid "create ascii armored output"
 msgstr "crea un output ascii con armatura"
 
-#: g10/g10.c:196
+#: g10/g10.c:202
 msgid "use this user-id to sign or decrypt"
 msgstr "usa questo user-id per firmare o decifrare"
 
-#: g10/g10.c:197
+#: g10/g10.c:203
 msgid "use this user-id for encryption"
 msgstr "usa questo user-id per cifrare"
 
-#: g10/g10.c:198
+#: g10/g10.c:204
 msgid "|N|set compress level N (0 disables)"
 msgstr "|N|imposta il livello di compressione (0 disabilita)"
 
-#: g10/g10.c:199
+#: g10/g10.c:205
 msgid "use canonical text mode"
 msgstr "usa il modo testo canonico"
 
-#: g10/g10.c:201
+#: g10/g10.c:207
 msgid "use as output file"
 msgstr "usa come file di output"
 
-#: g10/g10.c:202
+#: g10/g10.c:208
 msgid "verbose"
 msgstr "prolisso"
 
+#: g10/g10.c:209
+#, fuzzy
+msgid "force v3 signatures"
+msgstr "controlla le firme delle chiavi"
+
 #. { oDryRun, "dry-run",   0, N_("do not make any changes") },
-#: g10/g10.c:204
+#: g10/g10.c:211
 msgid "batch mode: never ask"
 msgstr "modo batch: non fare domande"
 
-#: g10/g10.c:205
+#: g10/g10.c:212
 msgid "assume yes on most questions"
 msgstr "assumi \"sì\" a quasi tutte le domande"
 
-#: g10/g10.c:206
+#: g10/g10.c:213
 msgid "assume no on most questions"
 msgstr "assumi \"no\" a quasi tutte le domande"
 
-#: g10/g10.c:207
+#: g10/g10.c:214
 msgid "add this keyring to the list of keyrings"
 msgstr "aggiungi questo portachiavi alla lista"
 
-#: g10/g10.c:208
+#: g10/g10.c:215
 msgid "add this secret keyring to the list"
 msgstr "aggiungi questo portachiavi segreto alla lista"
 
-#: g10/g10.c:209
+#: g10/g10.c:216
 msgid "|NAME|use NAME as default secret key"
 msgstr "|NOME|usa NOME come chiave segreta predefinita"
 
-#: g10/g10.c:210
+#: g10/g10.c:217
 msgid "read options from file"
 msgstr "leggi le opzioni dal file"
 
-#: g10/g10.c:212
+#: g10/g10.c:219
 msgid "set debugging flags"
 msgstr "imposta i flag di debugging"
 
-#: g10/g10.c:213
+#: g10/g10.c:220
 msgid "enable full debugging"
 msgstr "abilita il debugging completo"
 
-#: g10/g10.c:214
+#: g10/g10.c:221
 msgid "|FD|write status info to this FD"
 msgstr "|FD|scrivi le informazioni di stato su questo fd"
 
-#: g10/g10.c:215
+#: g10/g10.c:222
 msgid "do not write comment packets"
 msgstr "non scrivere pacchetti di commento"
 
-#: g10/g10.c:216
+#: g10/g10.c:223
 msgid "(default is 1)"
 msgstr "(predefinito è 1)"
 
-#: g10/g10.c:217
+#: g10/g10.c:224
 msgid "(default is 3)"
 msgstr "(predefinito è 3)"
 
-#: g10/g10.c:218
+#: g10/g10.c:225
 msgid "|FILE|load extension module FILE"
 msgstr "|FILE|carica il modulo di estensione FILE"
 
-#: g10/g10.c:219
+#: g10/g10.c:226
 msgid "emulate the mode described in RFC1991"
 msgstr "emula il modo descritto nel RFC1991"
 
-#: g10/g10.c:220
+#: g10/g10.c:227
 msgid "|N|use passphrase mode N"
 msgstr "|N|usa il modo N per la passphrase"
 
-#: g10/g10.c:222
+#: g10/g10.c:229
 msgid "|NAME|use message digest algorithm NAME for passphrases"
 msgstr "|NAME|usa l'algoritmo di message digest NOME"
 
-#: g10/g10.c:224
+#: g10/g10.c:231
 msgid "|NAME|use cipher algorithm NAME for passphrases"
 msgstr "|NAME|usa l'algoritmo di cifratura NOME per le passphrase"
 
-#: g10/g10.c:226
+#: g10/g10.c:233
 msgid "|NAME|use cipher algorithm NAME"
 msgstr "|NAME|usa l'algoritmo di cifratura NOME"
 
-#: g10/g10.c:227
+#: g10/g10.c:234
 msgid "|NAME|use message digest algorithm NAME"
 msgstr "|NAME|usa l'algoritmo di message digest NOME"
 
-#: g10/g10.c:228
+#: g10/g10.c:235
 msgid "|N|use compress algorithm N"
 msgstr "|N|usa l'algoritmo di compressione N"
 
-#: g10/g10.c:229
+#: g10/g10.c:236
 msgid "throw keyid field of encrypted packets"
 msgstr "elimina il campo keyid dei pacchetti crittografati"
 
-#: g10/g10.c:237
+#: g10/g10.c:244
 msgid ""
 "@\n"
 "Examples:\n"
@@ -502,27 +512,28 @@ msgstr ""
 " --list-keys [nomi]         mostra le chiavi\n"
 " --fingerprint [nomi]       mostra le impronte digitali\n"
 
-#: g10/g10.c:312
+#: g10/g10.c:319
 msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
 msgstr "Per favore segnala i bug a <gnupg-bugs@gnu.org>.\n"
 
-#: g10/g10.c:317
+#: g10/g10.c:324
 msgid "Usage: gpgm [options] [files] (-h for help)"
 msgstr "Uso: gpgm [opzioni] [file] (-h per l'aiuto)"
 
-#: g10/g10.c:319
+#: g10/g10.c:326
 msgid "Usage: gpg [options] [files] (-h for help)"
 msgstr "Uso: gpg [opzioni] [file] (-h per l'aiuto)"
 
-#: g10/g10.c:324
+#: g10/g10.c:331
+#, fuzzy
 msgid ""
 "Syntax: gpgm [options] [files]\n"
-"GNUPG maintenance utility\n"
+"GnuPG maintenance utility\n"
 msgstr ""
 "Sintassi: gpgm [opzioni] [file]\n"
 "Utility di manutenzione di GNUPG\n"
 
-#: g10/g10.c:327
+#: g10/g10.c:334
 msgid ""
 "Syntax: gpg [options] [files]\n"
 "sign, check, encrypt or decrypt\n"
@@ -532,7 +543,7 @@ msgstr ""
 "firma, controlla, cifra o decifra\n"
 "l'operazione predefinita dipende dai dati di input\n"
 
-#: g10/g10.c:333
+#: g10/g10.c:340
 msgid ""
 "\n"
 "Supported algorithms:\n"
@@ -540,141 +551,141 @@ msgstr ""
 "\n"
 "Algoritmi gestiti:\n"
 
-#: g10/g10.c:408
+#: g10/g10.c:415
 msgid "usage: gpgm [options] "
 msgstr "uso: gpgm [options] "
 
-#: g10/g10.c:410
+#: g10/g10.c:417
 msgid "usage: gpg [options] "
 msgstr "uso: gpg [options] "
 
-#: g10/g10.c:451
+#: g10/g10.c:458
 msgid "conflicting commands\n"
 msgstr "comandi in conflitto\n"
 
-#: g10/g10.c:590
+#: g10/g10.c:596
 #, c-format
 msgid "note: no default option file '%s'\n"
 msgstr "nota: nessun file con opzioni predefinite '%s'\n"
 
-#: g10/g10.c:594
+#: g10/g10.c:600
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "file con opzioni predefinite '%s': %s\n"
 
-#: g10/g10.c:601
+#: g10/g10.c:607
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "lettura delle opzioni da '%s'\n"
 
-#: g10/g10.c:768 g10/g10.c:780
+#: g10/g10.c:778 g10/g10.c:790
 msgid "selected cipher algorithm is invalid\n"
 msgstr "l'algoritmo di cifratura selezionato non è valido\n"
 
-#: g10/g10.c:774 g10/g10.c:786
+#: g10/g10.c:784 g10/g10.c:796
 msgid "selected digest algorithm is invalid\n"
 msgstr "l'algoritmo di digest selezionato non è valido\n"
 
-#: g10/g10.c:789
+#: g10/g10.c:799
 #, c-format
 msgid "compress algorithm must be in range %d..%d\n"
 msgstr "l'algoritmo di compressione deve essere tra %d e %d\n"
 
-#: g10/g10.c:791
+#: g10/g10.c:801
 msgid "completes-needed must be greater than 0\n"
 msgstr "completes-needed deve essere maggiore di 0\n"
 
-#: g10/g10.c:793
+#: g10/g10.c:803
 msgid "marginals-needed must be greater than 1\n"
 msgstr "marginals-needed deve essere maggiore di 1\n"
 
-#: g10/g10.c:796
+#: g10/g10.c:806
 msgid "note: simple S2K mode (0) is strongly discouraged\n"
 msgstr "nota: il modo S2K semplice (0) è fortemente scoraggiato\n"
 
-#: g10/g10.c:800
+#: g10/g10.c:810
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
 msgstr "modo S2K non valido; deve essere 0, 1 o 3\n"
 
-#: g10/g10.c:876
+#: g10/g10.c:886
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
 msgstr "inizializzazione del trustdb fallita: %s\n"
 
-#: g10/g10.c:882
+#: g10/g10.c:892
 msgid "--store [filename]"
 msgstr "--store [nomefile]"
 
-#: g10/g10.c:890
+#: g10/g10.c:900
 msgid "--symmetric [filename]"
 msgstr "--symmetric [nomefile]"
 
-#: g10/g10.c:898
+#: g10/g10.c:908
 msgid "--encrypt [filename]"
 msgstr "--encrypt [nomefile]"
 
-#: g10/g10.c:911
+#: g10/g10.c:921
 msgid "--sign [filename]"
 msgstr "--sign [nomefile]"
 
-#: g10/g10.c:924
+#: g10/g10.c:934
 msgid "--sign --encrypt [filename]"
 msgstr "--sign --encrypt [nomefile]"
 
-#: g10/g10.c:938
+#: g10/g10.c:948
 msgid "--clearsign [filename]"
 msgstr "--clearsign [nomefile]"
 
-#: g10/g10.c:950
+#: g10/g10.c:960
 msgid "--decrypt [filename]"
 msgstr "--decrypt [nomefile]"
 
-#: g10/g10.c:959
+#: g10/g10.c:969
 msgid "--edit-key username"
 msgstr "--edit-key nomeutente"
 
-#: g10/g10.c:967
+#: g10/g10.c:977
 msgid "--delete-secret-key username"
 msgstr "--delete-secret-key nomeutente"
 
-#: g10/g10.c:970
+#: g10/g10.c:980
 msgid "--delete-key username"
 msgstr "--delete-key nomeutente"
 
-#: g10/encode.c:213 g10/g10.c:993 g10/keylist.c:79
+#: g10/encode.c:215 g10/g10.c:1003 g10/keylist.c:80
 #, c-format
 msgid "can't open %s: %s\n"
 msgstr "impossibile aprire '%s': %s\n"
 
-#: g10/g10.c:1004
+#: g10/g10.c:1014
 msgid "-k[v][v][v][c] [userid] [keyring]"
 msgstr "-k[v][v][v][c] [userid] [portachiavi]"
 
-#: g10/g10.c:1059
+#: g10/g10.c:1069
 #, c-format
 msgid "dearmoring failed: %s\n"
 msgstr "rimozione dell'armatura fallita: %s\n"
 
-#: g10/g10.c:1067
+#: g10/g10.c:1077
 #, c-format
 msgid "enarmoring failed: %s\n"
 msgstr "creazione dell'armatura fallita: %s\n"
 
-#: g10/g10.c:1128
+#: g10/g10.c:1138
 #, c-format
 msgid "invalid hash algorithm '%s'\n"
 msgstr "algoritmo di hash non valido '%s'\n"
 
-#: g10/g10.c:1204
+#: g10/g10.c:1220
 msgid "[filename]"
 msgstr "[nomefile]"
 
-#: g10/decrypt.c:59 g10/g10.c:1206 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1222 g10/verify.c:66
 #, c-format
 msgid "can't open '%s'\n"
 msgstr "impossibile aprire '%s'\n"
 
-#: g10/g10.c:1251
+#: g10/g10.c:1269
 msgid ""
 "RSA keys are deprecated; please consider creating a new key and use this key "
 "in the future\n"
@@ -682,62 +693,62 @@ msgstr ""
 "L'uso di chiavi RSA è deprecato; per favore in futuro considera di creare e\n"
 "usare una nuova chiave.\n"
 
-#: g10/armor.c:335 g10/armor.c:375
+#: g10/armor.c:341 g10/armor.c:381
 msgid "armor header: "
 msgstr "header dell'armatura: "
 
-#: g10/armor.c:340
+#: g10/armor.c:346
 msgid "invalid clearsig header\n"
 msgstr "header della firma in chiaro non valido\n"
 
-#: g10/armor.c:366
+#: g10/armor.c:372
 msgid "invalid armor header: "
 msgstr "header dell'armatura non valido: "
 
-#: g10/armor.c:440
+#: g10/armor.c:449
 #, c-format
 msgid "armor: %s\n"
 msgstr "armatura: %s\n"
 
-#: g10/armor.c:484
+#: g10/armor.c:493
 msgid "invalid dash escaped line: "
 msgstr "riga protetta con il trattino non valida: "
 
-#: g10/armor.c:553
+#: g10/armor.c:562
 msgid "invalid clear text header: "
 msgstr "header del testo in chiaro non valido: "
 
-#: g10/armor.c:783
+#: g10/armor.c:794
 #, c-format
 msgid "invalid radix64 character %02x skipped\n"
 msgstr "Carattere radix64 non valido %02x saltato\n"
 
-#: g10/armor.c:816
+#: g10/armor.c:827
 msgid "premature eof (no CRC)\n"
 msgstr "eof prematura (nessun CRC)\n"
 
-#: g10/armor.c:835
+#: g10/armor.c:846
 msgid "premature eof (in CRC)\n"
 msgstr "eof prematura (nel CRC)\n"
 
-#: g10/armor.c:839
+#: g10/armor.c:850
 msgid "malformed CRC\n"
 msgstr "CRC malformato\n"
 
-#: g10/armor.c:843
+#: g10/armor.c:854
 #, c-format
 msgid "CRC error; %06lx - %06lx\n"
 msgstr "errore nel CRC; %06lx - %06lx\n"
 
-#: g10/armor.c:862
+#: g10/armor.c:873
 msgid "premature eof (in Trailer)\n"
 msgstr "eof prematura (nella coda)\n"
 
-#: g10/armor.c:866
+#: g10/armor.c:877
 msgid "error in trailer line\n"
 msgstr "errore nella riga della coda\n"
 
-#: g10/armor.c:1120
+#: g10/armor.c:1131
 msgid "no valid RFC1991 or OpenPGP data found.\n"
 msgstr "Non sono stati trovati dati RFC1991 o OpenPGP validi.\n"
 
@@ -923,48 +934,48 @@ msgstr "scrittura della autofirma\n"
 msgid "writing key binding signature\n"
 msgstr "scrittura della autofirma\n"
 
-#: g10/keygen.c:383
+#: g10/keygen.c:387
 msgid "Please select what kind of key you want:\n"
 msgstr "Per favore scegli che tipo di chiave vuoi:\n"
 
-#: g10/keygen.c:385
+#: g10/keygen.c:389
 #, c-format
 msgid "   (%d) DSA and ElGamal (default)\n"
 msgstr "   (%d) DSA e ElGamal (default)\n"
 
-#: g10/keygen.c:386
+#: g10/keygen.c:390
 #, c-format
 msgid "   (%d) ElGamal (sign and encrypt)\n"
 msgstr "   (%d) ElGamal (firma e crittografa)\n"
 
-#: g10/keygen.c:388
+#: g10/keygen.c:392
 #, c-format
 msgid "   (%d) ElGamal (encrypt only)\n"
 msgstr "   (%d) ElGamal (crittografa solo)\n"
 
-#: g10/keygen.c:389
+#: g10/keygen.c:393
 #, c-format
 msgid "   (%d) DSA (sign only)\n"
 msgstr "   (%d) DSA (firma solo)\n"
 
-#: g10/keygen.c:390
+#: g10/keygen.c:394
 #, c-format
 msgid "   (%d) ElGamal in a v3 packet\n"
 msgstr "   (%d) ElGamal in un pacchetto v3\n"
 
-#: g10/keygen.c:394
+#: g10/keygen.c:398
 msgid "keygen.algo"
 msgstr ""
 
-#: g10/keygen.c:394
+#: g10/keygen.c:398
 msgid "Your selection? "
 msgstr "Cosa scegli? "
 
-#: g10/keygen.c:420
+#: g10/keygen.c:424
 msgid "Invalid selection.\n"
 msgstr "Scelta non valida.\n"
 
-#: g10/keygen.c:432
+#: g10/keygen.c:436
 #, c-format
 msgid ""
 "About to generate a new %s keypair.\n"
@@ -977,23 +988,23 @@ msgstr ""
 "          la dimensione predefinita è 1024 bit\n"
 "  la dimensione massima consigliata è 2048 bit\n"
 
-#: g10/keygen.c:438
+#: g10/keygen.c:442
 msgid "keygen.size"
 msgstr ""
 
-#: g10/keygen.c:439
+#: g10/keygen.c:443
 msgid "What keysize do you want? (1024) "
 msgstr "Di che dimensioni vuoi la chiave? (1024) "
 
-#: g10/keygen.c:444
+#: g10/keygen.c:448
 msgid "DSA only allows keysizes from 512 to 1024\n"
 msgstr "DSA permette solo chiavi di dimensioni da 512 a 1024\n"
 
-#: g10/keygen.c:446
+#: g10/keygen.c:450
 msgid "keysize too small; 768 is smallest value allowed.\n"
 msgstr "la chiave è troppo corta; 768 è il minimo valore permesso.\n"
 
-#: g10/keygen.c:449
+#: g10/keygen.c:453
 msgid ""
 "Keysizes larger than 2048 are not suggested because\n"
 "computations take REALLY long!\n"
@@ -1001,15 +1012,15 @@ msgstr ""
 "Chiavi più lunghe di 2048 non sono consigliate perchè i calcoli sono \n"
 "VERAMENTE lunghi!\n"
 
-#: g10/keygen.c:451
+#: g10/keygen.c:455
 msgid "keygen.size.huge.okay"
 msgstr ""
 
-#: g10/keygen.c:452
+#: g10/keygen.c:456
 msgid "Are you sure that you want this keysize? "
 msgstr "Sei sicuro di volere una chiave di queste dimensioni? "
 
-#: g10/keygen.c:453
+#: g10/keygen.c:457
 msgid ""
 "Okay, but keep in mind that your monitor and keyboard radiation is also very "
 "vulnerable to attacks!\n"
@@ -1017,25 +1028,25 @@ msgstr ""
 "Va bene, ma ricordati che anche le radiazioni emesse dal tuo monitor e dalla "
 "tua tastiera sono molto vulnerabili ad attacchi!\n"
 
-#: g10/keygen.c:460
+#: g10/keygen.c:464
 msgid "keygen.size.large.okay"
 msgstr ""
 
-#: g10/keygen.c:461
+#: g10/keygen.c:465
 msgid "Do you really need such a large keysize? "
 msgstr "Ti serve davvero una chiave così lunga? "
 
-#: g10/keygen.c:467
+#: g10/keygen.c:471
 #, c-format
 msgid "Requested keysize is %u bits\n"
 msgstr "Le dimensioni della chiave richieste sono %u bit\n"
 
-#: g10/keygen.c:470 g10/keygen.c:474
+#: g10/keygen.c:474 g10/keygen.c:478
 #, c-format
 msgid "rounded up to %u bits\n"
 msgstr "arrotondate a %u bit\n"
 
-#: g10/keygen.c:486
+#: g10/keygen.c:491
 msgid ""
 "Please specify how long the key should be valid.\n"
 "         0 = key does not expire\n"
@@ -1050,37 +1061,37 @@ msgstr ""
 "      <n>m = la chiave scadrà dopo n mesi\n"
 "      <n>y = la chiave scadrà dopo n anni\n"
 
-#: g10/keygen.c:501
+#: g10/keygen.c:506
 msgid "keygen.valid"
 msgstr ""
 
-#: g10/keygen.c:501
+#: g10/keygen.c:506
 msgid "Key is valid for? (0) "
 msgstr "Chiave valida per? (0) "
 
-#: g10/keygen.c:512
+#: g10/keygen.c:517
 msgid "invalid value\n"
 msgstr "valore non valido\n"
 
-#: g10/keygen.c:517
+#: g10/keygen.c:522
 msgid "Key does not expire at all\n"
 msgstr "La chiave non scade\n"
 
 #. print the date when the key expires
-#: g10/keygen.c:520
+#: g10/keygen.c:528
 #, c-format
 msgid "Key expires at %s\n"
 msgstr "La chiave scadrà il %s\n"
 
-#: g10/keygen.c:525
+#: g10/keygen.c:532
 msgid "keygen.valid.okay"
 msgstr ""
 
-#: g10/keygen.c:526
+#: g10/keygen.c:533
 msgid "Is this correct (y/n)? "
 msgstr "È giusto (s/n)? "
 
-#: g10/keygen.c:554
+#: g10/keygen.c:561
 msgid ""
 "\n"
 "You need a User-ID to identify your key; the software constructs the user "
@@ -1096,51 +1107,51 @@ msgstr ""
 "    \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>\"\n"
 "\n"
 
-#: g10/keygen.c:565
+#: g10/keygen.c:572
 msgid "keygen.name"
 msgstr ""
 
-#: g10/keygen.c:565
+#: g10/keygen.c:572
 msgid "Real name: "
 msgstr "Nome e Cognome: "
 
-#: g10/keygen.c:569
+#: g10/keygen.c:576
 msgid "Invalid character in name\n"
 msgstr "Carattere non valido nel nome\n"
 
-#: g10/keygen.c:571
+#: g10/keygen.c:578
 msgid "Name may not start with a digit\n"
 msgstr "Il nome non può iniziare con una cifra\n"
 
-#: g10/keygen.c:573
+#: g10/keygen.c:580
 msgid "Name must be at least 5 characters long\n"
 msgstr "Il nome deve essere lungo almeno 5 caratteri\n"
 
-#: g10/keygen.c:581
+#: g10/keygen.c:588
 msgid "keygen.email"
 msgstr ""
 
-#: g10/keygen.c:581
+#: g10/keygen.c:588
 msgid "Email address: "
 msgstr "Indirizzo di Email: "
 
-#: g10/keygen.c:593
+#: g10/keygen.c:600
 msgid "Not a valid email address\n"
 msgstr "L'indirizzo di email non è valido\n"
 
-#: g10/keygen.c:601
+#: g10/keygen.c:608
 msgid "keygen.comment"
 msgstr ""
 
-#: g10/keygen.c:601
+#: g10/keygen.c:608
 msgid "Comment: "
 msgstr "Commento: "
 
-#: g10/keygen.c:607
+#: g10/keygen.c:614
 msgid "Invalid character in comment\n"
 msgstr "Carattere non valido nel commento\n"
 
-#: g10/keygen.c:627
+#: g10/keygen.c:634
 #, c-format
 msgid ""
 "You selected this USER-ID:\n"
@@ -1151,19 +1162,19 @@ msgstr ""
 "    \"%s\"\n"
 "\n"
 
-#: g10/keygen.c:630
+#: g10/keygen.c:637
 msgid "NnCcEeOoQq"
 msgstr ""
 
-#: g10/keygen.c:639
+#: g10/keygen.c:646
 msgid "keygen.userid.cmd"
 msgstr ""
 
-#: g10/keygen.c:640
+#: g10/keygen.c:647
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgstr "Modifica (N)ome, (C)ommento, (E)mail oppure (O)kay/(Q)uit? "
 
-#: g10/keygen.c:687
+#: g10/keygen.c:694
 msgid ""
 "You need a Passphrase to protect your secret key.\n"
 "\n"
@@ -1171,11 +1182,11 @@ msgstr ""
 "Ti serve una passphrase per proteggere la tua chiave segreta.\n"
 "\n"
 
-#: g10/keyedit.c:388 g10/keygen.c:695
+#: g10/keyedit.c:389 g10/keygen.c:702
 msgid "passphrase not correctly repeated; try again.\n"
 msgstr "passphrase non ripetuta correttamente; riprova.\n"
 
-#: g10/keygen.c:701
+#: g10/keygen.c:708
 msgid ""
 "You don't want a passphrase - this is probably a *bad* idea!\n"
 "I will do it anyway.  You can change your passphrase at any time,\n"
@@ -1187,7 +1198,7 @@ msgstr ""
 "programma con l'opzione \"--edit-key\".\n"
 "\n"
 
-#: g10/keygen.c:722
+#: g10/keygen.c:729
 msgid ""
 "We need to generate a lot of random bytes. It is a good idea to perform\n"
 "some other action (work in another window, move the mouse, utilize the\n"
@@ -1201,33 +1212,33 @@ msgstr ""
 "generatore di numeri casuali la possibilità di raccogliere abbastanza\n"
 "entropia.\n"
 
-#: g10/keygen.c:789
+#: g10/keygen.c:799
 msgid "Key generation can only be used in interactive mode\n"
 msgstr "Una chiave può essere generata solo in modo interattivo\n"
 
-#: g10/keygen.c:797
+#: g10/keygen.c:807
 msgid "DSA keypair will have 1024 bits.\n"
 msgstr "La coppia DSA avrà 1024 bit.\n"
 
-#: g10/keygen.c:803
+#: g10/keygen.c:813
 msgid "Key generation cancelled.\n"
 msgstr "Generazione della chiave annullata.\n"
 
-#: g10/keygen.c:813
+#: g10/keygen.c:823
 #, c-format
 msgid "writing public certificate to '%s'\n"
 msgstr "scrittura del certificato pubblico in '%s'\n"
 
-#: g10/keygen.c:814
+#: g10/keygen.c:824
 #, c-format
 msgid "writing secret certificate to '%s'\n"
 msgstr "scrittura del certificato privato in '%s'\n"
 
-#: g10/keygen.c:891
+#: g10/keygen.c:901
 msgid "public and secret key created and signed.\n"
 msgstr "chiavi pubbliche e segrete create e firmate.\n"
 
-#: g10/keygen.c:893
+#: g10/keygen.c:903
 msgid ""
 "Note that this key cannot be used for encryption.  You may want to use\n"
 "the command \"--add-key\" to generate a secondary key for this purpose.\n"
@@ -1236,16 +1247,16 @@ msgstr ""
 "vorrai usare il comando \"--add-key\" per generare una chiave secondaria\n"
 "per questo scopo.\n"
 
-#: g10/keygen.c:907 g10/keygen.c:991
+#: g10/keygen.c:917 g10/keygen.c:1002
 #, c-format
 msgid "Key generation failed: %s\n"
 msgstr "Generazione della chiave fallita: %s\n"
 
-#: g10/keygen.c:968
+#: g10/keygen.c:979
 msgid "keygen.sub.okay"
 msgstr ""
 
-#: g10/keygen.c:969
+#: g10/keygen.c:980
 msgid "Really create? "
 msgstr "Crea davvero? "
 
@@ -1259,285 +1270,285 @@ msgstr "%s: impossibile aprire: %s\n"
 msgid "error creating passphrase: %s\n"
 msgstr "errore nella creazione della passhprase: %s\n"
 
-#: g10/encode.c:152 g10/encode.c:264
+#: g10/encode.c:154 g10/encode.c:267
 #, c-format
 msgid "%s: warning: empty file\n"
 msgstr "%s: attenzione: file vuoto\n"
 
-#: g10/encode.c:219
+#: g10/encode.c:221
 #, c-format
 msgid "reading from '%s'\n"
 msgstr "lettura da '%s'\n"
 
-#: g10/encode.c:392
+#: g10/encode.c:395
 #, c-format
 msgid "%s encrypted for: %s\n"
 msgstr "%s crittografato per: %s\n"
 
-#: g10/getkey.c:884
+#: g10/getkey.c:854
 #, c-format
 msgid "using secondary key %08lX instead of primary key %08lX\n"
 msgstr "uso la chiave secondaria %08lX invece della chiave primaria %08lX\n"
 
-#: g10/import.c:105 g10/trustdb.c:1389
+#: g10/import.c:106 g10/trustdb.c:1100
 #, c-format
 msgid "can't open file: %s\n"
 msgstr "impossibile aprire il file: %s\n"
 
-#: g10/import.c:121
+#: g10/import.c:122
 #, c-format
 msgid "skipping block of type %d\n"
 msgstr "salto un blocco di tipo %d\n"
 
-#: g10/import.c:131 g10/trustdb.c:1464
+#: g10/import.c:132 g10/trustdb.c:1175
 #, c-format
 msgid "read error: %s\n"
 msgstr "errore di lettura: %s\n"
 
-#: g10/import.c:272 g10/import.c:445
+#: g10/import.c:273 g10/import.c:446
 #, c-format
 msgid "key %08lX: no user id\n"
 msgstr "chiave %08lX: nessun user id\n"
 
-#: g10/import.c:282
+#: g10/import.c:283
 #, c-format
 msgid "key %08lX: no valid user ids\n"
 msgstr "chiave %08lX: nessun user id valido\n"
 
-#: g10/import.c:284
+#: g10/import.c:285
 msgid "this may be caused by a missing self-signature\n"
 msgstr "questo può essere causato da una autofirma mancante\n"
 
-#: g10/import.c:293 g10/import.c:511
+#: g10/import.c:294 g10/import.c:512
 #, c-format
 msgid "key %08lX: public key not found: %s\n"
 msgstr "chiave %08lX: chiave pubblica non trovata: %s\n"
 
-#: g10/import.c:299
+#: g10/import.c:300
 msgid "no default public keyring\n"
 msgstr "nessun portachiavi pubblico predefinito\n"
 
-#: g10/import.c:303
+#: g10/import.c:304
 #, c-format
 msgid "writing to '%s'\n"
 msgstr "scrittura in '%s'\n"
 
-#: g10/import.c:307 g10/import.c:362 g10/import.c:565
+#: g10/import.c:308 g10/import.c:363 g10/import.c:566
 #, c-format
 msgid "can't lock public keyring: %s\n"
 msgstr "impossibile bloccare il portachiavi pubblico: %s\n"
 
-#: g10/import.c:310
+#: g10/import.c:311
 #, c-format
 msgid "can't write to keyring: %s\n"
 msgstr "impossibile scrivere sul portachiavi pubblico: %s\n"
 
 #. we are ready
-#: g10/import.c:313
+#: g10/import.c:314
 #, c-format
 msgid "key %08lX: public key imported\n"
 msgstr "chiave %08lX: chiave pubblica importata\n"
 
-#: g10/import.c:322
+#: g10/import.c:323
 #, c-format
 msgid "key %08lX: doesn't match our copy\n"
 msgstr "chiave %08lX: non corrisponde alla nostra copia\n"
 
-#: g10/import.c:335 g10/import.c:520
+#: g10/import.c:336 g10/import.c:521
 #, c-format
 msgid "key %08lX: can't locate original keyblock: %s\n"
 msgstr "chiave %08lX: impossibile individuare il keyblock originale: %s\n"
 
-#: g10/import.c:342 g10/import.c:527
+#: g10/import.c:343 g10/import.c:528
 #, c-format
 msgid "key %08lX: can't read original keyblock: %s\n"
 msgstr "chiave %08lX: impossibile leggere il keyblock originale: %s\n"
 
-#: g10/import.c:359 g10/import.c:460 g10/import.c:562
+#: g10/import.c:360 g10/import.c:461 g10/import.c:563
 msgid "writing keyblock\n"
 msgstr "scrittura del keyblock\n"
 
-#: g10/import.c:365 g10/import.c:568
+#: g10/import.c:366 g10/import.c:569
 #, c-format
 msgid "can't write keyblock: %s\n"
 msgstr "impossibile aprire il keyblock: %s\n"
 
-#: g10/import.c:369
+#: g10/import.c:370
 #, c-format
 msgid "key %08lX: 1 new user-id\n"
 msgstr "chiave %08lX: un nuovo user id\n"
 
-#: g10/import.c:372
+#: g10/import.c:373
 #, c-format
 msgid "key %08lX: %d new user-ids\n"
 msgstr "chiave %08lX: %d nuovi user id\n"
 
-#: g10/import.c:375
+#: g10/import.c:376
 #, c-format
 msgid "key %08lX: 1 new signature\n"
 msgstr "chiave %08lX: una nuova firma\n"
 
-#: g10/import.c:378
+#: g10/import.c:379
 #, c-format
 msgid "key %08lX: %d new signatures\n"
 msgstr "chiave %08lX: %d nuove firme\n"
 
-#: g10/import.c:381
+#: g10/import.c:382
 #, c-format
 msgid "key %08lX: 1 new subkey\n"
 msgstr "chiave %08lX: una nuova subchiave\n"
 
-#: g10/import.c:384
+#: g10/import.c:385
 #, c-format
 msgid "key %08lX: %d new subkeys\n"
 msgstr "chiave %08lX: %d nuove subchiavi\n"
 
-#: g10/import.c:388
+#: g10/import.c:389
 #, c-format
 msgid "key %08lX: not changed\n"
 msgstr "chiave %08lX: non cambiata\n"
 
-#: g10/import.c:463
+#: g10/import.c:464
 #, c-format
 msgid "can't lock secret keyring: %s\n"
 msgstr "impossibile bloccare il portachiavi segreto: %s\n"
 
-#: g10/import.c:466
+#: g10/import.c:467
 #, c-format
 msgid "can't write keyring: %s\n"
 msgstr "impossibile scrivere il portachiavi: %s\n"
 
 #. we are ready
-#: g10/import.c:469
+#: g10/import.c:470
 #, c-format
 msgid "key %08lX: secret key imported\n"
 msgstr "chiave %08lX: chiave segreta importata\n"
 
 #. we can't merge secret keys
-#: g10/import.c:472
+#: g10/import.c:473
 #, c-format
 msgid "key %08lX: already in secret keyring\n"
 msgstr "chiave %08lX: già nel portachiavi segreto\n"
 
-#: g10/import.c:476
+#: g10/import.c:477
 #, c-format
 msgid "key %08lX: secret key not found: %s\n"
 msgstr "chiave %08lX: chiave segreta non trovata: %s\n"
 
-#: g10/import.c:505
+#: g10/import.c:506
 #, c-format
 msgid "key %08lX: no public key - can't apply revocation certificate\n"
 msgstr ""
 "chiave %08lX: manca la chiave pubblica - impossibile applicare il\n"
 "certificato di revoca\n"
 
-#: g10/import.c:538
+#: g10/import.c:539
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
 msgstr "chiave %08lX: certificato di revoca non valido: %s - rifiutato\n"
 
 #. we are ready
-#: g10/import.c:571
+#: g10/import.c:572
 #, c-format
 msgid "key %08lX: revocation certificate imported\n"
 msgstr "chiave %08lX: certificato di revoca importato\n"
 
-#: g10/import.c:601
+#: g10/import.c:602
 #, c-format
 msgid "key %08lX: no user-id for signature\n"
 msgstr "chiave %08lX: nessun user id per la firma\n"
 
-#: g10/import.c:608
+#: g10/import.c:609
 #, c-format
 msgid "key %08lX: unsupported public key algorithm\n"
 msgstr "chiave %08lX: algoritmo a chiave pubblica non gestito\n"
 
-#: g10/import.c:609
+#: g10/import.c:610
 #, c-format
 msgid "key %08lX: invalid self-signature\n"
 msgstr "chiave %08lX: autofirma non valida\n"
 
-#: g10/import.c:638
+#: g10/import.c:639
 #, c-format
 msgid "key %08lX: skipped userid '"
 msgstr "chiave %08lX: saltato l'user id '"
 
-#: g10/import.c:661
+#: g10/import.c:662
 #, c-format
 msgid "key %08lX: revocation certificate at wrong place - skipped\n"
 msgstr "chiave %08lX: certificato di revoca nel posto sbagliato - saltato\n"
 
-#: g10/import.c:669
+#: g10/import.c:670
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - skipped\n"
 msgstr "chiave %08lX: certificato di revoca non valido: %s - saltato\n"
 
-#: g10/import.c:731
+#: g10/import.c:732
 #, c-format
 msgid "key %08lX: revocation certificate added\n"
 msgstr "chiave %08lX: certificato di revoca aggiunto\n"
 
-#: g10/import.c:794 g10/import.c:830
+#: g10/import.c:795 g10/import.c:831
 #, c-format
 msgid "key %08lX: our copy has no self-signature\n"
 msgstr "chiave %08lX: la nostra copia non ha autofirma\n"
 
-#: g10/keyedit.c:80
+#: g10/keyedit.c:81
 #, c-format
 msgid "%s: user not found\n"
 msgstr "%s: utente non trovato\n"
 
-#: g10/keyedit.c:163
+#: g10/keyedit.c:164
 msgid "[self-signature]"
 msgstr "[autofirma]"
 
-#: g10/keyedit.c:181
+#: g10/keyedit.c:182
 msgid "1 bad signature\n"
 msgstr "una firma non corretta\n"
 
-#: g10/keyedit.c:183
+#: g10/keyedit.c:184
 #, c-format
 msgid "%d bad signatures\n"
 msgstr "%d firme non corrette\n"
 
-#: g10/keyedit.c:185
+#: g10/keyedit.c:186
 msgid "1 signature not checked due to a missing key\n"
 msgstr "1 firma non controllata per mancanza della chiave\n"
 
-#: g10/keyedit.c:187
+#: g10/keyedit.c:188
 #, c-format
 msgid "%d signatures not checked due to missing keys\n"
 msgstr "%d firme non controllate per mancanza delle chiavi\n"
 
-#: g10/keyedit.c:189
+#: g10/keyedit.c:190
 msgid "1 signature not checked due to an error\n"
 msgstr "1 firma non controllata a causa di un errore\n"
 
-#: g10/keyedit.c:191
+#: g10/keyedit.c:192
 #, c-format
 msgid "%d signatures not checked due to errors\n"
 msgstr "%d firme non controllate a causa di errori\n"
 
-#: g10/keyedit.c:193
+#: g10/keyedit.c:194
 msgid "1 user id without valid self-signature detected\n"
 msgstr "Trovato 1 user id senza autofirma valida\n"
 
-#: g10/keyedit.c:195
+#: g10/keyedit.c:196
 #, c-format
 msgid "%d user ids without valid self-signatures detected\n"
 msgstr "Trovati %d user id senza autofirme valide\n"
 
-#: g10/keyedit.c:257
+#: g10/keyedit.c:258
 #, c-format
 msgid "Already signed by key %08lX\n"
 msgstr "Già firmato dalla chiave %08lX\n"
 
-#: g10/keyedit.c:265
+#: g10/keyedit.c:266
 #, c-format
 msgid "Nothing to sign with key %08lX\n"
 msgstr "Niente da firmare con la chiave %08lX\n"
 
-#: g10/keyedit.c:274
+#: g10/keyedit.c:275
 msgid ""
 "Are you really sure that you want to sign this key\n"
 "with your key: \""
@@ -1545,33 +1556,33 @@ msgstr ""
 "Sei davvero sicuro di volere firmare questa chiave\n"
 "con la tua chiave: \""
 
-#: g10/keyedit.c:281
+#: g10/keyedit.c:282
 msgid "sign_uid.okay"
 msgstr ""
 
-#: g10/keyedit.c:281
+#: g10/keyedit.c:282
 msgid "Really sign? "
 msgstr "Firmo davvero? "
 
-#: g10/keyedit.c:302
+#: g10/keyedit.c:303
 #, c-format
 msgid "signing failed: %s\n"
 msgstr "firma fallita: %s\n"
 
-#: g10/keyedit.c:355
+#: g10/keyedit.c:356
 msgid "This key is not protected.\n"
 msgstr "Questa chiave non è protetta.\n"
 
-#: g10/keyedit.c:358
+#: g10/keyedit.c:359
 msgid "Key is protected.\n"
 msgstr "La chiave è protetta.\n"
 
-#: g10/keyedit.c:375
+#: g10/keyedit.c:376
 #, c-format
 msgid "Can't edit this key: %s\n"
 msgstr "Impossibile modificare questa chiave: %s\n"
 
-#: g10/keyedit.c:380
+#: g10/keyedit.c:381
 msgid ""
 "Enter the new passphrase for this secret key.\n"
 "\n"
@@ -1579,7 +1590,7 @@ msgstr ""
 "Inserisci la nuova passphrase per questa chiave segreta.\n"
 "\n"
 
-#: g10/keyedit.c:392
+#: g10/keyedit.c:393
 msgid ""
 "You don't want a passphrase - this is probably a *bad* idea!\n"
 "\n"
@@ -1587,289 +1598,319 @@ msgstr ""
 "Non vuoi una passphrase - questa è probabilmente una *cattiva* idea!\n"
 "\n"
 
-#: g10/keyedit.c:394
+#: g10/keyedit.c:395
 msgid "change_passwd.empty.okay"
 msgstr ""
 
-#: g10/keyedit.c:395
+#: g10/keyedit.c:396
 msgid "Do you really want to do this? "
 msgstr "Vuoi veramente farlo?"
 
-#: g10/keyedit.c:450
+#: g10/keyedit.c:489
 msgid "quit"
 msgstr ""
 
-#: g10/keyedit.c:450
+#: g10/keyedit.c:489
 msgid "quit this menu"
 msgstr "abbandona questo menù"
 
-#: g10/keyedit.c:451
+#: g10/keyedit.c:490
 msgid "q"
 msgstr ""
 
-#: g10/keyedit.c:452
+#: g10/keyedit.c:491
 msgid "save"
 msgstr ""
 
-#: g10/keyedit.c:452
+#: g10/keyedit.c:491
 msgid "save and quit"
 msgstr "salva ed esci"
 
-#: g10/keyedit.c:453
+#: g10/keyedit.c:492
 msgid "help"
 msgstr ""
 
-#: g10/keyedit.c:453
+#: g10/keyedit.c:492
 msgid "show this help"
 msgstr "mostra questo aiuto"
 
-#: g10/keyedit.c:455
+#: g10/keyedit.c:494
 msgid "fpr"
 msgstr ""
 
-#: g10/keyedit.c:455
+#: g10/keyedit.c:494
 msgid "show fingerprint"
 msgstr "mostra le impronte digitali"
 
-#: g10/keyedit.c:456
+#: g10/keyedit.c:495
 msgid "list"
 msgstr ""
 
-#: g10/keyedit.c:456
+#: g10/keyedit.c:495
 msgid "list key and user ids"
 msgstr "elenca le chiavi e gli user id"
 
-#: g10/keyedit.c:457
+#: g10/keyedit.c:496
 msgid "l"
 msgstr ""
 
-#: g10/keyedit.c:458
+#: g10/keyedit.c:497
 msgid "uid"
 msgstr ""
 
-#: g10/keyedit.c:458
+#: g10/keyedit.c:497
 msgid "select user id N"
 msgstr "scegli l'user id N"
 
-#: g10/keyedit.c:459
+#: g10/keyedit.c:498
 msgid "key"
 msgstr ""
 
-#: g10/keyedit.c:459
+#: g10/keyedit.c:498
 msgid "select secondary key N"
 msgstr "scegli la chiave secondaria N"
 
-#: g10/keyedit.c:460
+#: g10/keyedit.c:499
 msgid "check"
 msgstr ""
 
-#: g10/keyedit.c:460
+#: g10/keyedit.c:499
 msgid "list signatures"
 msgstr "elenca le firme"
 
-#: g10/keyedit.c:461
+#: g10/keyedit.c:500
 msgid "c"
 msgstr ""
 
-#: g10/keyedit.c:462
+#: g10/keyedit.c:501
 msgid "sign"
 msgstr ""
 
-#: g10/keyedit.c:462
+#: g10/keyedit.c:501
 msgid "sign the key"
 msgstr "firma la chiave"
 
-#: g10/keyedit.c:463
+#: g10/keyedit.c:502
 msgid "s"
 msgstr ""
 
-#: g10/keyedit.c:464
+#: g10/keyedit.c:503
 msgid "debug"
 msgstr ""
 
-#: g10/keyedit.c:465
+#: g10/keyedit.c:504
 msgid "adduid"
 msgstr ""
 
-#: g10/keyedit.c:465
+#: g10/keyedit.c:504
 msgid "add a user id"
 msgstr "aggiungi un user id"
 
-#: g10/keyedit.c:466
+#: g10/keyedit.c:505
 msgid "deluid"
 msgstr ""
 
-#: g10/keyedit.c:466
+#: g10/keyedit.c:505
 msgid "delete user id"
 msgstr "cancella un user id"
 
-#: g10/keyedit.c:467
+#: g10/keyedit.c:506
 msgid "addkey"
 msgstr ""
 
-#: g10/keyedit.c:467
+#: g10/keyedit.c:506
 msgid "add a secondary key"
 msgstr "aggiungi una chiave secondaria"
 
-#: g10/keyedit.c:468
+#: g10/keyedit.c:507
 msgid "delkey"
 msgstr ""
 
-#: g10/keyedit.c:468
+#: g10/keyedit.c:507
 msgid "delete a secondary key"
 msgstr "cancella una chiave secondaria"
 
-#: g10/keyedit.c:469
+#: g10/keyedit.c:508
+msgid "expire"
+msgstr ""
+
+#: g10/keyedit.c:508
+#, fuzzy
+msgid "change the expire date"
+msgstr "cambia la passphrase"
+
+#: g10/keyedit.c:509
 msgid "toggle"
 msgstr ""
 
-#: g10/keyedit.c:469
+#: g10/keyedit.c:509
 msgid "toggle between secret and public key listing"
 msgstr "cambia tra visualizzare la chiave segreta e la chiave pubblica"
 
-#: g10/keyedit.c:471
+#: g10/keyedit.c:511
 msgid "t"
 msgstr ""
 
-#: g10/keyedit.c:472
+#: g10/keyedit.c:512
 msgid "pref"
 msgstr ""
 
-#: g10/keyedit.c:472
+#: g10/keyedit.c:512
 msgid "list preferences"
 msgstr "elenca le impostazioni"
 
-#: g10/keyedit.c:473
+#: g10/keyedit.c:513
 msgid "passwd"
 msgstr ""
 
-#: g10/keyedit.c:473
+#: g10/keyedit.c:513
 msgid "change the passphrase"
 msgstr "cambia la passphrase"
 
-#: g10/keyedit.c:474
+#: g10/keyedit.c:514
 msgid "trust"
 msgstr ""
 
-#: g10/keyedit.c:474
+#: g10/keyedit.c:514
 msgid "change the ownertrust"
 msgstr "cambia il valore di fiducia"
 
-#: g10/keyedit.c:492
+#: g10/keyedit.c:532
 msgid "can't do that in batchmode\n"
 msgstr "impossibile fare questo in batch mode\n"
 
 #. check that they match
 #. FIXME: check that they both match
-#: g10/keyedit.c:515
+#: g10/keyedit.c:559
 msgid "Secret key is available.\n"
 msgstr "È disponibile una chiave segreta.\n"
 
-#: g10/keyedit.c:531
+#: g10/keyedit.c:575
 msgid "keyedit.cmd"
 msgstr ""
 
-#: g10/keyedit.c:531
+#: g10/keyedit.c:575
 msgid "Command> "
 msgstr "Comando> "
 
-#: g10/keyedit.c:556
+#: g10/keyedit.c:600
 msgid "Need the secret key to to this.\n"
 msgstr "Per fare questo serve la chiave segreta.\n"
 
-#: g10/keyedit.c:575
+#: g10/keyedit.c:619
 msgid "keyedit.save.okay"
 msgstr ""
 
-#: g10/keyedit.c:576
+#: g10/keyedit.c:620
 msgid "Save changes? "
 msgstr "Salvo i cambiamenti? "
 
-#: g10/keyedit.c:578
+#: g10/keyedit.c:622
 msgid "keyedit.cancel.okay"
 msgstr ""
 
-#: g10/keyedit.c:579
+#: g10/keyedit.c:623
 msgid "Quit without saving? "
 msgstr "Esco senza salvare? "
 
-#: g10/keyedit.c:589
+#: g10/keyedit.c:633
 #, c-format
 msgid "update failed: %s\n"
 msgstr "aggiornamento fallito: %s\n"
 
-#: g10/keyedit.c:596
+#: g10/keyedit.c:640
 #, c-format
 msgid "update secret failed: %s\n"
 msgstr "aggiornamento della chiave segreta fallito: %s\n"
 
-#: g10/keyedit.c:603
+#: g10/keyedit.c:647
 msgid "Key not changed so no update needed.\n"
 msgstr "La chiave non è cambiata quindi non sono necessari aggiornamenti.\n"
 
-#: g10/keyedit.c:606 g10/keyedit.c:664
+#: g10/keyedit.c:650 g10/keyedit.c:708
 #, c-format
 msgid "update of trust db failed: %s\n"
 msgstr "aggiornamento del trustdb fallito: %s\n"
 
-#: g10/keyedit.c:637
+#: g10/keyedit.c:681
 msgid "keyedit.sign_all.okay"
 msgstr ""
 
-#: g10/keyedit.c:638
+#: g10/keyedit.c:682
 msgid "Really sign all user ids? "
 msgstr "Firmo davvero tutti gli user id? "
 
-#: g10/keyedit.c:639
+#: g10/keyedit.c:683
 msgid "Hint: Select the user ids to sign\n"
 msgstr "Suggerimento: seleziona gli user id da firmare\n"
 
-#: g10/keyedit.c:675
+#: g10/keyedit.c:719
 msgid "You must select at least one user id.\n"
 msgstr "Devi selezionare almeno un user id.\n"
 
-#: g10/keyedit.c:677
+#: g10/keyedit.c:721
 msgid "You can't delete the last user id!\n"
 msgstr "Non puoi cancellare l'ultimo user id!\n"
 
-#: g10/keyedit.c:679
+#: g10/keyedit.c:723
 msgid "keyedit.remove.uid.okay"
 msgstr ""
 
-#: g10/keyedit.c:680
+#: g10/keyedit.c:724
 msgid "Really remove all selected user ids? "
 msgstr "Tolgo davvero tutti gli user id selezionati? "
 
-#: g10/keyedit.c:681
+#: g10/keyedit.c:725
 msgid "Really remove this user id? "
 msgstr "Tolgo davvero questo user id? "
 
-#: g10/keyedit.c:704
+#: g10/keyedit.c:748
 msgid "You must select at least one key.\n"
 msgstr "Devi selezionare almeno una chiave.\n"
 
-#: g10/keyedit.c:706
+#: g10/keyedit.c:750
 msgid "keyedit.remove.subkey.okay"
 msgstr ""
 
-#: g10/keyedit.c:708
+#: g10/keyedit.c:752
 msgid "Do you really want to delete the selected keys? "
 msgstr "Vuoi davvero cancellare le chiavi selezionate? "
 
-#: g10/keyedit.c:709
+#: g10/keyedit.c:753
 msgid "Do you really want to delete this key? "
 msgstr "Vuoi davvero cancellare questa chiave? "
 
-#: g10/keyedit.c:746
+#: g10/keyedit.c:800
 msgid "Invalid command  (try \"help\")\n"
 msgstr "Comando non valido (prova \"help\")\n"
 
-#: g10/keyedit.c:1129
+#: g10/keyedit.c:1178
+msgid "Please remove selections from the secret keys.\n"
+msgstr ""
+
+#: g10/keyedit.c:1184
+#, fuzzy
+msgid "Please select at most one secondary key.\n"
+msgstr "Devi selezionare almeno una chiave.\n"
+
+#: g10/keyedit.c:1188
+msgid "Changing exiration time for a secondary key.\n"
+msgstr ""
+
+#: g10/keyedit.c:1190
+msgid "Changing exiration time for the primary key.\n"
+msgstr ""
+
+#: g10/keyedit.c:1234
+msgid "No corresponding signature in secret ring\n"
+msgstr ""
+
+#: g10/keyedit.c:1294
 #, c-format
 msgid "No user id with index %d\n"
 msgstr "Nessun user id con l'indice %d\n"
 
-#: g10/keyedit.c:1174
+#: g10/keyedit.c:1339
 #, c-format
 msgid "No secondary key with index %d\n"
 msgstr "Nessuna chiave secondaria con l'indice %d\n"
@@ -1888,20 +1929,20 @@ msgstr "decifratura fallita: %s\n"
 msgid "note: sender requested \"for-your-eyes-only\"\n"
 msgstr "nota: il mittente ha richiesto \"solo-per-i-tuoi-occhi\"\n"
 
-#: g10/mainproc.c:846
+#: g10/mainproc.c:848
 #, c-format
 msgid "Signature made %.*s using %s key ID %08lX\n"
 msgstr "Firma fatta %.*s usando %s key ID %08lX\n"
 
-#: g10/mainproc.c:854
+#: g10/mainproc.c:856
 msgid "BAD signature from \""
 msgstr "Firma NON corretta da \""
 
-#: g10/mainproc.c:855
+#: g10/mainproc.c:857
 msgid "Good signature from \""
 msgstr "Buona firma da \""
 
-#: g10/mainproc.c:866
+#: g10/mainproc.c:868
 #, c-format
 msgid "Can't check signature: %s\n"
 msgstr "Impossibile controllare la firma: %s\n"
@@ -1939,7 +1980,8 @@ msgstr "Ripeti la passphrase: "
 
 #: g10/plaintext.c:102
 msgid "data not saved; use option \"--output\" to save it\n"
-msgstr "i dati non sono stati salvati; usa l'opzione \"--output\" per salvarli\n"
+msgstr ""
+"i dati non sono stati salvati; usa l'opzione \"--output\" per salvarli\n"
 
 #: g10/plaintext.c:214
 msgid "detached_signature.filename"
@@ -1972,7 +2014,8 @@ msgstr ""
 #: g10/sig-check.c:155
 msgid ""
 "this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
-msgstr "questa è una chiave ElGamal generata da PGP che NON è sicura per le firme!\n"
+msgstr ""
+"questa è una chiave ElGamal generata da PGP che NON è sicura per le firme!\n"
 
 #: g10/sig-check.c:165
 msgid "public key created in future (time warp or clock problem)\n"
@@ -1980,87 +2023,200 @@ msgstr ""
 "chiave pubblica creata nel futuro (salto nel tempo o problema con\n"
 "l'orologio)\n"
 
-#: g10/sig-check.c:171
+#: g10/sig-check.c:170
 #, c-format
 msgid "warning: signature key expired %s\n"
 msgstr "attenzione: firma della chiave scaduta il %s\n"
 
-#: g10/trustdb.c:127
+#: g10/trustdb.c:122
 msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n"
 msgstr "Il trustdb è rovinato; per favore esegui \"gpgm --fix-trust-db\".\n"
 
-#: g10/trustdb.c:406
+#: g10/trustdb.c:389
 #, c-format
 msgid "chained sigrec %lu has a wrong owner\n"
 msgstr "la chained sigrec %lu ha il proprietario sbagliato\n"
 
-#: g10/trustdb.c:453
-#, c-format
-msgid "key %08lX: secret key without public key\n"
+#: g10/trustdb.c:436
+#, fuzzy, c-format
+msgid "key %08lX: secret key without public key - skipped\n"
 msgstr "chiave %08lX: chiave segreta senza chiave pubblica\n"
 
-#: g10/trustdb.c:458
+#: g10/trustdb.c:442
 #, c-format
 msgid "key %08lX: secret and public key don't match\n"
 msgstr "chiave %08lX: le chiavi segreta e pubblica non corrispondono\n"
 
-#: g10/trustdb.c:469
+#: g10/trustdb.c:452
 #, c-format
 msgid "key %08lX: can't put it into the trustdb\n"
 msgstr "chiave %08lX: impossibile metterla nel trustdb\n"
 
-#: g10/trustdb.c:475
+#: g10/trustdb.c:458
 #, c-format
 msgid "key %08lX: query record failed\n"
 msgstr "chiave %08lX: richiesta del record fallita\n"
 
-#: g10/trustdb.c:484
-#, c-format
-msgid "key %08lX: already in ultikey_table\n"
-msgstr "chiave %08lX: già in ultikey_table\n"
+#: g10/trustdb.c:467
+#, fuzzy, c-format
+msgid "key %08lX: already in secret key table\n"
+msgstr "chiave %08lX: già nel portachiavi segreto\n"
+
+#: g10/trustdb.c:470
+#, fuzzy, c-format
+msgid "key %08lX: accepted as secret key.\n"
+msgstr "chiave %08lX: già nel portachiavi segreto\n"
 
-#: g10/trustdb.c:491
+#: g10/trustdb.c:477
 #, c-format
 msgid "enum_secret_keys failed: %s\n"
 msgstr "enum_secret_keys fallito: %s\n"
 
-#: g10/trustdb.c:964
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X: no public key for signature %08lX\n"
-msgstr "chiave %08lX.%lu: uid %02X%02X: nessuna chiave pubblica per la firma %08lX\n"
-
-#: g10/trustdb.c:971
-#, c-format
-msgid "key %08lX.%lu, uid %02X%02X: invalid %ssignature: %s\n"
-msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
-
-#: g10/trustdb.c:1658
+#: g10/trustdb.c:1428
 #, c-format
 msgid "key %08lX: insert trust record failed: %s\n"
 msgstr "chiave %08lX: inserimento del record della fiducia fallito: %s\n"
 
-#: g10/trustdb.c:1662
+#: g10/trustdb.c:1432
 #, c-format
 msgid "key %08lX.%lu: inserted into trustdb\n"
 msgstr "chiave %08lX.%lu: inserita nel trustdb\n"
 
-#: g10/trustdb.c:1670
+#: g10/trustdb.c:1440
 #, c-format
 msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
 msgstr ""
 "chiave %08lX.%lu: creata nel futuro (salto nel tempo o problema\n"
 "con l'orologio)\n"
 
-#: g10/trustdb.c:1678
+#: g10/trustdb.c:1447
 #, c-format
 msgid "key %08lX.%lu: expired at %s\n"
 msgstr "chiave %08lX.%lu: scaduta il %s\n"
 
-#: g10/trustdb.c:1687
+#: g10/trustdb.c:1455
 #, c-format
 msgid "key %08lX.%lu: trust check failed: %s\n"
 msgstr "chiave %08lX.%lu: controllo della fiducia fallito: %s\n"
 
+#: g10/trustdb.c:1718
+#, c-format
+msgid "note: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
+msgstr ""
+
+#: g10/trustdb.c:1722
+#, c-format
+msgid "note: sig rec %lu[%d] in hintlist of %lu but not marked\n"
+msgstr ""
+
+#. we need the dir record
+#: g10/trustdb.c:1729
+#, c-format
+msgid "sig rec %lu[%d] in hintlist of %u does not point to a dir record\n"
+msgstr ""
+
+#: g10/trustdb.c:1735
+#, c-format
+msgid "lid %lu: no primary key\n"
+msgstr ""
+
+#: g10/trustdb.c:1764
+#, fuzzy, c-format
+msgid "lid %lu: user id not found in keyblock\n"
+msgstr "%s: utente non trovato\n"
+
+#: g10/trustdb.c:1771
+#, c-format
+msgid "lid %lu: self-signature in hintlist\n"
+msgstr ""
+
+#: g10/trustdb.c:1776
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (3)\n"
+msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
+
+#: g10/trustdb.c:1783
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: very strange: no public key\n"
+msgstr ""
+"chiave %08lX.%lu: uid %02X%02X: nessuna chiave pubblica per la firma %08lX\n"
+
+#: g10/trustdb.c:1790 g10/trustdb.c:2225 g10/trustdb.c:2297
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: invalid signature: %s\n"
+msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
+
+#: g10/trustdb.c:1835
+#, c-format
+msgid "hintlist %lu[%d] of %lu does not point to a dir record\n"
+msgstr ""
+
+#: g10/trustdb.c:1841
+#, c-format
+msgid "lid %lu does not have a key\n"
+msgstr ""
+
+#: g10/trustdb.c:1851
+#, fuzzy, c-format
+msgid "lid %lu: can't get keyblock: %s\n"
+msgstr "impossibile aprire il keyblock: %s\n"
+
+#: g10/trustdb.c:2096
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X: good self-signature\n"
+msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
+
+#: g10/trustdb.c:2188
+#, fuzzy, c-format
+msgid ""
+"key %08lX.%lu, uid %02X%02X, sig %08lX: duplicated signature - deleted\n"
+msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
+
+#: g10/trustdb.c:2211
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (1)\n"
+msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
+
+#: g10/trustdb.c:2218
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: weird: no public key\n"
+msgstr ""
+"chiave %08lX.%lu: uid %02X%02X: nessuna chiave pubblica per la firma %08lX\n"
+
+#: g10/trustdb.c:2240
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X: has shadow dir %lu but not yet marked.\n"
+msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
+
+#: g10/trustdb.c:2279
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: good signature (2)\n"
+msgstr "chiave %08lX.%lu, uid %02X%02X: firma %s non valida: %s\n"
+
+#: g10/trustdb.c:2290
+#, fuzzy, c-format
+msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: no public key\n"
+msgstr ""
+"chiave %08lX.%lu: uid %02X%02X: nessuna chiave pubblica per la firma %08lX\n"
+
+#. key binding
+#: g10/trustdb.c:2386
+#, fuzzy, c-format
+msgid "key %08lX: bogus key binding by %08lX\n"
+msgstr "chiave %08lX: nessun user id\n"
+
+#. key revocation
+#: g10/trustdb.c:2390
+#, fuzzy, c-format
+msgid "key %08lX: bogus key revocation by %08lX\n"
+msgstr "chiave %08lX: chiave pubblica non trovata: %s\n"
+
+#. subkey revocation
+#: g10/trustdb.c:2394
+#, fuzzy, c-format
+msgid "key %08lX: bogus subkey revocation by %08lX\n"
+msgstr "chiave %08lX: chiave pubblica non trovata: %s\n"
+
 #: g10/status.c:246
 msgid "No help available"
 msgstr "Nessun aiuto disponibile"
@@ -2115,3 +2271,6 @@ msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n"
 msgstr ""
 "Impossibile evitare una chiave debole per il cifrario simmetrico;\n"
 "ho provato %d volte!\n"
+
+#~ msgid "key %08lX: already in ultikey_table\n"
+#~ msgstr "chiave %08lX: già in ultikey_table\n"
index 215ef07..17905a1 100755 (executable)
@@ -2,34 +2,32 @@
 # Run this to generate all the initial makefiles, etc.
 
 PGM=GnuPG
-
 DIE=no
-NO_AUTOMAKE=no
 
-(autoconf --version) < /dev/null > /dev/null 2>&1 || {
+if (autoconf --version) < /dev/null > /dev/null 2>&1 ; then
+    :
+else
     echo
     echo "**Error**: You must have "\`autoconf\'" installed to compile $PGM."
     echo '           (version 2.10 or newer is required'
-    DIE=yes
-}
-
-(automake --version) < /dev/null > /dev/null 2>&1 || {
-    echo
-    echo "**Error**: You must have "\`automake\'" installed to compile $PGM."
-    echo '           (version 1.3 or newer is required)'
-    DIE=yes
-    NO_AUTOMAKE=yes
-}
-
+    DIE="yes"
+fi
 
-# if no automake, don't bother testing for aclocal
-test "$NO_AUTOMAKE" = "no" \
-     || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
+if (automake --version) < /dev/null > /dev/null 2>&1 ; then
+  if (aclocal --version) < /dev/null > /dev/null 2>&1; then
+    :
+  else
     echo
     echo "**Error**: Missing "\`aclocal\'".  The version of "\`automake\'
     echo "           installed doesn't appear recent enough."
-    DIE=yes
-}
+    DIE="yes"
+  fi
+else
+    echo
+    echo "**Error**: You must have "\`automake\'" installed to compile $PGM."
+    echo '           (version 1.3 or newer is required)'
+    DIE="yes"
+fi
 
 if test "$DIE" = "yes"; then
     exit 1
index 42bb727..42d4711 100644 (file)
@@ -35,7 +35,7 @@
  * Create a lockfile with the given name. A TIMEOUT of 0
  * returns immediately, -1 waits forever (hopefully not), other
  * values are timeouts in milliseconds.
- * Returns: a char pointer used as handle for reelase lock
+ * Returns: a char pointer used as handle for release lock
  *         or NULL in case of an error.
  *
  * Notes: This function creates a lock file in the same directory
@@ -43,7 +43,7 @@
  *       A temporary file ".#lk.<pid>.<hostname> is used.
  *       This function does nothing for Windoze.
  */
-int
+const char *
 make_dotlock( const char *file_to_lock, long timeout )
 {
     int rc=-1, fd=-1, pid;
@@ -61,7 +61,7 @@ make_dotlock( const char *file_to_lock, long timeout )
     if( !tname )
        log_fatal( "could not create temporary lock file '%s'\n");
     log_debug( "dotlock_make: tmpname='%s'\n", tname );
-    chmod( tname, 0644 ); /* just in case an "umask" is set */
+    chmod( tname, 0644 ); /* just in case an umask is set */
     if( !(fd = open( tname, O_WRONLY )) )
        log_fatal( "could not open temporary lock file '%s'\n", tname);
     if( write(fd, pidstr, 11 ) != 11 )
@@ -126,21 +126,21 @@ make_dotlock( const char *file_to_lock, long timeout )
 int
 release_dotlock( const char *lockfile )
 {
-    int pid = ReadLockfile( lockfile );
+    int pid = rad_lockfile( lockfile );
     if( pid == -1 ) {
-       Log_printf( LERROR, "ReleaseLock: lockfile error");
+       log_error( "release_dotlock: lockfile error");
        return -1;
     }
     if( pid != getpid() ) {
-       Log_printf( LERROR, "ReleaseLock: not our lock (pid=%d)", pid);
+       log_error( "release_dotlock: not our lock (pid=%d)", pid);
        return -1;
     }
-    if( remove(lockfile) ) {
-       Log_printf( LERROR, "ReleaseLock: error removing lockfile '%s'",
+    if( remove( lockfile ) ) {
+       log_error( "release_dotlock: error removing lockfile '%s'",
                                                            lockfile);
        return -1;
     }
-    Log_printf( LMESG, "ReleaseLock: released lockfile '%s'", lockfile);
+    log_debug( "release_dotlock: released lockfile '%s'", lockfile);
     return 0;
 }
 
@@ -156,12 +156,12 @@ read_lockfile( const char *name )
 
     if( (fd = open(name, O_RDONLY)) == -1 ) {
        int e = errno;
-       Log_printf(LJUNK, "error opening lockfile '%s'", name );
-       errno = e;  /* restore errno */
+       log_debug("error opening lockfile '%s'", name );
+       errno = e;
        return -1;
     }
     if( read(fd, pidstr, 10 ) != 10 ) {
-       Log_printf(LNOISE, "error reading lockfile '%s'", name );
+       log_debug("error reading lockfile '%s'", name );
        close(fd);
        errno = 0;
        return -1;
@@ -169,7 +169,7 @@ read_lockfile( const char *name )
     close(fd);
     pid = atoi(pidstr);
     if( !pid || pid == -1 ) {
-       Log_printf(LERROR, "invalid pid %d in lockfile '%s'", pid, name );
+       log_error("invalid pid %d in lockfile '%s'", pid, name );
        errno = 0;
        return -1;
     }
index 515a5f8..e4c4124 100644 (file)
@@ -431,7 +431,7 @@ iobuf_close( IOBUF a )
     size_t dummy_len;
     int rc=0;
 
-    if( a->directfp ) {
+    if( a && a->directfp ) {
        fclose( a->directfp );
        if( DBG_IOBUF )
            log_debug("iobuf-close -> %p\n", a->directfp );