See ChangeLog: Thu Dec 17 18:31:15 CET 1998 Werner Koch
authorWerner Koch <wk@gnupg.org>
Thu, 17 Dec 1998 17:36:05 +0000 (17:36 +0000)
committerWerner Koch <wk@gnupg.org>
Thu, 17 Dec 1998 17:36:05 +0000 (17:36 +0000)
28 files changed:
AUTHORS
NEWS
PROJECTS
README
THANKS
TODO
doc/gpg.1pod
g10/ChangeLog
g10/armor.c
g10/g10.c
g10/mainproc.c
g10/misc.c
g10/options.h
g10/options.skel
g10/pkclist.c
g10/plaintext.c
g10/sign.c
g10/trustdb.c
g10/trustdb.h
po/ChangeLog
po/de.po
po/es_ES.po
po/fr.po
po/it.po
po/pt_BR.po
po/ru.po
scripts/ChangeLog
scripts/gnupg.spec

diff --git a/AUTHORS b/AUTHORS
index 8a4fb94..062af10 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -62,8 +62,11 @@ Most of the stuff in mpi has been taken from the GMP library.
 
 The file cipher/rndunix.c is heavily based on Peter Gutmann's
 rndunix.c from cryptlib. - He promised to add the GPL as an alternative
-license to this and some other files.  We don't have a dissclaimer for
+license to this and some other files.  We don't have a disclaimer for
 this file, but due to the fact that this is only needed for non-free
 system we can easily remove this from the distribution and put it as
 a module on some FTP server.
 
+The RPM specs file scripts/gnupg.specs has been contributed by
+Caskey L. Dickson and Reuben Sumner.
+
diff --git a/NEWS b/NEWS
index 1e7d930..5683b98 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -7,10 +7,14 @@
     * Fixed the uncompress bug.
 
     * Rewrote the rndunix module. There are two environment variables
-    used for debugging now: GNUPG_RNDUNIX_DBG give the file to write
-    debugging information (use "-" for stdout) and if GNUPG_RNDUNIX_DBGALL
-    is set, all programs which are only tried are also printed.
-
+      used for debugging now: GNUPG_RNDUNIX_DBG give the file to write
+      debugging information (use "-" for stdout) and if GNUPG_RNDUNIX_DBGALL
+      is set, all programs which are only tried are also printed.
+
+    * New option --escape-from-lines to "dash-escape" "From " lines to
+      prevent mailers to change them to ">From ".  This is not enabled by
+      default because it is not in compliace with rfc2440. but you should
+      turn it on.
 
 Noteworthy changes in version 0.4.5
 -----------------------------------
index d5b1eb1..0ffd0fc 100644 (file)
--- a/PROJECTS
+++ b/PROJECTS
@@ -28,7 +28,7 @@
 
   * Split key support (n-out-of-m)
 
-    * Check Berkeley BD - it is in glibc - any licensing problems?
+    * Check Berkeley DB - it is in glibc - any licensing problems?
 
     * add an option to re-create a public key from a secret key; we
       can do this in trustdb.c:verify_own_keys.
diff --git a/README b/README
index e1f9a37..8e78f46 100644 (file)
--- a/README
+++ b/README
     This is work in progress, so you may find duplicated code fragments,
     ugly data structures, weird usage of filenames and other things.
 
-    The primary FTP site is "ftp://ftp.guug.de/pub/gcrypt/"
-    The primary WWW page is "http://www.d.shuttle.de/isil/gnupg/"
+    The primary FTP site is "ftp://ftp.gnupg.org/pub/gcrypt/"
+    The primary WWW page is "http://www.gnupg.org"
 
     If you like, send your keys to <gnupg-keys@isil.d.shuttle.de>; use
     "gpg --export --armor | mail gnupg-keys@isil.d.shuttle.de" to do this.
diff --git a/THANKS b/THANKS
index 460b397..d0f66e1 100644 (file)
--- a/THANKS
+++ b/THANKS
@@ -59,6 +59,7 @@ Paul D. Smith         psmith@baynetworks.com
 Peter Gutmann          pgut001@cs.auckland.ac.nz
 QingLong               qinglong@bolizm.ihep.su
 Ralph Gillen           gillen@theochem.uni-duesseldorf.de
+Reuben Sumner          rasumner@wisdom.weizmann.ac.il
 Roddy Strachan         roddy@satlink.com.au
 Roland Rosenfeld       roland@spinnaker.rhein.de
 Ross Golder            rossigee@bigfoot.com
diff --git a/TODO b/TODO
index 168c8b7..96dcaab 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,6 +1,8 @@
 
     * Check revocation and expire stuff.  PLEASE: THIS MUST BE TESTED!
 
+    * Escape "From "
+
     * Check calculation of key validity. PLEASE: IT IS IMPORTED THAT
       THIS GET TESTED.
 
index 6d4bcaa..533156c 100644 (file)
@@ -427,6 +427,13 @@ B<--not-dash-escaped>
     A special armor header line tells GnuPG about this
     cleartext signature framework.
 
+B<--escape-from-lines>
+    Because some mailers change lines starting with "From "
+    to ">From " it is good to handle such lines in a special
+    way when creating cleartext signatures; all other PGP
+    versions do it this way too.  Because this would violate
+    rfc2440, this option is not enabled per default.
+
 B<--passphrase-fd> I<n>
     Read the passphrase from file descriptor I<n>. If you use
     0 for I<n>, the passphrase will be read from stdin.  This
@@ -510,6 +517,7 @@ F<~/.gnupg/trustdb.gpg>      The trust database
 F<~/.gnupg/trustdb.gpg.lock> and the lock file
 
 F<~/.gnupg/options>        May contain options
+F</usr[/local]/share/gnupg/options.skel> Skeleton file
 
 F</usr[/local]/lib/gnupg/>  Default location for extensions
 
index 77990ae..b2ccffa 100644 (file)
@@ -1,3 +1,21 @@
+Thu Dec 17 18:31:15 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * misc.c (trap_unaligned): Only for glibc 1
+
+       * sign.c (write_dash_escaped): Now escapes "From " lines
+       * g10.c: New option --escape-from-lines
+
+       * trustdb.c (sort_tsl_list): New
+       (list_trust_path): Now prints sorted list.
+       (enum_cert_paths): Likewise.
+       (enum_cert_paths_print): New.
+       (print_paths): New printing format.
+       * pkclist.c (add_ownertrust): New arg quit.
+       (edit_ownertrust): New quit selection and does not query
+       the recipients ownertrust anymore.
+       (add_ownertrust): Print the ceritficate path.
+
+
 Mon Dec 14 21:18:49 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
 
        * parse-packet.c (parse_signature): Now checks for critical bit
index 78656ba..ca74fe4 100644 (file)
@@ -1079,7 +1079,7 @@ armor_filter( void *opaque, int control,
            }
            else
                iobuf_writestr(a,
-                   "Comment: For info finger gcrypt@ftp.guug.de\n");
+                   "Comment: For info see www.gnupg.org");
            if( afx->hdrlines )
                iobuf_writestr(a, afx->hdrlines);
            iobuf_put(a, '\n');
index b2c96e5..1f1fed5 100644 (file)
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -150,6 +150,7 @@ enum cmd_and_opt_values { aNull = 0,
     oS2KCipher,
     oCharset,
     oNotDashEscaped,
+    oEscapeFrom,
     oLockOnce,
 aTest };
 
@@ -301,6 +302,7 @@ static ARGPARSE_OPTS opts[] = {
     { oSetFilename, "set-filename", 2, "@" },
     { oComment, "comment", 2, "@" },
     { oNotDashEscaped, "not-dash-escaped", 0, "@" },
+    { oEscapeFrom, "escape-from-lines", 0, "@" },
     { oLockOnce, "lock-once", 0, "@" },
 {0} };
 
@@ -727,7 +729,11 @@ main( int argc, char **argv )
            register_cipher_extension(orig_argc? *orig_argv:NULL,
                                      pargs.r.ret_str);
            break;
-         case oRFC1991: opt.rfc1991 = 1; opt.no_comment = 1; break;
+         case oRFC1991:
+           opt.rfc1991 = 1;
+           opt.no_comment = 1;
+           opt.escape_from = 1;
+           break;
          case oEmuChecksumBug: opt.emulate_bugs |= EMUBUG_GPGCHKSUM; break;
          case oCompressSigs: opt.compress_sigs = 1; break;
          case oRunAsShmCP:
@@ -777,6 +783,7 @@ main( int argc, char **argv )
                                                    pargs.r.ret_str);
            break;
          case oNotDashEscaped: opt.not_dash_escaped = 1; break;
+         case oEscapeFrom: opt.escape_from = 1; break;
          case oLockOnce: opt.lock_once = 1; break;
 
          default : pargs.err = configfp? 1:2; break;
index 02d4222..acf5bf5 100644 (file)
@@ -278,7 +278,7 @@ proc_plaintext( CTX c, PACKET *pkt )
        md_enable( c->mfx.md, DIGEST_ALGO_SHA1 );
        md_enable( c->mfx.md, DIGEST_ALGO_MD5 );
     }
-    /*md_start_debug( c->mfx.md, "verify" );*/
+    md_start_debug( c->mfx.md, "verify" );
     rc = handle_plaintext( pt, &c->mfx, c->sigs_only, clearsig );
     if( rc == G10ERR_CREATE_FILE && !c->sigs_only) {
        /* can't write output but we hash it anyway to
index a521147..e799047 100644 (file)
@@ -23,7 +23,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <errno.h>
-#if defined(__linux__) && defined(__alpha__)
+#if defined(__linux__) && defined(__alpha__) && __GLIBC__ < 2
   #include <asm/sysinfo.h>
   #include <asm/unistd.h>
 #endif
@@ -50,7 +50,7 @@ pull_in_libs(void)
 }
 
 
-#if defined(__linux__) && defined(__alpha__) && defined(UAC_SIGBUS)
+#if defined(__linux__) && defined(__alpha__) && __GLIBC__ < 2
 #warning using trap_unaligned
 static int
 setsysinfo(unsigned long op, void *buffer, unsigned long size,
index a8164f8..b6b1cd2 100644 (file)
@@ -65,6 +65,7 @@ struct {
     int s2k_digest_algo;
     int s2k_cipher_algo;
     int not_dash_escaped;
+    int escape_from;
     int lock_once;
 } opt;
 
index 0e53339..8291682 100644 (file)
@@ -28,6 +28,13 @@ $Id$
 
 force-v3-sigs
 
+# Because some mailers change lines starting with "From " to ">From "
+# it is good to handle such lines in a special way when creating
+# cleartext signatures; all other PGP versions it this way too.
+# To enable full OpenPGP compliance you have to remove this option.
+
+escape_from_lines
+
 # If you do not use the Latin-1 (ISO-8859-1) charset, you should
 # tell GnuPG which is the native character set.  Please check
 # the man page for supported character sets.
index 094842d..fb0a89e 100644 (file)
@@ -77,6 +77,22 @@ show_paths( ulong lid, int only_first )
                  level*2, "",
                  nbits_from_pk( pk ), pubkey_letter( pk->pubkey_algo ),
                  (ulong)keyid[1], lid, datestr_from_pk( pk ) );
+     #if 0
+       c = trust_letter(otrust);
+       if( c )
+           putchar( c );
+       else
+           printf( "%02x", otrust );
+       putchar('/');
+       c = trust_letter(validity);
+       if( c )
+           putchar( c );
+       else
+           printf( "%02x", validity );
+       putchar(' ');
+      #endif
+
+
        p = get_user_id( keyid, &n );
        tty_print_string( p, n ),
        m_free(p);
@@ -102,6 +118,7 @@ edit_ownertrust( ulong lid, int mode )
     u32 keyid[2];
     PKT_public_key *pk ;
     int changed=0;
+    int quit=0;
 
     rc = keyid_from_lid( lid, keyid );
     if( rc ) {
@@ -138,13 +155,15 @@ edit_ownertrust( ulong lid, int mode )
 " s = please show me more information\n") );
     if( mode )
        tty_printf(_(" m = back to the main menu\n"));
+    else
+       tty_printf(_(" q = quit\n"));
     tty_printf("\n");
 
     for(;;) {
        /* a string with valid answers */
-       char *ans = _("sSmM");
+       char *ans = _("sSmMqQ");
 
-       if( strlen(ans) != 4 )
+       if( strlen(ans) != 6 )
            BUG();
        p = cpr_get("edit_ownertrust.value",_("Your decision? "));
        trim_spaces(p);
@@ -172,11 +191,15 @@ edit_ownertrust( ulong lid, int mode )
        else if( mode && (*p == ans[2] || *p == ans[3] || *p == CONTROL_D ) ) {
            break ; /* back to the menu */
        }
+       else if( !mode && (*p == ans[4] || *p == ans[5] ) ) {
+           quit = 1;
+           break ; /* back to the menu */
+       }
        m_free(p); p = NULL;
     }
     m_free(p);
     m_free(pk);
-    return changed;
+    return quit? -1 : changed;
 }
 
 
@@ -185,7 +208,7 @@ edit_ownertrust( ulong lid, int mode )
  * Returns: -1 if no ownertrust were added.
  */
 static int
-add_ownertrust( PKT_public_key *pk )
+add_ownertrust( PKT_public_key *pk, int *quit )
 {
     int rc;
     void *context = NULL;
@@ -193,6 +216,7 @@ add_ownertrust( PKT_public_key *pk )
     unsigned otrust, validity;
     int any=0, changed=0, any_undefined=0;
 
+    *quit = 0;
     tty_printf(
 _("Could not find a valid trust path to the key.  Let's see whether we\n"
   "can assign some missing owner trust values.\n\n"));
@@ -205,12 +229,20 @@ _("Could not find a valid trust path to the key.  Let's see whether we\n"
 
     lid = pk->local_id;
     while( enum_cert_paths( &context, &lid, &otrust, &validity ) != -1 ) {
+       if( lid == pk->local_id )
+           continue;
        any=1;
        if( otrust == TRUST_UNDEFINED || otrust == TRUST_EXPIRED ||
            otrust == TRUST_UNKNOWN ) {
            any_undefined=1;
-           if( edit_ownertrust( lid, 0 ) )
-               changed=1;
+           enum_cert_paths_print( &context, NULL, lid );
+           rc = edit_ownertrust( lid, 0 );
+           if( rc == -1 ) {
+               *quit = 1;
+               break;
+           }
+           else if( rc > 0 )
+              changed = 1;
        }
     }
     enum_cert_paths( &context, NULL, NULL, NULL ); /* release context */
@@ -272,8 +304,10 @@ do_we_trust( PKT_public_key *pk, int trustlevel )
            log_info(_("%08lX: no info to calculate a trust probability\n"),
                                        (ulong)keyid_from_pk( pk, NULL) );
        else {
-           rc = add_ownertrust( pk );
-           if( !rc ) {
+           int quit;
+
+           rc = add_ownertrust( pk, &quit );
+           if( !rc && !quit ) {
                rc = check_trust( pk, &trustlevel );
                if( rc )
                    log_fatal("trust check after add_ownertrust failed: %s\n",
@@ -407,8 +441,9 @@ check_signatures_trust( PKT_signature *sig )
                                    "signature belongs to the owner.\n" ));
        }
        else {
-           rc = add_ownertrust( pk );
-           if( rc ) {
+           int quit;
+           rc = add_ownertrust( pk, &quit );
+           if( rc || quit ) {
                dont_try = 1;
                rc = 0;
            }
index 7eda8df..d471b9f 100644 (file)
@@ -44,6 +44,7 @@ special_md_putc( MD_HANDLE md, int c, int *state )
        if( *state == 1 ) {
            md_putc(md, '\r');
        }
+
        *state = 0;
        return;
     }
index 9b78acf..f3373ed 100644 (file)
@@ -475,12 +475,35 @@ write_dash_escaped( IOBUF inp, IOBUF out, MD_HANDLE md )
     }
 
     while( (c = iobuf_get(inp)) != -1 ) {
-       /* Note: We don't escape "From " because the MUA should cope with it */
        if( lastlf ) {
            if( c == '-' ) {
                iobuf_put( out, c );
                iobuf_put( out, ' ' );
            }
+           else if( c == 'F' && opt.escape_from ) {
+               int i;
+
+               if( state >= 1 )
+                   md_putc(md, '\r');
+               if( state >= 2 )
+                   md_putc(md, '\n');
+               state = 0;
+
+               for( i=1; i < 5 && (c = iobuf_get(inp)) != -1; i++ ) {
+                   if( "From "[i] != c )
+                       break;
+               }
+               if( i < 5 ) {
+                   iobuf_write( out, "From", i );
+                   md_write( md, "From", i );
+                   if( c == -1 )
+                       break;
+               }
+               else {
+                   iobuf_writestr( out, "- From" );
+                   md_write( md, "From", 4 );
+               }
+           }
        }
 
       again:
@@ -614,7 +637,7 @@ clearsign_file( const char *fname, STRLIST locusr, const char *outfile )
        PKT_secret_key *sk = sk_rover->sk;
        md_enable(textmd, hash_for(sk->pubkey_algo));
     }
-    /*md_start_debug( textmd, "create" );*/
+    md_start_debug( textmd, "create" );
     if( !opt.not_dash_escaped )
        iobuf_push_filter( inp, text_filter, &tfx );
     rc = write_dash_escaped( inp, out, textmd );
index fbfb807..ff05a32 100644 (file)
@@ -81,6 +81,13 @@ struct trust_seg_list {
 };
 
 
+struct enum_cert_paths_ctx {
+   int init;
+   TRUST_SEG_LIST tsl_head;
+   TRUST_SEG_LIST tsl;
+   int idx;
+};
+
 
 struct recno_list_struct {
     struct recno_list_struct *next;
@@ -98,6 +105,7 @@ static int ins_lid_table_item( LOCAL_ID_TABLE tbl, ulong lid, unsigned flag );
 static int qry_lid_table_flag( LOCAL_ID_TABLE tbl, ulong lid, unsigned *flag );
 
 static void print_user_id( const char *text, u32 *keyid );
+static void sort_tsl_list( TRUST_SEG_LIST *trust_seg_list );
 static int list_sigs( ulong pubkey_id );
 static int do_check( TRUSTREC *drec, unsigned *trustlevel );
 static int get_dir_record( PKT_public_key *pk, TRUSTREC *rec );
@@ -890,17 +898,23 @@ collect_paths( int depth, int max_depth, int all, TRUSTREC *drec,
            for(i=0; i < SIGS_PER_RECORD; i++ ) {
                TRUSTREC tmp;
                int ot, nt;
+               int unchecked = 0;
 
                if( !rec.r.sig.sig[i].lid )
                    continue; /* skip deleted sigs */
-               if( !(rec.r.sig.sig[i].flag & SIGF_CHECKED) )
-                   continue; /* skip unchecked signatures */
-               if( !(rec.r.sig.sig[i].flag & SIGF_VALID) )
-                   continue; /* skip invalid signatures */
-               if( (rec.r.sig.sig[i].flag & SIGF_EXPIRED) )
-                   continue; /* skip expired signatures */
-               if( (rec.r.sig.sig[i].flag & SIGF_REVOKED) )
-                   continue; /* skip revoked signatures */
+               if( !(rec.r.sig.sig[i].flag & SIGF_CHECKED) ) {
+                   if( !all )
+                       continue; /* skip unchecked signatures */
+                   unchecked = 1;
+               }
+               else {
+                   if( !(rec.r.sig.sig[i].flag & SIGF_VALID) )
+                       continue; /* skip invalid signatures */
+                   if( (rec.r.sig.sig[i].flag & SIGF_EXPIRED) )
+                       continue; /* skip expired signatures */
+                   if( (rec.r.sig.sig[i].flag & SIGF_REVOKED) )
+                       continue; /* skip revoked signatures */
+               }
 
                /* visit every signer only once (a signer may have
                 * signed more than one user ID) */
@@ -923,7 +937,7 @@ collect_paths( int depth, int max_depth, int all, TRUSTREC *drec,
                                                        trust_seg_head );
                nt &= TRUST_MASK;
 
-               if( nt < TRUST_MARGINAL ) {
+               if( nt < TRUST_MARGINAL || unchecked ) {
                    continue;
                }
 
@@ -1175,7 +1189,7 @@ import_ownertrust( const char *fname )
            continue;
        n = strlen(line);
        if( line[n-1] != '\n' ) {
-           log_error_f(fname, _("line to long\n") );
+           log_error_f(fname, _("line too long\n") );
            /* ... or last line does not have a LF */
            break; /* can't continue */
        }
@@ -1249,7 +1263,7 @@ import_ownertrust( const char *fname )
 
 
 static void
-print_path( int pathlen, TRUST_INFO *path )
+print_path( int pathlen, TRUST_INFO *path, FILE *fp, ulong highlight )
 {
     int rc, c, i;
     u32 keyid[2];
@@ -1257,35 +1271,67 @@ print_path( int pathlen, TRUST_INFO *path )
     size_t n;
 
     for( i = 0; i < pathlen; i++ )  {
-       printf("%*s", i*2, "" );
+       if( highlight )
+           fputs(highlight == path[i].lid? "* ":"  ", fp );
        rc = keyid_from_lid( path[i].lid, keyid );
        if( rc )
-           printf("????????.%lu:", path[i].lid );
+           fprintf(fp, "????????.%lu:", path[i].lid );
        else
-           printf("%08lX.%lu:", (ulong)keyid[1], path[i].lid );
+           fprintf(fp,"%08lX.%lu:", (ulong)keyid[1], path[i].lid );
        c = trust_letter(path[i].otrust);
        if( c )
-           putchar( c );
+           putc( c, fp );
        else
-           printf( "%02x", path[i].otrust );
-       putchar('/');
+           fprintf( fp, "%02x", path[i].otrust );
+       putc('/', fp);
        c = trust_letter(path[i].trust);
        if( c )
-           putchar( c );
+           putc( c, fp );
        else
-           printf( "%02x", path[i].trust );
-       putchar(' ');
+           fprintf( fp, "%02x", path[i].trust );
+       putc(' ', fp);
        p = get_user_id( keyid, &n );
-       putchar(' ');
-       putchar('\"');
-       print_string( stdout, p, n > 40? 40:n, 0 );
-       putchar('\"');
+       putc(' ', fp);
+       putc('\"', fp);
+       print_string( fp, p, n > 40? 40:n, 0 );
+       putc('\"', fp);
        m_free(p);
-       putchar('\n');
+       putc('\n', fp );
     }
 }
 
 
+static int
+cmp_tsl_array( const void *xa, const void *xb )
+{
+    TRUST_SEG_LIST a = *(TRUST_SEG_LIST*)xa;
+    TRUST_SEG_LIST b = *(TRUST_SEG_LIST*)xb;
+    return a->pathlen - b->pathlen;
+}
+
+
+static void
+sort_tsl_list( TRUST_SEG_LIST *trust_seg_list )
+{
+    TRUST_SEG_LIST *array, *tail, tsl;
+    size_t n;
+
+    for(n=0, tsl = *trust_seg_list; tsl; tsl = tsl->next )
+       n++;
+    array = m_alloc( (n+1) * sizeof *array );
+    for(n=0, tsl = *trust_seg_list; tsl; tsl = tsl->next )
+       array[n++] = tsl;
+    array[n] = NULL;
+    qsort( array, n, sizeof *array, cmp_tsl_array );
+    *trust_seg_list = NULL;
+    tail = trust_seg_list;
+    for(n=0; (tsl=array[n]); n++ ) {
+       *tail = tsl;
+       tail = &tsl->next;
+    }
+    m_free( array );
+}
+
 
 void
 list_trust_path( const char *username )
@@ -1318,9 +1364,12 @@ list_trust_path( const char *username )
     trust_seg_list = NULL;
     collect_paths( 0, opt.max_cert_depth, 1, &rec, tmppath, &trust_seg_list );
     m_free( tmppath );
+    sort_tsl_list( &trust_seg_list );
     /* and now print them */
     for(tsl = trust_seg_list; tsl; tsl = tsl->next ) {
-       print_path( tsl->pathlen, tsl->path );
+       print_path( tsl->pathlen, tsl->path, stdout, 0 );
+       if( tsl->next )
+           putchar('\n');
     }
 
     /* release the list */
@@ -1638,12 +1687,7 @@ int
 enum_cert_paths( void **context, ulong *lid,
                 unsigned *ownertrust, unsigned *validity )
 {
-    struct {
-       int init;
-       TRUST_SEG_LIST tsl_head;
-       TRUST_SEG_LIST tsl;
-       int idx;
-    } *ctx;
+    struct enum_cert_paths_ctx *ctx;
     TRUST_SEG_LIST tsl;
 
     if( !lid ) {  /* release the context */
@@ -1675,7 +1719,8 @@ enum_cert_paths( void **context, ulong *lid,
        tsl = NULL;
        collect_paths( 0, opt.max_cert_depth, 1, &rec, tmppath, &tsl );
        m_free( tmppath );
-       /* and now print them */
+       sort_tsl_list( &tsl );
+       /* setup the context */
        ctx->tsl_head = tsl;
        ctx->tsl = ctx->tsl_head;
        ctx->idx = 0;
@@ -1702,6 +1747,28 @@ enum_cert_paths( void **context, ulong *lid,
 
 
 /****************
+ * Print the current path
+ */
+int
+enum_cert_paths_print( void **context, FILE *fp, ulong selected_lid )
+{
+    struct enum_cert_paths_ctx *ctx;
+    TRUST_SEG_LIST tsl;
+
+    if( !*context )
+       return;
+    ctx = *context;
+    if( !ctx->tsl )
+       return;
+
+    if( !fp )
+       fp = stderr;
+
+    print_path( ctx->tsl->pathlen, ctx->tsl->path, fp, selected_lid );
+}
+
+
+/****************
  * Return the assigned ownertrust value for the given LID
  */
 unsigned
index 933d7a5..fd92826 100644 (file)
@@ -53,6 +53,7 @@ int check_trust( PKT_public_key *pk, unsigned *r_trustlevel );
 int query_trust_info( PKT_public_key *pk );
 int enum_cert_paths( void **context, ulong *lid,
                     unsigned *ownertrust, unsigned *validity );
+int enum_cert_paths_print( void **context, FILE *fp, ulong selected_lid );
 unsigned get_ownertrust( ulong lid );
 int get_ownertrust_info( ulong lid );
 byte *get_pref_data( ulong lid, const byte *namehash, size_t *ret_n );
index 8f69e8f..13da187 100644 (file)
@@ -1,3 +1,7 @@
+Thu Dec 17 18:31:15 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * fr.po: Imported new version
+
 Mon Dec 14 21:18:49 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
 
        * de.po: Imported new version.
index c3fded5..a3b700a 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -2486,7 +2486,7 @@ msgid "error reading key record: %s\n"
 msgstr "Fehler beim Lesen des Schl.Satzes: %s\n"
 
 #: g10/trustdb.c:1178
-msgid "line to long\n"
+msgid "line too long\n"
 msgstr "Zeile zu lang\n"
 
 #: g10/trustdb.c:1186
index 6fb48ae..d52e11c 100644 (file)
@@ -2503,7 +2503,7 @@ msgid "error reading key record: %s\n"
 msgstr "%s: error comprobando la clave: %s\n"
 
 #: g10/trustdb.c:1178
-msgid "line to long\n"
+msgid "line too long\n"
 msgstr ""
 
 #: g10/trustdb.c:1186
index 95cacdc..dbc8e41 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -4,18 +4,18 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gnupg-0.4.1a\n"
-"POT-Creation-Date: 1998-12-10 20:11+0100\n"
-"PO-Revision-Date: 1998-10-29 19:01+0100\n"
+"Project-Id-Version: gnupg 0.4.5a\n"
+"POT-Creation-Date: 1998-12-15 00:29+0100\n"
+"PO-Revision-Date: 1998-12-15 00:35+01:00\n"
 "Last-Translator: Gaël Quéri <gqueri@mail.dotcom.fr>\n"
 "Language-Team: French <fr@li.org>\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso8859-1\n"
+"Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: 8-bit\n"
 
 #: util/secmem.c:77
 msgid "Warning: using insecure memory!\n"
-msgstr "Attention: utilisation de la mémoire non sûre!\n"
+msgstr "Attention : utilisation de la mémoire non sûre !\n"
 
 #: util/miscutil.c:143
 msgid "yes"
@@ -27,7 +27,7 @@ msgstr "oO"
 
 #: util/errors.c:54
 msgid "General error"
-msgstr "Erreur Générale"
+msgstr "Erreur générale"
 
 #: util/errors.c:55
 msgid "Unknown packet type"
@@ -59,7 +59,7 @@ msgstr "Mauvaise signature"
 
 #: util/errors.c:62
 msgid "Checksum error"
-msgstr "Erreur de somme de vérification"
+msgstr "Erreur de checksum"
 
 #: util/errors.c:63
 msgid "Bad passphrase"
@@ -87,11 +87,11 @@ msgstr "Armure invalide"
 
 #: util/errors.c:69
 msgid "No such user id"
-msgstr "Pas de tel utilisateur."
+msgstr "Pas de tel utilisateur"
 
 #: util/errors.c:70
 msgid "Secret key not available"
-msgstr "La clé secrète n'est pas disponible."
+msgstr "La clé secrète n'est pas disponible"
 
 #: util/errors.c:71
 msgid "Wrong secret key used"
@@ -147,7 +147,7 @@ msgstr "Erreur dans la base de confiance"
 
 #: util/errors.c:84
 msgid "Bad MPI"
-msgstr "Mauvais MPI"
+msgstr "Mauvais entier en précision multiple"
 
 #: util/errors.c:85
 msgid "Resource limit"
@@ -163,7 +163,7 @@ msgstr "Mauvais certificat"
 
 #: util/errors.c:88
 msgid "Malformed user id"
-msgstr "Nom d'utilisateur formé"
+msgstr "Nom d'utilisateur malformé"
 
 #: util/errors.c:89
 msgid "File close error"
@@ -207,13 +207,12 @@ msgstr "... c'est un bug (%s:%d:%s)\n"
 msgid "you found a bug ... (%s:%d)\n"
 msgstr "vous avez trouvé un bug ... (%s:%d)\n"
 
-#: cipher/random.c:412
-#, fuzzy
+#: cipher/random.c:406
 msgid "WARNING: using insecure random number generator!!\n"
 msgstr ""
-"attention: utilisation d'un générateur de nombres aléatoires peu sûr!!\n"
+"ATTENTION : utilisation d'un générateur de nombres aléatoires peu sûr !!\n"
 
-#: cipher/random.c:413
+#: cipher/random.c:407
 msgid ""
 "The random number generator is only a kludge to let\n"
 "it run - it is in no way a strong RNG!\n"
@@ -221,13 +220,13 @@ msgid ""
 "DON'T USE ANY DATA GENERATED BY THIS PROGRAM!!\n"
 "\n"
 msgstr ""
-"Le générateur de nombres aléatoires n'est qu'un artifice visant\n"
-"à le compiler - ce n'est en aucune manière un générateur(RNG) fort!\n"
+"Le générateur de nombres aléatoires n'est qu'un artifice visant à exécuter\n"
+"GnuPG - ce n'est en aucune manière un générateur (RNG) fort!\n"
 "\n"
 "N'UTILISEZ PAS LES DONNÉES GÉNÉRÉES PAR CE PROGRAMME!!\n"
 "\n"
 
-#: cipher/rndlinux.c:116
+#: cipher/rndlinux.c:118
 #, c-format
 msgid ""
 "\n"
@@ -236,7 +235,7 @@ msgid ""
 msgstr ""
 "\n"
 "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"
+"pour que l'OS puisse amasser plus d'entropie ! (il faut %d octets de plus)\n"
 
 #: g10/g10.c:159
 msgid ""
@@ -260,11 +259,11 @@ msgstr "faire une signature d
 
 #: g10/g10.c:165
 msgid "encrypt data"
-msgstr "crypter les données"
+msgstr "chiffrer les données"
 
 #: g10/g10.c:166
 msgid "encryption only with symmetric cipher"
-msgstr "chiffrement symétrique seumement"
+msgstr "chiffrement symétrique seulement"
 
 #: g10/g10.c:167
 msgid "store only"
@@ -272,7 +271,7 @@ msgstr "pas d'action"
 
 #: g10/g10.c:168
 msgid "decrypt data (default)"
-msgstr "décrypter les données (défaut)"
+msgstr "déchiffrer les données (défaut)"
 
 #: g10/g10.c:169
 msgid "verify a signature"
@@ -324,15 +323,15 @@ msgstr "importer/fusionner les cl
 
 #: g10/g10.c:189
 msgid "list only the sequence of packets"
-msgstr "ne lister qu'une suite de paquets"
+msgstr "ne lister que les paquets"
 
 #: g10/g10.c:192
 msgid "export the ownertrust values"
-msgstr "exporter les valeurs de confiance"
+msgstr "exporter les indices de confiance"
 
 #: g10/g10.c:194
 msgid "import ownertrust values"
-msgstr "importer les valeurs de confiance"
+msgstr "importer les indices de confiance"
 
 #
 #: g10/g10.c:196
@@ -379,11 +378,11 @@ msgstr "cr
 
 #: g10/g10.c:214
 msgid "use this user-id to sign or decrypt"
-msgstr "utiliser ce nom pour signer ou décrypter"
+msgstr "utiliser ce nom pour signer ou déchiffrer"
 
 #: g10/g10.c:215
 msgid "use this user-id for encryption"
-msgstr "utiliser ce nom d'utilisateur pour crypter"
+msgstr "utiliser ce nom d'utilisateur pour chiffrer"
 
 #: g10/g10.c:216
 msgid "|N|set compress level N (0 disables)"
@@ -413,15 +412,15 @@ msgstr "forcer les signatures en v3"
 #. { oDryRun, "dry-run",   0, N_("do not make any changes") },
 #: g10/g10.c:225
 msgid "batch mode: never ask"
-msgstr "mode automatique: ne jamais rien demander"
+msgstr "mode automatique : ne jamais rien demander"
 
 #: g10/g10.c:226
 msgid "assume yes on most questions"
-msgstr "supposer oui à la plupart des questions"
+msgstr "répondre oui à la plupart des questions"
 
 #: g10/g10.c:227
 msgid "assume no on most questions"
-msgstr "supposer non à la plupart des questions"
+msgstr "répondre non à la plupart des questions"
 
 #: g10/g10.c:228
 msgid "add this keyring to the list of keyrings"
@@ -436,9 +435,8 @@ msgid "|NAME|use NAME as default secret key"
 msgstr "|NOM|utiliser NOM comme clé secrète par défaut"
 
 #: g10/g10.c:231
-#, fuzzy
 msgid "|NAME|set terminal charset to NAME"
-msgstr "|NOM|utiliser l'algorithme de cryptage NOM"
+msgstr "|NOM|le terminal utilise la table de caractères NOM"
 
 #: g10/g10.c:232
 msgid "read options from file"
@@ -454,7 +452,7 @@ msgstr "permettre un d
 
 #: g10/g10.c:236
 msgid "|FD|write status info to this FD"
-msgstr "|FD|écrire les informations d'état sur ce descripteur"
+msgstr "|FD|écrire l'état sur ce descripteur"
 
 #: g10/g10.c:237
 msgid "do not write comment packets"
@@ -470,7 +468,7 @@ msgstr "(3 par d
 
 #: g10/g10.c:241
 msgid "|KEYID|ulimately trust this key"
-msgstr ""
+msgstr "|IDCLE|donner une confiance totale à cette clé"
 
 #: g10/g10.c:242
 msgid "|FILE|load extension module FILE"
@@ -478,8 +476,9 @@ msgstr "|FICH|charger le module d'extension FICH"
 
 #: g10/g10.c:243
 msgid "emulate the mode described in RFC1991"
-msgstr "émuler le mode décrit dans la RFC1991"
+msgstr "imiter le mode décrit dans la RFC1991"
 
+# FIXMOI : faudra trouver mieux ...
 #: g10/g10.c:244
 msgid "|N|use passphrase mode N"
 msgstr "|N|utiliser le mode de mots de passe N"
@@ -490,11 +489,11 @@ msgstr "|NOM|utiliser le hachage NOM pour les mots de passe"
 
 #: g10/g10.c:248
 msgid "|NAME|use cipher algorithm NAME for passphrases"
-msgstr "|NOM|utiliser le cryptage NOM pour les mots de passe"
+msgstr "|NOM|utiliser le chiffrement NOM pour les mots de passe"
 
 #: g10/g10.c:250
 msgid "|NAME|use cipher algorithm NAME"
-msgstr "|NOM|utiliser l'algorithme de cryptage NOM"
+msgstr "|NOM|utiliser l'algorithme de chiffrement NOM"
 
 #: g10/g10.c:251
 msgid "|NAME|use message digest algorithm NAME"
@@ -506,7 +505,7 @@ msgstr "|N|utiliser l'algorithme de compression N"
 
 #: g10/g10.c:253
 msgid "throw keyid field of encrypted packets"
-msgstr "enlever l'identification des paquets cryptés"
+msgstr "supprimer l'identification des paquets chiffrés"
 
 #: g10/g10.c:261
 msgid ""
@@ -580,9 +579,9 @@ msgid "conflicting commands\n"
 msgstr "commandes en conflit\n"
 
 #: g10/g10.c:616
-#, fuzzy, c-format
+#, c-format
 msgid "NOTE: no default option file '%s'\n"
-msgstr "note: pas de fichier d'options par défaut '%s'\n"
+msgstr "NOTE : pas de fichier d'options par défaut '%s'\n"
 
 #: g10/g10.c:620
 #, c-format
@@ -595,13 +594,13 @@ msgid "reading options from '%s'\n"
 msgstr "lire les options de '%s'\n"
 
 #: g10/g10.c:776
-#, fuzzy, c-format
+#, c-format
 msgid "%s is not a valid character set\n"
-msgstr "Caractère invalide dans le commentaire\n"
+msgstr "%s n'est pas une table de caractères valide\n"
 
 #: g10/g10.c:810 g10/g10.c:822
 msgid "selected cipher algorithm is invalid\n"
-msgstr "l'algorithme de cryptage sélectionné est invalide\n"
+msgstr "l'algorithme de chiffrement sélectionné est invalide\n"
 
 #: g10/g10.c:816 g10/g10.c:828
 msgid "selected digest algorithm is invalid\n"
@@ -614,29 +613,28 @@ msgstr "l'algorithme de compression doit faire partie de l'
 
 #: g10/g10.c:833
 msgid "completes-needed must be greater than 0\n"
-msgstr "le nombre de signatures complètes minimal doit être supérieur à 0\n"
+msgstr "« completes-needed » doit être supérieur à 0\n"
 
 #: g10/g10.c:835
 msgid "marginals-needed must be greater than 1\n"
-msgstr "le nombre de singatures marginales minimal doit être supérieur à 1\n"
+msgstr "« marginals-needed » doit être supérieur à 1\n"
 
 #: g10/g10.c:837
 msgid "max-cert-depth must be in range 1 to 255\n"
-msgstr ""
+msgstr "« max-cert-depth » doit être compris entre 1 et 255\n"
 
 #: g10/g10.c:840
-#, fuzzy
 msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
-msgstr "note: le mode S2K simple (0) est fortement déconseillé\n"
+msgstr "NOTE : le mode S2K simple (0) est fortement déconseillé\n"
 
 #: g10/g10.c:844
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
-msgstr "mode S2K invalide; doit être 0, 1 ou 3\n"
+msgstr "mode S2K invalide ; doit être 0, 1 ou 3\n"
 
 #: g10/g10.c:927
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
-msgstr "n'a pas pu initialiser la base de confiance: %s\n"
+msgstr "n'a pas pu initialiser la base de confiance : %s\n"
 
 #: g10/g10.c:933
 msgid "--store [filename]"
@@ -667,9 +665,8 @@ msgid "--decrypt [filename]"
 msgstr "--decrypt [nom du fichier]"
 
 #: g10/g10.c:1010
-#, fuzzy
 msgid "--edit-key username [commands]"
-msgstr "--edit-key utilisateur"
+msgstr "--edit-key utilisateur [commandes]"
 
 #: g10/g10.c:1026
 msgid "--delete-secret-key username"
@@ -691,17 +688,17 @@ msgstr "-k[v][v][v][c] [utilisateur] [porte-cl
 #: g10/g10.c:1120
 #, c-format
 msgid "dearmoring failed: %s\n"
-msgstr "suppression d'armure non réussie: %s\n"
+msgstr "suppression d'armure non réussie : %s\n"
 
 #: g10/g10.c:1128
 #, c-format
 msgid "enarmoring failed: %s\n"
-msgstr "mise d'armure non réussie:%s \n"
+msgstr "construction d'armure non réussie : %s \n"
 
 #: g10/g10.c:1194
 #, c-format
 msgid "invalid hash algorithm '%s'\n"
-msgstr "algorithme de hachage invalide '%s'\n"
+msgstr "algorithme de hachage '%s' invalide\n"
 
 #: g10/g10.c:1273
 msgid "[filename]"
@@ -709,7 +706,7 @@ msgstr "[nom du fichier]"
 
 #: g10/g10.c:1277
 msgid "Go ahead and type your message ...\n"
-msgstr ""
+msgstr "Continuez et tapez votre message...\n"
 
 #: g10/decrypt.c:59 g10/g10.c:1280 g10/verify.c:66
 #, c-format
@@ -718,33 +715,33 @@ msgstr "ne peut ouvrir '%s'\n"
 
 #: g10/armor.c:344 g10/armor.c:391
 msgid "armor header: "
-msgstr "entête d'armure: "
+msgstr "en-tête d'armure : "
 
 #: g10/armor.c:355
 msgid "invalid clearsig header\n"
-msgstr "entête de signature claire invalide\n"
+msgstr "en-tête de signature claire invalide\n"
 
 #: g10/armor.c:382
 msgid "invalid armor header: "
-msgstr "entête d'armure invalide: "
+msgstr "en-tête d'armure invalide : "
 
 #: g10/armor.c:460
 #, c-format
 msgid "armor: %s\n"
-msgstr "armure: %s\n"
+msgstr "armure : %s\n"
 
 #: g10/armor.c:533
 msgid "invalid dash escaped line: "
-msgstr "ligne d'échappement invalide: "
+msgstr "ligne de traits d'échappement invalide : "
 
 #: g10/armor.c:602
 msgid "invalid clear text header: "
-msgstr "entête de texte clair invalide: "
+msgstr "en-tête de texte clair invalide : "
 
 #: g10/armor.c:845
 #, c-format
 msgid "invalid radix64 character %02x skipped\n"
-msgstr "caractère %02x invalide en base 64 sauté\n"
+msgstr "caractère %02x invalide en base 64 ignoré\n"
 
 #: g10/armor.c:878
 msgid "premature eof (no CRC)\n"
@@ -761,7 +758,7 @@ msgstr "CRC malform
 #: g10/armor.c:905
 #, c-format
 msgid "CRC error; %06lx - %06lx\n"
-msgstr "Erreur de CRC06lx - %06lx\n"
+msgstr "Erreur de CRC ; %06lx - %06lx\n"
 
 #: g10/armor.c:924
 msgid "premature eof (in Trailer)\n"
@@ -776,13 +773,13 @@ msgid "no valid RFC1991 or OpenPGP data found.\n"
 msgstr "pas de donnée RFC1991 ou OpenPGP valide trouvée.\n"
 
 #: g10/pkclist.c:121
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "No trust value assigned to %lu:\n"
 "%4u%c/%08lX %s \""
 msgstr ""
-"Pas de confiance définie pour %lu:\n"
-"%4u%c/%08lX %s"
+"Pas de confiance définie pour %lu :\n"
+"%4u%c/%08lX %s \""
 
 #: g10/pkclist.c:131
 msgid ""
@@ -800,10 +797,10 @@ msgstr ""
 "correctement les clés des autres utilisateurs (en regardant des passeports,\n"
 "en vérifiant les empreintes de diverses sources...)?\n"
 "\n"
-" 1 = Je ne sais pas\n"
-" 2 = Je ne lui fais pas confiance\n"
-" 3 = Je le crois marginalement\n"
-" 4 = Je le crois entièrement\n"
+" 1 = je ne sais pas\n"
+" 2 = je ne lui fais pas confiance\n"
+" 3 = je le crois marginalement\n"
+" 4 = je le crois totalement\n"
 " s = montrez moi plus d'informations\n"
 
 #: g10/pkclist.c:140
@@ -817,11 +814,11 @@ msgstr "sSmM"
 
 #: g10/pkclist.c:149
 msgid "Your decision? "
-msgstr "Votre décision? "
+msgstr "Votre décision ? "
 
 #: g10/pkclist.c:169
 msgid "Certificates leading to an ultimately trusted key:\n"
-msgstr ""
+msgstr "Certificats conduisant vers une clé à confiance ultime :\n"
 
 #: g10/pkclist.c:197
 msgid ""
@@ -830,52 +827,55 @@ msgid ""
 "\n"
 msgstr ""
 "N'a pas pu trouver un chemin de confiance valide jusqu'à la clé. Voyons si\n"
-"nous ne pouvons pas assigner quelques valeurs de confiance.\n"
+"nous ne pouvons pas assigner quelques indices de confiance manquants.\n"
 
 #: g10/pkclist.c:219
 msgid ""
 "No path leading to one of our keys found.\n"
 "\n"
 msgstr ""
+"Aucun chemin menant vers une de nos clés n'a été trouvé.\n"
+"\n"
 
 #: g10/pkclist.c:221
 msgid ""
 "No certificates with undefined trust found.\n"
 "\n"
 msgstr ""
+"Aucun certificat à confiance indéfinie n'a été trouvé.\n"
+"\n"
 
 #: g10/pkclist.c:223
-#, fuzzy
 msgid ""
 "No trust values changed.\n"
 "\n"
 msgstr ""
-"Pas de valeur de confiance changée.\n"
+"Pas d'indice de confiance changé.\n"
 "\n"
 
 #: g10/pkclist.c:238
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX: key has been revoked!\n"
-msgstr "clé %08lX: acceptée comme clé secrète.\n"
+msgstr "clé %08lX : la clé a été révoquée !\n"
 
 #: g10/pkclist.c:244 g10/pkclist.c:335
 msgid "Use this key anyway? "
-msgstr "Utiliser cette clé quand-même? "
+msgstr "Utiliser cette clé quand-même ? "
 
 #: g10/pkclist.c:266
-#, fuzzy, c-format
+#, c-format
 msgid "%08lX: key has expired\n"
-msgstr "Note: Cette clé a expiré!\n"
+msgstr "%08lX : la clé a expiré\n"
 
 #: g10/pkclist.c:272
 #, c-format
 msgid "%08lX: no info to calculate a trust probability\n"
-msgstr ""
+msgstr "%08lX : pas d'information pour calculer une probabilité de confiance\n"
 
 #: g10/pkclist.c:288
-#, fuzzy, c-format
+#, c-format
 msgid "%08lX: We do NOT trust this key\n"
-msgstr "ATTENTION: On ne fait PAS confiance à cette clé\n"
+msgstr "%08lX : Nous ne faisons PAS confiance à cette clé\n"
 
 #: g10/pkclist.c:294
 #, c-format
@@ -883,14 +883,17 @@ msgid ""
 "%08lX: It is not sure that this key really belongs to the owner\n"
 "but it is accepted anyway\n"
 msgstr ""
+"%08lX : Il n'est pas sûr que cette clé appartient vraiment à son "
+"propriétaire\n"
+"mais elle est quand même acceptée\n"
 
 #: g10/pkclist.c:300
 msgid "This key probably belongs to the owner\n"
-msgstr ""
+msgstr "Cette clé appartient probablement à son propriétaire\n"
 
 #: g10/pkclist.c:305
 msgid "This key belongs to us\n"
-msgstr ""
+msgstr "Cette clé nous appartient\n"
 
 #: g10/pkclist.c:330
 msgid ""
@@ -906,11 +909,11 @@ msgstr ""
 
 #: g10/pkclist.c:339
 msgid "WARNING: Using untrusted key!\n"
-msgstr "ATTENTION: Utilisation d'une clé sans confiance!\n"
+msgstr "ATTENTION : Utilisation d'une clé sans confiance !\n"
 
 #: g10/pkclist.c:375
 msgid "WARNING: This key has been revoked by its owner!\n"
-msgstr "ATTENTION: Cette clé à été révoquée par son propriétaire\n"
+msgstr "ATTENTION : Cette clé à été révoquée par son propriétaire !\n"
 
 #: g10/pkclist.c:376
 msgid "         This could mean that the signature is forgery.\n"
@@ -918,21 +921,21 @@ msgstr "         Cela pourrait signifier que la signature est fausse.\n"
 
 #: g10/pkclist.c:397
 msgid "Note: This key has expired!\n"
-msgstr "Note: Cette clé a expiré!\n"
+msgstr "Note : Cette clé a expiré !\n"
 
 #: g10/pkclist.c:404
 msgid "WARNING: This key is not certified with a trusted signature!\n"
 msgstr ""
-"ATTENTION: Cette clé n'est pas certifiée avec une signature de confiance!\n"
+"ATTENTION : Cette clé n'est pas certifiée avec une signature de confiance !\n"
 
 #: g10/pkclist.c:406
 msgid ""
 "         There is no indication that the signature belongs to the owner.\n"
-msgstr "         Rien ne dit que la signature appartient au propriétaire.\n"
+msgstr "         Rien ne dit que la signature appartient à son propriétaire.\n"
 
 #: g10/pkclist.c:421
 msgid "WARNING: We do NOT trust this key!\n"
-msgstr "ATTENTION: On ne fait PAS confiance à cette clé\n"
+msgstr "ATTENTION : Nous ne faisons PAS confiance à cette clé !\n"
 
 #: g10/pkclist.c:422
 msgid "         The signature is probably a FORGERY.\n"
@@ -942,24 +945,26 @@ msgstr "         La signature est certainement FAUSSE.\n"
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
 msgstr ""
-"ATTENTION: Les signatures de cette clé n'ont pas une confiance suffisante!\n"
+"ATTENTION : Les signatures de cette clé n'ont pas une confiance suffisante "
+"!\n"
 
 #: g10/pkclist.c:432
 msgid "         It is not certain that the signature belongs to the owner.\n"
 msgstr ""
-"         Il n'est pas sûr que la signature appartient au propriétaire.\n"
+"         Il n'est pas sûr que la signature appartient à son propriétaire.\n"
 
 #: g10/pkclist.c:477
 msgid ""
 "You did not specify a user ID. (you may use \"-r\")\n"
 "\n"
 msgstr ""
-"Vous n'avez pas spécifié un nom d'utilisateur. (vous pouvez utiliser "
+"Vous n'avez pas spécifié de nom d'utilisateur. (vous pouvez utiliser "
 "\"-r\")\n"
+"\n"
 
 #: g10/pkclist.c:482
 msgid "Enter the user ID: "
-msgstr "Entrez le nom d'utilisateur: "
+msgstr "Entrez le nom d'utilisateur : "
 
 #: g10/pkclist.c:493
 msgid "No such user ID.\n"
@@ -968,12 +973,12 @@ msgstr "Pas de tel utilisateur.\n"
 #: g10/pkclist.c:527 g10/pkclist.c:554
 #, c-format
 msgid "%s: skipped: %s\n"
-msgstr "%s: sauté: %s\n"
+msgstr "%s : ignoré : %s\n"
 
 #: g10/pkclist.c:535
 #, c-format
 msgid "%s: error checking key: %s\n"
-msgstr "%s: erreur pendant la vérification de la clé: %s\n"
+msgstr "%s : erreur pendant la vérification de la clé : %s\n"
 
 #: g10/pkclist.c:561
 msgid "no valid addressees\n"
@@ -987,11 +992,11 @@ msgstr "
 # g10/keygen.c:161 ???
 #: g10/keygen.c:162
 msgid "writing key binding signature\n"
-msgstr "écriture de la signature de \"key-binding\"\n"
+msgstr "écriture de la signature de liaison\n"
 
 #: g10/keygen.c:388
 msgid "Please select what kind of key you want:\n"
-msgstr "Sélectionnez le type de clé désiré:\n"
+msgstr "Sélectionnez le type de clé désiré :\n"
 
 #: g10/keygen.c:390
 #, c-format
@@ -1001,17 +1006,17 @@ msgstr "   (%d) DSA et ElGamal (d
 #: g10/keygen.c:391
 #, c-format
 msgid "   (%d) DSA (sign only)\n"
-msgstr "   (%d) DSA (signature seulement)\n"
+msgstr "   (%d) DSA (signature seule)\n"
 
 #: g10/keygen.c:393
 #, c-format
 msgid "   (%d) ElGamal (encrypt only)\n"
-msgstr "   (%d) ElGamal (cryptage seulement)\n"
+msgstr "   (%d) ElGamal (chiffrement seul)\n"
 
 #: g10/keygen.c:394
 #, c-format
 msgid "   (%d) ElGamal (sign and encrypt)\n"
-msgstr "   (%d) ElGamal (signature et cryptage)\n"
+msgstr "   (%d) ElGamal (signature et chiffrement)\n"
 
 #: g10/keygen.c:396
 #, c-format
@@ -1020,12 +1025,11 @@ msgstr "   (%d) ElGamal dans un paquet v3\n"
 
 #: g10/keygen.c:401
 msgid "Your selection? "
-msgstr "Votre choix? "
+msgstr "Votre choix ? "
 
 #: g10/keygen.c:411
-#, fuzzy
 msgid "Do you really want to create a sign and encrypt key? "
-msgstr "Voulez-vous supprimer les clés sélectionnées? "
+msgstr "Voulez-vous vraiment créer une clé de signature et de chiffrement ? "
 
 #: g10/keygen.c:432
 msgid "Invalid selection.\n"
@@ -1046,7 +1050,7 @@ msgstr ""
 
 #: g10/keygen.c:451
 msgid "What keysize do you want? (1024) "
-msgstr "Quelle taille de clé désirez-vous? (1024) "
+msgstr "Quelle taille de clé désirez-vous ? (1024) "
 
 #: g10/keygen.c:456
 msgid "DSA only allows keysizes from 512 to 1024\n"
@@ -1054,7 +1058,7 @@ msgstr "DSA permet seulement des tailles comprises entre 512 et 1024\n"
 
 #: g10/keygen.c:458
 msgid "keysize too small; 768 is smallest value allowed.\n"
-msgstr "taille trop petite; 768 est la plus petite valeur permise.\n"
+msgstr "taille trop petite ; 768 est la plus petite valeur permise.\n"
 
 #: g10/keygen.c:461
 msgid ""
@@ -1066,7 +1070,7 @@ msgstr ""
 
 #: g10/keygen.c:464
 msgid "Are you sure that you want this keysize? "
-msgstr "Etes-vous sûr que vous voulez cette taille? "
+msgstr "Etes-vous sûr de vouloir cette taille ? "
 
 #: g10/keygen.c:465
 msgid ""
@@ -1078,7 +1082,7 @@ msgstr ""
 
 #: g10/keygen.c:473
 msgid "Do you really need such a large keysize? "
-msgstr "Avez-vous réellement besoin d'une taille aussi grande? "
+msgstr "Avez-vous réellement besoin d'une taille aussi grande ? "
 
 #: g10/keygen.c:479
 #, c-format
@@ -1108,7 +1112,7 @@ msgstr ""
 
 #: g10/keygen.c:514
 msgid "Key is valid for? (0) "
-msgstr "La clé est valide pour? (0) "
+msgstr "La clé est valide pour ? (0) "
 
 #: g10/keygen.c:525
 msgid "invalid value\n"
@@ -1126,7 +1130,7 @@ msgstr "La cl
 
 #: g10/keygen.c:542
 msgid "Is this correct (y/n)? "
-msgstr "Est-ce correct (o/n)? "
+msgstr "Est-ce correct (o/n) ? "
 
 #: g10/keygen.c:584
 msgid ""
@@ -1138,15 +1142,15 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"Vous avez besoin d'un nom d'utilisateur pour identifier votre clé; le "
+"Vous avez besoin d'un nom d'utilisateur pour identifier votre clé ; le\n"
 "programme le construit à partir du nom réel, d'un commentaire et d'une\n"
 "adresse e-mail de cette manière:\n"
-"   \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de\"\n"
+"   « Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de> »\n"
 "\n"
 
 #: g10/keygen.c:595
 msgid "Real name: "
-msgstr "Nom: "
+msgstr "Nom réel : "
 
 #: g10/keygen.c:599
 msgid "Invalid character in name\n"
@@ -1156,13 +1160,14 @@ msgstr "Caract
 msgid "Name may not start with a digit\n"
 msgstr "Le nom ne doit pas commencer avec un chiffre\n"
 
+# ??? c'est de la discrimination...
 #: g10/keygen.c:603
 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:611
 msgid "Email address: "
-msgstr "Adresse e-mail: "
+msgstr "Adresse e-mail : "
 
 #: g10/keygen.c:623
 msgid "Not a valid email address\n"
@@ -1170,7 +1175,7 @@ msgstr "Ce n'est pas une adresse e-mail valide\n"
 
 #: g10/keygen.c:631
 msgid "Comment: "
-msgstr "Commentaire: "
+msgstr "Commentaire : "
 
 #: g10/keygen.c:637
 msgid "Invalid character in comment\n"
@@ -1183,7 +1188,7 @@ msgid ""
 "    \"%s\"\n"
 "\n"
 msgstr ""
-"Vous avez sélectionné ce nom d'utilisateur:\n"
+"Vous avez sélectionné ce nom d'utilisateur :\n"
 "    \"%s\"\n"
 "\n"
 
@@ -1205,7 +1210,7 @@ msgstr ""
 
 #: g10/keyedit.c:389 g10/keygen.c:730
 msgid "passphrase not correctly repeated; try again.\n"
-msgstr "le mot de passe n'a pas été correctement répété; recommencez.\n"
+msgstr "le mot de passe n'a pas été identiquement répété ; recommencez.\n"
 
 #: g10/keygen.c:736
 msgid ""
@@ -1214,9 +1219,9 @@ msgid ""
 "using this program with the option \"--edit-key\".\n"
 "\n"
 msgstr ""
-"Vous ne voulez pas de mot de passe - c'est sûrement une *mauvaise* idée!\n"
+"Vous ne voulez pas de mot de passe - c'est sûrement une *mauvaise* idée !\n"
 "Je l'accepte quand-même. Vous pouvez changer votre mot de passe quand vous\n"
-"le désirez, en utilisant ce programme avec l'option \"--edit-key\".\n"
+"le désirez, en utilisant ce programme avec l'option « --edit-key ».\n"
 "\n"
 
 #: g10/keygen.c:757
@@ -1227,10 +1232,10 @@ msgid ""
 "number generator a better chance to gain enough entropy.\n"
 msgstr ""
 "Beaucoup d'octets aléatoires doivent être générés. Vous devriez\n"
-"faire autre chose (travailler dans une autre fenêtre, bouger la souris,\n"
-"utiliser le réseau et les disques) pendant la génération de nombres\n"
-"premiers; cela permet au générateur de nombres aléatoires de gagner assez\n"
-"d'entropie plus facilement.\n"
+"faire quelque-chose d'autre (travailler dans une autre fenêtre, bouger la\n"
+"souris, utiliser le réseau et les disques) pendant la génération de nombres\n"
+"premiers ; cela permet au générateur de nombres aléatoires d'obtenir une\n"
+"entropie suffisante plus facilement.\n"
 
 #: g10/keygen.c:827
 msgid "Key generation can only be used in interactive mode\n"
@@ -1263,34 +1268,34 @@ 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 ""
-"Notez que cette clé ne peut être utilisée pour crypter. Vous pouvez "
-"utiliser\n"
-"la commande \"--add-key\" pour générer une clé secondaire à cette fin.\n"
+"Notez que cette clé ne peut être utilisée pour chiffrer. Vous pouvez\n"
+"utiliser la commande « --add-key » pour générer une clé secondaire à\n"
+"cette fin.\n"
 
 #: g10/keygen.c:945 g10/keygen.c:1030
 #, c-format
 msgid "Key generation failed: %s\n"
-msgstr "La génération de clé a échoué: %s\n"
+msgstr "La génération de clé a échoué : %s\n"
 
 #: g10/keygen.c:1008
 msgid "Really create? "
-msgstr "Créer vraiment? "
+msgstr "Créer vraiment ? "
 
 #: g10/encode.c:88 g10/openfile.c:81 g10/openfile.c:158 g10/tdbio.c:445
 #: g10/tdbio.c:504
 #, c-format
 msgid "%s: can't open: %s\n"
-msgstr "%s: ne peut ouvrir: %s\n"
+msgstr "%s : ne peut ouvrir : %s\n"
 
 #: g10/encode.c:107
 #, c-format
 msgid "error creating passphrase: %s\n"
-msgstr "erreur pendant la création du mot de passe: %s\n"
+msgstr "erreur pendant la création du mot de passe : %s\n"
 
 #: g10/encode.c:155 g10/encode.c:269
-#, fuzzy, c-format
+#, c-format
 msgid "%s: WARNING: empty file\n"
-msgstr "%s: attention: fichier vide\n"
+msgstr "%s : ATTENTION : fichier vide\n"
 
 #: g10/encode.c:222
 #, c-format
@@ -1298,37 +1303,36 @@ msgid "reading from '%s'\n"
 msgstr "lecture de '%s'\n"
 
 #: g10/encode.c:397
-#, fuzzy, c-format
+#, c-format
 msgid "%s/%s encrypted for: %s\n"
-msgstr "%s crypté pour: %s\n"
+msgstr "%s/%s chiffré pour : %s\n"
 
 #: g10/export.c:114
-#, fuzzy, c-format
+#, c-format
 msgid "%s: user not found: %s\n"
-msgstr "%s: utilisateur non trouvé\n"
+msgstr "%s : utilisateur non trouvé : %s\n"
 
 #: g10/export.c:123
 #, c-format
 msgid "certificate read problem: %s\n"
-msgstr ""
+msgstr "problème lors de lecture du certificat : %s\n"
 
 #: g10/export.c:132
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX: not a rfc2440 key - skipped\n"
-msgstr "clé %08lX: clé secrète sans clé publique - non prise en compte\n"
+msgstr "clé %08lX : ce n'est pas une clé rfc2440 - ignorée\n"
 
 #: g10/export.c:174
-#, fuzzy
 msgid "WARNING: nothing exported\n"
-msgstr "ATTENTION: Utilisation d'une clé sans confiance!\n"
+msgstr "ATTENTION : rien n'a été exporté\n"
 
 #: g10/getkey.c:164
 msgid "too many entries in pk cache - disabled\n"
-msgstr ""
+msgstr "trop d'entrées dans le cache pk - désactivé\n"
 
 #: g10/getkey.c:263
 msgid "too many entries in unk cache - disabled\n"
-msgstr ""
+msgstr "trop d'entrées dans le cache unk - désactivé\n"
 
 #: g10/getkey.c:989
 #, c-format
@@ -1340,12 +1344,12 @@ msgstr ""
 #: g10/import.c:129 g10/trustdb.c:1166
 #, c-format
 msgid "can't open file: %s\n"
-msgstr "ne peut ouvrir le fichier: %s\n"
+msgstr "ne peut ouvrir le fichier : %s\n"
 
 #: g10/import.c:145
 #, c-format
 msgid "skipping block of type %d\n"
-msgstr "ne prend pas en compte le bloc du type %d\n"
+msgstr "ne prend pas en compte le bloc de type %d\n"
 
 #: g10/import.c:152 g10/trustdb.c:1425 g10/trustdb.c:1494
 #, c-format
@@ -1355,72 +1359,72 @@ msgstr "%lu cl
 #: g10/import.c:157 g10/trustdb.c:1242
 #, c-format
 msgid "read error: %s\n"
-msgstr "erreur de lecture: %s\n"
+msgstr "erreur de lecture : %s\n"
 
 #: g10/import.c:159
 #, c-format
 msgid "Total number processed: %lu\n"
-msgstr "       Quantité totale traitée: %lu\n"
+msgstr "       Quantité totale traitée : %lu\n"
 
 #: g10/import.c:161
 #, c-format
 msgid "          w/o user IDs: %lu\n"
-msgstr "        sans nom d'utilisateur: %lu\n"
+msgstr "        sans nom d'utilisateur : %lu\n"
 
 #: g10/import.c:163
 #, c-format
 msgid "              imported: %lu"
-msgstr "                       importé: %lu"
+msgstr "                      importée : %lu"
 
 #: g10/import.c:169
 #, c-format
 msgid "             unchanged: %lu\n"
-msgstr "                      inchangé: %lu\n"
+msgstr "                     inchangée : %lu\n"
 
 #: g10/import.c:171
 #, c-format
 msgid "          new user IDs: %lu\n"
-msgstr "   nouveaux noms d'utilisateur: %lu\n"
+msgstr "  nouveaux noms d'utilisateurs : %lu\n"
 
 #: g10/import.c:173
 #, c-format
 msgid "           new subkeys: %lu\n"
-msgstr "           nouvelles sous-clés: %lu\n"
+msgstr "           nouvelles sous-clés : %lu\n"
 
 #: g10/import.c:175
 #, c-format
 msgid "        new signatures: %lu\n"
-msgstr "          nouvelles signatures: %lu\n"
+msgstr "          nouvelles signatures : %lu\n"
 
 #: g10/import.c:177
 #, c-format
 msgid "   new key revocations: %lu\n"
-msgstr " nouvelles révocations de clés: %lu\n"
+msgstr " nouvelles révocations de clés : %lu\n"
 
 #: g10/import.c:179
 #, c-format
 msgid "      secret keys read: %lu\n"
-msgstr "            clés secrètes lues: %lu\n"
+msgstr "            clés secrètes lues : %lu\n"
 
 #: g10/import.c:181
 #, c-format
 msgid "  secret keys imported: %lu\n"
-msgstr "       clés secrètes importées: %lu\n"
+msgstr "       clés secrètes importées : %lu\n"
 
 #: g10/import.c:183
 #, c-format
 msgid " secret keys unchanged: %lu\n"
-msgstr "      clés secrètes inchangées: %lu\n"
+msgstr "      clés secrètes inchangées : %lu\n"
 
 #: g10/import.c:325 g10/import.c:517
 #, c-format
 msgid "key %08lX: no user id\n"
-msgstr "clé %08lX: pas de nom d'utilisateur\n"
+msgstr "clé %08lX : pas de nom d'utilisateur\n"
 
 #: g10/import.c:336
 #, c-format
 msgid "key %08lX: no valid user ids\n"
-msgstr "clé %08lX: pas de nom d'utilisateur valide\n"
+msgstr "clé %08lX : pas de nom d'utilisateur valide\n"
 
 #: g10/import.c:338
 msgid "this may be caused by a missing self-signature\n"
@@ -1429,7 +1433,7 @@ msgstr "cela peut provenir d'une auto-signature manquante\n"
 #: g10/import.c:349 g10/import.c:585
 #, c-format
 msgid "key %08lX: public key not found: %s\n"
-msgstr "clé %08lX: clé publique pas trouvée: %s\n"
+msgstr "clé %08lX : clé publique pas trouvée: %s\n"
 
 #: g10/import.c:355
 msgid "no default public keyring\n"
@@ -1443,32 +1447,32 @@ msgstr "
 #: g10/import.c:363 g10/import.c:423 g10/import.c:639
 #, c-format
 msgid "can't lock public keyring: %s\n"
-msgstr "ne peut verrouiller le porte-clés public: %s\n"
+msgstr "ne peut verrouiller le porte-clés public : %s\n"
 
 #: g10/import.c:366
 #, c-format
 msgid "can't write to keyring: %s\n"
-msgstr "ne peut écrire sur le porte-clés: %s\n"
+msgstr "ne peut écrire le porte-clés : %s\n"
 
 #: g10/import.c:370
 #, c-format
 msgid "key %08lX: public key imported\n"
-msgstr "clé %08lX: clé publique importée\n"
+msgstr "clé %08lX : clé publique importée\n"
 
 #: g10/import.c:383
 #, c-format
 msgid "key %08lX: doesn't match our copy\n"
-msgstr "clé %08lX: ne vérifie pas notre copie\n"
+msgstr "clé %08lX : ne ressemble pas à notre copie\n"
 
 #: g10/import.c:396 g10/import.c:594
 #, 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"
+msgstr "clé %08lX : ne peut trouver le bloc de clés original : %s\n"
 
 #: g10/import.c:403 g10/import.c:601
 #, 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"
+msgstr "clé %08lX : ne peut lire le bloc de clés original : %s\n"
 
 #: g10/import.c:420 g10/import.c:532 g10/import.c:636
 msgid "writing keyblock\n"
@@ -1477,134 +1481,131 @@ msgstr "
 #: g10/import.c:426 g10/import.c:642
 #, c-format
 msgid "can't write keyblock: %s\n"
-msgstr "ne peut écrire le bloc de clés: %s\n"
+msgstr "ne peut écrire le bloc de clés : %s\n"
 
 #: g10/import.c:431
 #, c-format
 msgid "key %08lX: 1 new user-id\n"
-msgstr "clé %08lX: un nouvel utilisateur\n"
+msgstr "clé %08lX : un nouvel utilisateur\n"
 
 #: g10/import.c:434
 #, c-format
 msgid "key %08lX: %d new user-ids\n"
-msgstr "clé %08lX: %d nouveaux utilisateurs\n"
+msgstr "clé %08lX : %d nouveaux utilisateurs\n"
 
 #: g10/import.c:437
 #, c-format
 msgid "key %08lX: 1 new signature\n"
-msgstr "clé %08lX: une nouvelle signature\n"
+msgstr "clé %08lX : une nouvelle signature\n"
 
 #: g10/import.c:440
 #, c-format
 msgid "key %08lX: %d new signatures\n"
-msgstr "clé %08lX: %d nouvelles signatures\n"
+msgstr "clé %08lX : %d nouvelles signatures\n"
 
 #: g10/import.c:443
 #, c-format
 msgid "key %08lX: 1 new subkey\n"
-msgstr "clé %08lX: une nouvelle sous-clé\n"
+msgstr "clé %08lX : une nouvelle sous-clé\n"
 
 #: g10/import.c:446
 #, c-format
 msgid "key %08lX: %d new subkeys\n"
-msgstr "clé %08lX: %d nouvelles sous-clés\n"
+msgstr "clé %08lX : %d nouvelles sous-clés\n"
 
 #: g10/import.c:456
 #, c-format
 msgid "key %08lX: not changed\n"
-msgstr "clé %08lX: n'a pas changé\n"
+msgstr "clé %08lX : n'a pas changé\n"
 
 #: g10/import.c:535
 #, c-format
 msgid "can't lock secret keyring: %s\n"
-msgstr "ne peut verrouiller le porte-clés secret: %s\n"
+msgstr "ne peut verrouiller le porte-clés secret : %s\n"
 
 #: g10/import.c:538
 #, c-format
 msgid "can't write keyring: %s\n"
-msgstr "ne peut écrire le porte-clés: %s\n"
+msgstr "ne peut écrire le porte-clés : %s\n"
 
 #. we are ready
 #: g10/import.c:541
 #, c-format
 msgid "key %08lX: secret key imported\n"
-msgstr "clé %08lX: clé secrète importée\n"
+msgstr "clé %08lX : clé secrète importée\n"
 
 #. we can't merge secret keys
 #: g10/import.c:545
 #, c-format
 msgid "key %08lX: already in secret keyring\n"
-msgstr "clé %08lX: déjà dans le porte-clés secret\n"
+msgstr "clé %08lX : déjà dans le porte-clés secret\n"
 
 #: g10/import.c:550
 #, c-format
 msgid "key %08lX: secret key not found: %s\n"
-msgstr "clé %08lX: clé secrète pas trouvée: %s\n"
+msgstr "clé %08lX : clé secrète pas trouvée: %s\n"
 
 #: g10/import.c:579
 #, 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"
+"clé %08lX : pas de clé publique - ne peut appliquer le certificat de\n"
 "révocation\n"
 
 #: g10/import.c:612
 #, c-format
 msgid "key %08lX: invalid revocation certificate: %s - rejected\n"
-msgstr "clé %08lX: certificat de révocation invalide: %s - rejeté\n"
+msgstr "clé %08lX : certificat de révocation invalide : %s - rejeté\n"
 
 #: g10/import.c:646
 #, c-format
 msgid "key %08lX: revocation certificate imported\n"
-msgstr "clé %08lX: certificat de révocation importé\n"
+msgstr "clé %08lX : certificat de révocation importé\n"
 
 #: g10/import.c:677
 #, c-format
 msgid "key %08lX: no user-id for signature\n"
-msgstr "clé %08lX: pas d'utilisateur pour la signature\n"
+msgstr "clé %08lX : pas d'utilisateur pour la signature\n"
 
 #: g10/import.c:684
 #, c-format
 msgid "key %08lX: unsupported public key algorithm\n"
-msgstr "clé %08lX: algorithme de clé publique non supporté\n"
+msgstr "clé %08lX : algorithme de clé publique non supporté\n"
 
 #: g10/import.c:685
 #, c-format
 msgid "key %08lX: invalid self-signature\n"
-msgstr "clé %08lX: auto-signature invalide\n"
+msgstr "clé %08lX : auto-signature invalide\n"
 
 #: g10/import.c:714
 #, c-format
 msgid "key %08lX: skipped userid '"
-msgstr "clé %08lX: utilisateur non pris en compte '"
+msgstr "clé %08lX : utilisateur non pris en compte '"
 
 #: g10/import.c:737
 #, 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"
+msgstr "clé %08lX : certificat de révocation au mauvais endroit - ignorée\n"
 
 #: g10/import.c:745
 #, 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"
+msgstr "clé %08lX : certificat de révocation invalide : %s - ignorée\n"
 
 #: g10/import.c:804
 #, c-format
 msgid "key %08lX: revocation certificate added\n"
-msgstr "clé %08lX: certificat de révocation ajouté\n"
+msgstr "clé %08lX : certificat de révocation ajouté\n"
 
 #: g10/import.c:918 g10/import.c:973
 #, c-format
 msgid "key %08lX: our copy has no self-signature\n"
-msgstr "clé %08lX: notre copie n'a pas d'auto-signature\n"
+msgstr "clé %08lX : notre copie n'a pas d'auto-signature\n"
 
 #: g10/keyedit.c:81
 #, c-format
 msgid "%s: user not found\n"
-msgstr "%s: utilisateur non trouvé\n"
+msgstr "%s : utilisateur non trouvé\n"
 
 #: g10/keyedit.c:164
 msgid "[self-signature]"
@@ -1662,16 +1663,16 @@ msgid ""
 "with your key: \""
 msgstr ""
 "Etes-vous vraiment sûr(e) que vous voulez signer cette clé\n"
-"avec votre clé: \""
+"avec la vôtre : \""
 
 #: g10/keyedit.c:282
 msgid "Really sign? "
-msgstr "Signer réellement? "
+msgstr "Signer réellement ? "
 
 #: g10/keyedit.c:303 g10/sign.c:65
 #, c-format
 msgid "signing failed: %s\n"
-msgstr "la signature a échoué: %s\n"
+msgstr "la signature a échoué : %s\n"
 
 #: g10/keyedit.c:356
 msgid "This key is not protected.\n"
@@ -1684,7 +1685,7 @@ msgstr "La cl
 #: g10/keyedit.c:376
 #, c-format
 msgid "Can't edit this key: %s\n"
-msgstr "Ne peut éditer cette clé: %s\n"
+msgstr "Ne peut éditer cette clé : %s\n"
 
 #: g10/keyedit.c:381
 msgid ""
@@ -1697,8 +1698,9 @@ msgid ""
 "You don't want a passphrase - this is probably a *bad* idea!\n"
 "\n"
 msgstr ""
-"Vous ne voulez pas de mot de passe - cela est certainement une *mauvaise* "
-"idée\n"
+"Vous ne voulez pas de mot de passe - cela est certainement une\n"
+"*mauvaise* idée\n"
+"\n"
 
 #: g10/keyedit.c:396
 msgid "Do you really want to do this? "
@@ -1706,7 +1708,7 @@ msgstr "Voulez-vous vraiment faire cela? "
 
 #: g10/keyedit.c:455
 msgid "moving a key signature to the correct place\n"
-msgstr ""
+msgstr "replacer la signature d'une clé à l'endroit correct\n"
 
 #: g10/keyedit.c:490
 msgid "quit"
@@ -1728,13 +1730,14 @@ msgstr "enregistrer"
 msgid "save and quit"
 msgstr "enregistrer et quitter"
 
+# FIXMOI : si je mets aide ça va demander de taper "aide"...
 #: g10/keyedit.c:493
 msgid "help"
-msgstr "aide"
+msgstr "help"
 
 #: g10/keyedit.c:493
 msgid "show this help"
-msgstr "montrer cette aide"
+msgstr "afficher cette aide"
 
 # g10/keyedit.c:556 ???
 #: g10/keyedit.c:495
@@ -1743,7 +1746,7 @@ msgstr "fpr"
 
 #: g10/keyedit.c:495
 msgid "show fingerprint"
-msgstr "montrer l'empreinte"
+msgstr "afficher l'empreinte"
 
 #: g10/keyedit.c:496
 msgid "list"
@@ -1906,12 +1909,12 @@ msgstr "Quitter sans enregistrer? "
 #: g10/keyedit.c:652
 #, c-format
 msgid "update failed: %s\n"
-msgstr "la mise à jour a échoué: %s\n"
+msgstr "la mise à jour a échoué : %s\n"
 
 #: g10/keyedit.c:659
 #, c-format
 msgid "update secret failed: %s\n"
-msgstr "la mise à jour de la clé secrète a échoué: %s\n"
+msgstr "la mise à jour de la clé secrète a échoué : %s\n"
 
 #: g10/keyedit.c:666
 msgid "Key not changed so no update needed.\n"
@@ -1920,15 +1923,15 @@ msgstr "La cl
 #: g10/keyedit.c:669 g10/keyedit.c:727
 #, c-format
 msgid "update of trust db failed: %s\n"
-msgstr "la mise à jour de la base de confiance a échoué: %s\n"
+msgstr "la mise à jour de la base de confiance a échoué : %s\n"
 
 #: g10/keyedit.c:701
 msgid "Really sign all user ids? "
-msgstr "Signer vraiment tous les utilisateurs? "
+msgstr "Signer vraiment tous les utilisateurs ? "
 
 #: g10/keyedit.c:702
 msgid "Hint: Select the user ids to sign\n"
-msgstr "Aide: Sélectionner les utilisateurs à signer\n"
+msgstr "Aide : Sélectionner les utilisateurs à signer\n"
 
 #: g10/keyedit.c:738
 msgid "You must select at least one user id.\n"
@@ -1936,15 +1939,15 @@ msgstr "Vous devez s
 
 #: g10/keyedit.c:740
 msgid "You can't delete the last user id!\n"
-msgstr "Vous ne pouvez pas supprimer le dernier utilisateur!\n"
+msgstr "Vous ne pouvez pas supprimer le dernier utilisateur !\n"
 
 #: g10/keyedit.c:743
 msgid "Really remove all selected user ids? "
-msgstr "Enlever réellement tous les utilisateurs sélectionnés? "
+msgstr "Enlever réellement tous les utilisateurs sélectionnés ? "
 
 #: g10/keyedit.c:744
 msgid "Really remove this user id? "
-msgstr "Enlever réellement cet utilisateur? "
+msgstr "Enlever réellement cet utilisateur ? "
 
 #: g10/keyedit.c:767
 msgid "You must select at least one key.\n"
@@ -1952,15 +1955,15 @@ msgstr "Vous devez s
 
 #: g10/keyedit.c:771
 msgid "Do you really want to delete the selected keys? "
-msgstr "Voulez-vous supprimer les clés sélectionnées? "
+msgstr "Voulez-vous vraiment supprimer les clés sélectionnées ? "
 
 #: g10/keyedit.c:772
 msgid "Do you really want to delete this key? "
-msgstr "Voulez-vous vraiment supprimer cette clé? "
+msgstr "Voulez-vous vraiment supprimer cette clé ? "
 
 #: g10/keyedit.c:819
 msgid "Invalid command  (try \"help\")\n"
-msgstr "Commande invalide  (essayez \"help\")\n"
+msgstr "Commande invalide  (essayez « help »)\n"
 
 #: g10/keyedit.c:1197
 msgid "Please remove selections from the secret keys.\n"
@@ -1976,11 +1979,11 @@ msgstr "Changer la date d'expiration d'une cl
 
 #: g10/keyedit.c:1209
 msgid "Changing exiration time for the primary key.\n"
-msgstr "Changer la date d'expiration de la clé primaire.\n"
+msgstr "Changer la date d'expiration de la clé principale.\n"
 
 #: g10/keyedit.c:1250
 msgid "You can't change the expiration date of a v3 key\n"
-msgstr ""
+msgstr "Vous ne pouvez pas changer la date d'expiration d'une clé v3\n"
 
 #: g10/keyedit.c:1266
 msgid "No corresponding signature in secret ring\n"
@@ -1997,43 +2000,40 @@ msgid "No secondary key with index %d\n"
 msgstr "Pas de clé secondaire avec l'index %d\n"
 
 #: g10/mainproc.c:198
-#, fuzzy
 msgid "public key encrypted data: Good DEK\n"
-msgstr "le décryptage de la clé publique a échoué: %s\n"
+msgstr "données chiffrées avec la clé publique : bonne clé de chiffrement\n"
 
 #: g10/mainproc.c:201
 #, c-format
 msgid "public key decryption failed: %s\n"
-msgstr "le décryptage de la clé publique a échoué: %s\n"
+msgstr "le déchiffrement de la clé publique a échoué : %s\n"
 
 #: g10/mainproc.c:228
-#, fuzzy
 msgid "decryption okay\n"
-msgstr "le décryptage a échoué: %s\n"
+msgstr "le déchiffrement a réussi\n"
 
 #: g10/mainproc.c:231
 #, c-format
 msgid "decryption failed: %s\n"
-msgstr "le décryptage a échoué: %s\n"
+msgstr "le déchiffrement a échoué : %s\n"
 
 #: g10/mainproc.c:248
-#, fuzzy
 msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
-msgstr "note: l'expéditeur a demandé \"pour vos yeux seulement\"\n"
+msgstr "NOTE : l'expéditeur a demandé « pour vos yeux seulement »\n"
 
 #: g10/mainproc.c:250
 #, c-format
 msgid "original file name='%.*s'\n"
-msgstr ""
+msgstr "nom de fichier original : '%.*s'\n"
 
 #: g10/mainproc.c:833
 msgid "signature verification suppressed\n"
-msgstr ""
+msgstr "vérification de signature supprimée\n"
 
 #: g10/mainproc.c:839
 #, c-format
 msgid "Signature made %.*s using %s key ID %08lX\n"
-msgstr "Signature faite %.*s avec %s clé ID %08lX\n"
+msgstr "Signature faite %.*s avec une clé %s ID %08lX\n"
 
 #: g10/mainproc.c:847
 msgid "BAD signature from \""
@@ -2046,45 +2046,52 @@ msgstr "Bonne signature de \""
 #: g10/mainproc.c:861
 #, c-format
 msgid "Can't check signature: %s\n"
-msgstr "Ne peut vérifier la signature: %s\n"
+msgstr "Ne peut vérifier la signature : %s\n"
 
 #: g10/mainproc.c:934
 msgid "old style (PGP 2.x) signature\n"
-msgstr ""
+msgstr "signature d'un ancien style (PGP 2.x)\n"
 
 #: g10/mainproc.c:939
 msgid "invalid root packet detected in proc_tree()\n"
-msgstr ""
+msgstr "paquet racine invalide détecté dans proc_tree()\n"
 
 #: g10/misc.c:88
-#, fuzzy, c-format
+#, c-format
 msgid "can't disable core dumps: %s\n"
-msgstr "ne peut ouvrir %s: %s\n"
+msgstr "ne peut empêcher la génération de fichiers core : %s\n"
 
 #: g10/misc.c:90
 msgid "WARNING: Program may create a core file!\n"
-msgstr ""
+msgstr "ATTENTION : Le programme peut créer un fichier core !\n"
 
 #: g10/misc.c:198
 msgid "Experimental algorithms should not be used!\n"
-msgstr ""
+msgstr "Les algorithmes expérimentaux ne devraient pas être utilisés !\n"
 
 #: g10/misc.c:212
 msgid ""
 "RSA keys are deprecated; please consider creating a new key and use this key "
 "in the future\n"
 msgstr ""
-"Les clés RSA sont déconseillées: considérez créer une nouvelle clé et "
-"l'utiliser dans l'avenir\n"
+"Les clés RSA sont déconseillées : considérez créer une nouvelle clé\n"
+"et l'utiliser dans l'avenir\n"
 
 #: g10/misc.c:233
 msgid "This cipher algorithm is depreciated; please use a more standard one!\n"
 msgstr ""
+"Cet algorithme de chiffrement est déconseillé ; utilisez-en un\n"
+"plus standard!\n"
 
 #: g10/parse-packet.c:109
-#, fuzzy, c-format
+#, c-format
 msgid "can't handle public key algorithm %d\n"
-msgstr "ne peut verrouiller le porte-clés public: %s\n"
+msgstr "ne peut gérer l'algorithme à clé publique %d\n"
+
+#: g10/parse-packet.c:801
+#, c-format
+msgid "subpacket of type %d has critical bit set\n"
+msgstr "un sous-paquet de type %d possède un bit critique\n"
 
 #: g10/passphrase.c:141
 msgid ""
@@ -2102,28 +2109,26 @@ msgid "(%u-bit %s key, ID %08lX, created %s)\n"
 msgstr "(clé de %u bits %s, ID %08lX, créée le %s)\n"
 
 #: g10/passphrase.c:174
-#, fuzzy
 msgid "Enter passphrase: "
-msgstr "Entrez le mot de passe: "
+msgstr "Entrez le mot de passe : "
 
 #: g10/passphrase.c:178
-#, fuzzy
 msgid "Repeat passphrase: "
-msgstr "Répétez le mot de passe: "
+msgstr "Répétez le mot de passe : "
 
 #: 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"
+"données non enregistrées ; utilisez l'option \"--output\" pour\n"
 "les enregistrer\n"
 
 #: g10/plaintext.c:215
 msgid "Please enter name of data file: "
-msgstr "Entrez le nom d'un fichier de données: "
+msgstr "Entrez le nom d'un fichier de données : "
 
 #: g10/plaintext.c:236
 msgid "reading stdin ...\n"
-msgstr ""
+msgstr "lecture de l'entrée standard...\n"
 
 #: g10/plaintext.c:299
 #, c-format
@@ -2133,22 +2138,22 @@ msgstr "ne peut ouvir les donn
 #: g10/pubkey-enc.c:78
 #, c-format
 msgid "anonymous receiver; trying secret key %08lX ...\n"
-msgstr "destinataire anonyme; essai de la clé secrète %08lX ...\n"
+msgstr "destinataire anonyme ; essai de la clé secrète %08lX ...\n"
 
 #: g10/pubkey-enc.c:84
 msgid "okay, we are the anonymous receiver.\n"
 msgstr "d'accord, nous sommes le destinataire anonyme.\n"
 
 #: g10/pubkey-enc.c:136
-#, fuzzy
 msgid "old encoding of the DEK is not supported\n"
-msgstr "l'algorithme de protection %d n'est pas supporté\n"
+msgstr "l'ancien codage de la clé de chiffrement (DEK) n'est pas supporté\n"
 
 #: g10/pubkey-enc.c:183
-#, fuzzy, c-format
+#, c-format
 msgid "NOTE: cipher algorithm %d not found in preferences\n"
 msgstr ""
-"note: l'algorithme de cryptage %d n'a pas été trouvé dans les préférences\n"
+"NOTE : l'algorithme de chiffrement %d n'a pas été trouvé dans les "
+"préférences\n"
 
 #: g10/seckey-cert.c:56
 #, c-format
@@ -2157,18 +2162,17 @@ msgstr "l'algorithme de protection %d n'est pas support
 
 #: g10/seckey-cert.c:169
 msgid "Invalid passphrase; please try again ...\n"
-msgstr "Mot de passe invalide; réessayez...\n"
+msgstr "Mot de passe invalide ; réessayez...\n"
 
 #: g10/seckey-cert.c:216
-#, fuzzy
 msgid "WARNING: Weak key detected - please change passphrase again.\n"
-msgstr "Attention: Mauvaise clé détectée - changez encore le mot de passe.\n"
+msgstr "ATTENTION : Mauvaise clé détectée - changez encore le mot de passe.\n"
 
 #: g10/sig-check.c:155
 msgid ""
 "this is a PGP generated ElGamal key which is NOT secure for signatures!\n"
 msgstr ""
-"Cela est une clé ElGamal générée par PGP qui n'est PAS sûre pour les\n"
+"Ceci est une clé ElGamal générée par PGP qui n'est PAS sûre pour les\n"
 "signatures!\n"
 
 #: g10/sig-check.c:165
@@ -2178,199 +2182,213 @@ msgstr ""
 "d'horloge)\n"
 
 #: g10/sig-check.c:170
-#, fuzzy, c-format
+#, c-format
 msgid "NOTE: signature key expired %s\n"
-msgstr "attention: la clé de signature a expiré le %s\n"
+msgstr "NOTE : la clé de signature a expiré le %s\n"
+
+#: g10/sig-check.c:226
+msgid "assuming bad signature due to an unknown critical bit\n"
+msgstr ""
+"la signature est supposée être fausse car un bit critique est\n"
+"inconnu\n"
 
 #: g10/sign.c:69
-#, fuzzy, c-format
+#, c-format
 msgid "%s signature from: %s\n"
-msgstr "MAUVAISE signature de \""
+msgstr "Signature %s de : %s\n"
 
 #: g10/sign.c:200 g10/sign.c:564
-#, fuzzy, c-format
+#, c-format
 msgid "can't create %s: %s\n"
-msgstr "%s: ne peut créer: %s\n"
+msgstr "ne peut créer %s : %s\n"
 
 #: g10/sign.c:296
-#, fuzzy
 msgid "signing:"
-msgstr "signer"
+msgstr "signature :"
 
 #: g10/sign.c:336
-#, fuzzy, c-format
+#, c-format
 msgid "WARNING: '%s' is an empty file\n"
-msgstr "%s: attention: fichier vide\n"
+msgstr "ATTENTION : '%s' est un fichier vide\n"
 
 #: g10/tdbio.c:116 g10/tdbio.c:1413
-#, fuzzy, c-format
+#, c-format
 msgid "trustdb rec %lu: lseek failed: %s\n"
-msgstr "la mise à jour de la clé secrète a échoué: %s\n"
+msgstr "enregistrement de base de confiance %lu : lseek a échoué : %s\n"
 
 #: g10/tdbio.c:122 g10/tdbio.c:1420
 #, c-format
 msgid "trustdb rec %lu: write failed (n=%d): %s\n"
 msgstr ""
+"enregistrement de la base de confiance %lu : l'écriture a échoué (n=%d) : "
+"%s\n"
 
 #: g10/tdbio.c:232
 msgid "trustdb transaction to large\n"
-msgstr ""
+msgstr "transaction de base de confiance trop volumineuse\n"
 
 #: g10/tdbio.c:402
-#, fuzzy, c-format
+#, c-format
 msgid "%s: can't access: %s\n"
-msgstr "%s: ne peut créer: %s\n"
+msgstr "%s : ne peut accéder : %s\n"
 
 #: g10/ringedit.c:273 g10/tdbio.c:422
-#, fuzzy, c-format
+#, c-format
 msgid "%s: can't create directory: %s\n"
-msgstr "%s: ne peut créer: %s\n"
+msgstr "%s : ne peut créer le répertoire : %s\n"
 
 #: g10/ringedit.c:279 g10/tdbio.c:425
-#, fuzzy, c-format
+#, c-format
 msgid "%s: directory created\n"
-msgstr "%s: ne peut créer: %s\n"
+msgstr "%s : répertoire créé\n"
 
 #: g10/tdbio.c:429
 #, c-format
 msgid "%s: directory does not exist!\n"
-msgstr ""
+msgstr "%s : le répertoire n'existe pas !\n"
 
 #: g10/openfile.c:101 g10/openfile.c:165 g10/ringedit.c:1256 g10/tdbio.c:435
 #, c-format
 msgid "%s: can't create: %s\n"
-msgstr "%s: ne peut créer: %s\n"
+msgstr "%s : ne peut créer : %s\n"
 
 #: g10/tdbio.c:459
 #, c-format
 msgid "%s: failed to create version record: %s"
-msgstr ""
+msgstr "%s : n'a pas pu créer un enregistrement de version : %s"
 
 #: g10/tdbio.c:463
 #, c-format
 msgid "%s: invalid trust-db created\n"
-msgstr ""
+msgstr "%s : base de confiance invalide créée\n"
 
 #: g10/tdbio.c:465
-#, fuzzy, c-format
+#, c-format
 msgid "%s: trust-db created\n"
-msgstr "%s: ne peut créer: %s\n"
+msgstr "%s : base de confiance créée\n"
 
 #: g10/tdbio.c:506
 #, c-format
 msgid "%s: invalid trust-db\n"
-msgstr ""
+msgstr "%s : base de confiance invalide\n"
 
 #: g10/tdbio.c:540
-#, fuzzy, c-format
+#, c-format
 msgid "%s: failed to create hashtable: %s\n"
-msgstr "%s: ne peut créer: %s\n"
+msgstr "%s : la création de la table de hachage a échoué : %s\n"
 
 #: g10/tdbio.c:548
-#, fuzzy, c-format
+#, c-format
 msgid "%s: error updating version record: %s\n"
-msgstr "%s: erreur pendant la vérification de la clé: %s\n"
+msgstr ""
+"%s : erreur pendant la mise à jour de l'enregistrement de version : %s\n"
 
 #: g10/tdbio.c:564 g10/tdbio.c:603 g10/tdbio.c:628 g10/tdbio.c:1346
 #: g10/tdbio.c:1373
-#, fuzzy, c-format
+#, c-format
 msgid "%s: error reading version record: %s\n"
-msgstr "%s: erreur pendant la vérification de la clé: %s\n"
+msgstr "%s : erreur pendant la lecture de l'enregistrement de version : %s\n"
 
 #: g10/tdbio.c:577
-#, fuzzy, c-format
+#, c-format
 msgid "%s: error writing version record: %s\n"
-msgstr "%s: erreur pendant la vérification de la clé: %s\n"
+msgstr "%s : erreur pendant l'écriture de l'enregistrement de version : %s\n"
 
 #: g10/tdbio.c:1053
-#, fuzzy, c-format
+#, c-format
 msgid "trustdb: lseek failed: %s\n"
-msgstr "la mise à jour de la clé secrète a échoué: %s\n"
+msgstr "base de confiance : « lseek() » a échoué : %s\n"
 
 #: g10/tdbio.c:1061
-#, fuzzy, c-format
+#, c-format
 msgid "trustdb: read failed (n=%d): %s\n"
-msgstr "la mise à jour de la base de confiance a échoué: %s\n"
+msgstr "base de confiance : la lecture a échoué (n=%d) : %s\n"
 
 #: g10/tdbio.c:1082
-#, fuzzy, c-format
+#, c-format
 msgid "%s: not a trustdb file\n"
-msgstr "la mise à jour de la base de confiance a échoué: %s\n"
+msgstr "%s : ce n'est pas un fichier de base de confiance\n"
 
 #: g10/tdbio.c:1098
 #, c-format
 msgid "%s: version record with recnum %lu\n"
-msgstr ""
+msgstr "%s : enregistrement de version avec un numéro %lu\n"
 
 #: g10/tdbio.c:1103
-#, fuzzy, c-format
+#, c-format
 msgid "%s: invalid file version %d\n"
-msgstr "entête de signature claire invalide\n"
+msgstr "%s : version %d du fichier invalide\n"
 
 #: g10/tdbio.c:1379
-#, fuzzy, c-format
+#, c-format
 msgid "%s: error reading free record: %s\n"
-msgstr "%s: erreur pendant la vérification de la clé: %s\n"
+msgstr "%s : erreur pendant la lecture de l'enregistrement libre : %s\n"
 
 #: g10/tdbio.c:1387
-#, fuzzy, c-format
+#, c-format
 msgid "%s: error writing dir record: %s\n"
-msgstr "%s: erreur pendant la vérification de la clé: %s\n"
+msgstr ""
+"%s : erreur pendant l'écriture de l'enregistrement de\n"
+"répertoire : %s\n"
 
 #: g10/tdbio.c:1397
 #, c-format
 msgid "%s: failed to zero a record: %s\n"
-msgstr ""
+msgstr "%s : n'a pu mettre un enregistrement à zéro : %s\n"
 
 #: g10/tdbio.c:1427
 #, c-format
 msgid "%s: failed to append a record: %s\n"
-msgstr ""
+msgstr "%s : n'a pas pu ajouter un enregistrement : %s\n"
 
 #: g10/trustdb.c:134
 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"
+"La base de confiance est corrompue ; exécutez « gpgm --fix-trust-db ».\n"
 
 #: g10/trustdb.c:147
 #, c-format
 msgid "trust record %lu, req type %d: read failed: %s\n"
 msgstr ""
+"enregistrement de confiance %lu, type de requête %d : la lecture a échoué : "
+"%s\n"
 
 #: g10/trustdb.c:162
 #, c-format
 msgid "trust record %lu, type %d: write failed: %s\n"
-msgstr ""
+msgstr "enregistrement de confiance %lu, type %d : l'écriture a échoué : %s\n"
 
 #: g10/trustdb.c:176
-#, fuzzy, c-format
+#, c-format
 msgid "trust record %lu: delete failed: %s\n"
-msgstr "la mise à jour de la clé secrète a échoué: %s\n"
+msgstr "enregistrement de confiance %lu : la suppression a échoué : %s\n"
 
 #: g10/trustdb.c:190
-#, fuzzy, c-format
+#, c-format
 msgid "trust db: sync failed: %s\n"
-msgstr "la mise à jour de la base de confiance a échoué: %s\n"
+msgstr "base de confiance a échoué : la synchronisation a échoué : %s\n"
 
 #: g10/trustdb.c:319
 #, c-format
 msgid "error reading dir record for LID %lu: %s\n"
 msgstr ""
+"erreur pendant la lecture de l'enregistrement de répertoire pour\n"
+"le LID %lu : %s\n"
 
 #: g10/trustdb.c:326
 #, c-format
 msgid "lid %lu: expected dir record, got type %d\n"
-msgstr ""
+msgstr "lid %lu : enregistrement de répertoire attendu, a reçu le type %d\n"
 
 #: g10/trustdb.c:331
 #, c-format
 msgid "no primary key for LID %lu\n"
-msgstr ""
+msgstr "pas de clé principale pour le LID %lu\n"
 
 #: g10/trustdb.c:336
-#, fuzzy, c-format
+#, c-format
 msgid "error reading primary key for LID %lu: %s\n"
-msgstr "erreur pendant la création du mot de passe: %s\n"
+msgstr "erreur pendant la lecture de la clé principale pour le LID %lu : %s\n"
 
 #: g10/trustdb.c:412
 #, c-format
@@ -2378,113 +2396,112 @@ msgid "chained sigrec %lu has a wrong owner\n"
 msgstr "l'enregistrement de signature %lu a un mauvais propriétaire\n"
 
 #: g10/trustdb.c:455
-#, fuzzy, c-format
+#, c-format
 msgid "'%s' is not a valid long keyID\n"
-msgstr "Caractère invalide dans le commentaire\n"
+msgstr "'%s' n'est pas une identification longue de clé valide\n"
 
 #: g10/trustdb.c:490
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX: no public key for trusted key - skipped\n"
-msgstr "clé %08lX: clé secrète sans clé publique - non prise en compte\n"
+msgstr "clé %08lX : pas de clé publique pour la clé certifiée - ignorée\n"
 
 #: g10/trustdb.c:499 g10/trustdb.c:557
 #, 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"
+msgstr "clé %08lX : ne peut être mise dans la base de confiance\n"
 
 #: g10/trustdb.c:504 g10/trustdb.c:563
 #, c-format
 msgid "key %08lX: query record failed\n"
-msgstr "clé %08lX: l'enregistrement de requête a échoué\n"
+msgstr "clé %08lX : l'enregistrement de requête a échoué\n"
 
 #: g10/trustdb.c:509 g10/trustdb.c:572
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX: already in trusted key table\n"
-msgstr "clé %08lX: déjà dans la table des clés secrètes\n"
+msgstr "clé %08lX : déjà dans la table des clés certifiées\n"
 
 #: g10/trustdb.c:512 g10/trustdb.c:575
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX: accepted as trusted key.\n"
-msgstr "clé %08lX: acceptée comme clé secrète.\n"
+msgstr "clé %08lX : acceptée comme clé certifiée.\n"
 
 #: g10/trustdb.c:528
-#, fuzzy, c-format
+#, c-format
 msgid "NOTE: secret key %08lX is NOT protected.\n"
-msgstr "Cette clé n'est pas protégée.\n"
+msgstr "NOTE : la clé secrète %08lX n'est PAS protégée.\n"
 
 #: g10/trustdb.c:540
 #, c-format
 msgid "key %08lX: secret key without public key - skipped\n"
-msgstr "clé %08lX: clé secrète sans clé publique - non prise en compte\n"
+msgstr "clé %08lX : clé secrète sans clé publique - non prise en compte\n"
 
 #: g10/trustdb.c:547
 #, 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"
+msgstr "clé %08lX : les clés secrète et publique ne correspondent pas\n"
 
 #: g10/trustdb.c:583
-#, fuzzy, c-format
+#, c-format
 msgid "enumerate secret keys failed: %s\n"
-msgstr "enum_secret_keys a échoué: %s\n"
+msgstr "l'énumération des clés secrètes a échoué : %s\n"
 
 #: g10/trustdb.c:766
-#, fuzzy, c-format
+#, c-format
 msgid "lid %lu: read dir record failed: %s\n"
-msgstr "clé %08lX: l'insertion d'enregistrement de confiance a échoué: %s\n"
+msgstr "lid %lu : la lecture d'enregistrement de répertoire a échoué : %s\n"
 
 #: g10/trustdb.c:775
-#, fuzzy, c-format
+#, c-format
 msgid "lid %lu: read key record failed: %s\n"
-msgstr "clé %08lX: l'insertion d'enregistrement de confiance a échoué: %s\n"
+msgstr "lid %lu : la lecture de l''enregistrement de clé a échoué : %s\n"
 
 #: g10/trustdb.c:785
-#, fuzzy, c-format
+#, c-format
 msgid "lid %lu: read uid record failed: %s\n"
-msgstr "clé %08lX: l'insertion d'enregistrement de confiance a échoué: %s\n"
+msgstr "lid %lu : la lecture d'enregistrement d'uid a échoué : %s\n"
 
 #: g10/trustdb.c:794
-#, fuzzy, c-format
+#, c-format
 msgid "lid %lu: read pref record failed: %s\n"
-msgstr "clé %08lX: l'insertion d'enregistrement de confiance a échoué: %s\n"
+msgstr "lid %lu : la lecture d'enregistrement de préférences a échoué : %s\n"
 
 #: g10/trustdb.c:804
-#, fuzzy, c-format
+#, c-format
 msgid "lid %lu: read sig record failed: %s\n"
-msgstr "clé %08lX: l'insertion d'enregistrement de confiance a échoué: %s\n"
+msgstr "lid %lu : la lecture d'enregistrement de signature a échoué : %s\n"
 
 #: g10/trustdb.c:999
 msgid "Ooops, no keys\n"
-msgstr ""
+msgstr "Ooops, pas de clé\n"
 
 #: g10/trustdb.c:1003
-#, fuzzy
 msgid "Ooops, no user ids\n"
-msgstr "lister la clé et les noms d'utilisateurs"
+msgstr "Ooops, pas de nom d'utilisateur\n"
 
 #: g10/trustdb.c:1074 g10/trustdb.c:1092
 #, c-format
 msgid "user '%s' read problem: %s\n"
-msgstr ""
+msgstr "problème de lecture de l'utilisateur '%s' : %s\n"
 
 #: g10/trustdb.c:1077 g10/trustdb.c:1095
 #, c-format
 msgid "user '%s' list problem: %s\n"
-msgstr ""
+msgstr "problème de liste à l'utilisateur '%s' : %s\n"
 
 #: g10/trustdb.c:1085 g10/trustdb.c:1300
-#, fuzzy, c-format
+#, c-format
 msgid "user '%s' not found: %s\n"
-msgstr "%s: utilisateur non trouvé\n"
+msgstr "l'utilisateur '%s' n'a pas été trouvé : %s\n"
 
 #: g10/trustdb.c:1087 g10/trustdb.c:1302
 #, c-format
 msgid "problem finding '%s' in trustdb: %s\n"
-msgstr ""
+msgstr "problème de recherche de '%s' dans la base de confiance : %s\n"
 
 #: g10/trustdb.c:1090
 #, c-format
 msgid "user '%s' not in trustdb\n"
-msgstr ""
+msgstr "l'utilisateur '%s' n'est pas dans la base de confiance\n"
 
 #: g10/trustdb.c:1125
 #, c-format
@@ -2492,123 +2509,123 @@ msgid ""
 "# List of assigned trustvalues, created %s\n"
 "# (Use \"gpgm --import-ownertrust\" to restore them)\n"
 msgstr ""
+"# Liste des indices de confiance assignés, créée le %s\n"
+"# (Utiliser « gpgm --import-ownertrust » pour les restaurer)\n"
 
 #: g10/trustdb.c:1131
 msgid "directory record w/o primary key\n"
-msgstr ""
+msgstr "enregistrement de répertoire sans clé principale\n"
 
 #: g10/trustdb.c:1138
-#, fuzzy, c-format
+#, c-format
 msgid "error reading key record: %s\n"
-msgstr "%s: erreur pendant la vérification de la clé: %s\n"
+msgstr "erreur pendant la lecture de l'enregistrement de clé : %s\n"
 
 #: g10/trustdb.c:1178
-msgid "line to long\n"
-msgstr ""
+msgid "line too long\n"
+msgstr "ligne trop longue\n"
 
 #: g10/trustdb.c:1186
 msgid "error: missing colon\n"
-msgstr ""
+msgstr "erreur : deux-points manquant\n"
 
 #: g10/trustdb.c:1191
-#, fuzzy
 msgid "error: invalid fingerprint\n"
-msgstr "erreur dans la ligne de remorque\n"
+msgstr "erreur : empreinte digitale invalide\n"
 
 #: g10/trustdb.c:1195
-#, fuzzy
 msgid "error: no ownertrust value\n"
-msgstr "exporter les valeurs de confiance"
+msgstr "erreur : pas d'indice de confiance\n"
 
 #: g10/trustdb.c:1209
 #, c-format
 msgid "LID %lu: changing trust from %u to %u\n"
-msgstr ""
+msgstr "LID %lu : changement de la confiance de %u vers %u\n"
 
 #: g10/trustdb.c:1212
 #, c-format
 msgid "LID %lu: setting trust to %u\n"
-msgstr ""
+msgstr "LID %lu : la confiance est maintenant %u\n"
 
 #: g10/trustdb.c:1220
 msgid "key not in trustdb, searching ring.\n"
-msgstr ""
+msgstr "la clé n'est pas dans la base de confiance, recherche du porte-clés.\n"
 
 #: g10/trustdb.c:1223
-#, fuzzy, c-format
+#, c-format
 msgid "key not in ring: %s\n"
-msgstr "ne peut écrire le porte-clés: %s\n"
+msgstr "clé absente du porte-clés : %s\n"
 
 #: g10/trustdb.c:1227
 msgid "Oops: key is now in trustdb???\n"
-msgstr ""
+msgstr "Oops : la clé est maintenant dans la base de confiance ???\n"
 
 #. update the ownertrust
 #: g10/trustdb.c:1232
-#, fuzzy, c-format
+#, c-format
 msgid "insert trust record failed: %s\n"
-msgstr "clé %08lX: l'insertion d'enregistrement de confiance a échoué: %s\n"
+msgstr "l'insertion d'enregistrement de confiance a échoué : %s\n"
 
 #. error
 #: g10/trustdb.c:1238
-#, fuzzy, c-format
+#, c-format
 msgid "error finding dir record: %s\n"
-msgstr "suppression d'armure non réussie: %s\n"
+msgstr "erreur pendant la recherche de l'enregistrement de répertoire : %s\n"
 
 #: g10/trustdb.c:1305
 #, c-format
 msgid "user '%s' not in trustdb - inserting\n"
-msgstr ""
+msgstr "l'utilisateur '%s' n'est pas dans la base de confiance - insertion\n"
 
 #: g10/trustdb.c:1308
-#, fuzzy, c-format
+#, c-format
 msgid "failed to put '%s' into trustdb: %s\n"
-msgstr "n'a pas pu initialiser la base de confiance: %s\n"
+msgstr "n'a pas pu insérer '%s' dans la base de confiance : %s\n"
 
 #: g10/trustdb.c:1355
 #, c-format
 msgid "%s: keyblock read problem: %s\n"
-msgstr ""
+msgstr "%s : problème de lecture du bloc de clés : %s\n"
 
 #: g10/trustdb.c:1369
-#, fuzzy, c-format
+#, c-format
 msgid "%s: update failed: %s\n"
-msgstr "la mise à jour a échoué: %s\n"
+msgstr "%s : la mise à jour a échoué : %s\n"
 
 #: g10/trustdb.c:1372
-#, fuzzy, c-format
+#, c-format
 msgid "%s: updated\n"
-msgstr "\t%lu clés mises à jour\n"
+msgstr "%s : mis à jour\n"
 
 #: g10/trustdb.c:1374
 #, c-format
 msgid "%s: okay\n"
-msgstr ""
+msgstr "%s : OK\n"
 
 #: g10/trustdb.c:1389
 #, c-format
 msgid "lid %lu: dir record w/o key - skipped\n"
-msgstr ""
+msgstr "lid %lu : enregistrement de répertoire sans clé - ignoré\n"
 
 #: g10/trustdb.c:1402
-#, fuzzy, c-format
+#, c-format
 msgid "lid %lu: keyblock not found: %s\n"
-msgstr "clé %08lX: clé publique pas trouvée: %s\n"
+msgstr "lid %lu : le bloc de clés n'a pas été trouvé : %s\n"
 
 #: g10/trustdb.c:1411 g10/trustdb.c:1480
-#, fuzzy, c-format
+#, c-format
 msgid "lid %lu: update failed: %s\n"
-msgstr "la mise à jour a échoué: %s\n"
+msgstr "lid %lu : la mise à jour a échoué: %s\n"
 
 #: g10/trustdb.c:1417 g10/trustdb.c:1486
-#, fuzzy, c-format
+#, c-format
 msgid "lid %lu: updated\n"
-msgstr "\t%lu clés mises à jour\n"
+msgstr "lid %lu : mis à jour\n"
 
 #: g10/trustdb.c:1421 g10/trustdb.c:1490
-#, fuzzy, c-format
+#, c-format
 msgid "lid %lu: okay\n"
-msgstr "lid %lu: pas de clé primaire\n"
+msgstr "lid %lu : OK\n"
 
 #: g10/trustdb.c:1428 g10/trustdb.c:1496
 #, c-format
@@ -2618,7 +2635,7 @@ msgstr "%lu cl
 #: g10/trustdb.c:1430
 #, c-format
 msgid "\t%lu keys skipped\n"
-msgstr "\t%lu clés non prises en compte\n"
+msgstr "\t%lu clés ignorées\n"
 
 #: g10/trustdb.c:1432 g10/trustdb.c:1498
 #, c-format
@@ -2631,19 +2648,19 @@ msgid "\t%lu keys updated\n"
 msgstr "\t%lu clés mises à jour\n"
 
 #: g10/trustdb.c:1464
-#, fuzzy, c-format
+#, c-format
 msgid "lid ?: insert failed: %s\n"
-msgstr "la mise à jour de la clé secrète a échoué: %s\n"
+msgstr "lid ? : l'insertion a échoué : %s\n"
 
 #: g10/trustdb.c:1469
-#, fuzzy, c-format
+#, c-format
 msgid "lid %lu: insert failed: %s\n"
-msgstr "la mise à jour de la clé secrète a échoué: %s\n"
+msgstr "lid %lu : l'insertion a échoué : %s\n"
 
 #: g10/trustdb.c:1475
-#, fuzzy, c-format
+#, c-format
 msgid "lid %lu: inserted\n"
-msgstr "\t%lu clés insérées\n"
+msgstr "lid %lu : inséré\n"
 
 #: g10/trustdb.c:1502
 #, c-format
@@ -2651,104 +2668,107 @@ msgid "\t%lu keys inserted\n"
 msgstr "\t%lu clés insérées\n"
 
 #: g10/trustdb.c:1505
-#, fuzzy, c-format
+#, c-format
 msgid "enumerate keyblocks failed: %s\n"
-msgstr "enum_secret_keys a échoué: %s\n"
+msgstr "l'énumération des blocs de clés a échoué : %s\n"
 
 #: g10/trustdb.c:1550
-#, fuzzy, c-format
+#, c-format
 msgid "check_trust: search dir record failed: %s\n"
-msgstr "clé %08lX: l'insertion d'enregistrement de confiance a échoué: %s\n"
+msgstr ""
+"check_trust : la recherche d'enregistrement de répertoire a échoué : %s\n"
 
 #: g10/trustdb.c:1557
 #, c-format
 msgid "key %08lX: insert trust record failed: %s\n"
-msgstr "clé %08lX: l'insertion d'enregistrement de confiance a échoué: %s\n"
+msgstr "clé %08lX : l'insertion d'enregistrement de confiance a échoué : %s\n"
 
 #: g10/trustdb.c:1561
 #, c-format
 msgid "key %08lX.%lu: inserted into trustdb\n"
-msgstr "clé %08lX.%lu: insérée dans la base de confiance\n"
+msgstr "clé %08lX.%lu : insérée dans la base de confiance\n"
 
 #: g10/trustdb.c:1569
 #, 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"
+msgstr ""
+"clé %08lX.%lu : créée dans le futur (voyage temporel ou\n"
+"problème d'horloge)\n"
 
 #: g10/trustdb.c:1576
 #, c-format
 msgid "key %08lX.%lu: expired at %s\n"
-msgstr "clé %08lX.%lu: a expiré le %s\n"
+msgstr "clé %08lX.%lu : a expiré le %s\n"
 
 #: g10/trustdb.c:1584
 #, c-format
 msgid "key %08lX.%lu: trust check failed: %s\n"
-msgstr "clé %08lX.%lu: la vérification de confiance a échoué: %s\n"
+msgstr "clé %08lX.%lu : la vérification de confiance a échoué: %s\n"
 
 #: g10/trustdb.c:1753 g10/trustdb.c:1782 g10/trustdb.c:2521
 msgid "WARNING: can't yet handle long pref records\n"
 msgstr ""
+"ATTENTION : les enregistrements de préférences longs ne sont pas encore\n"
+"supportés\n"
 
 #: g10/trustdb.c:1804
-#, fuzzy, c-format
+#, c-format
 msgid "get_dir_record: search_record failed: %s\n"
-msgstr "la mise à jour de la clé secrète a échoué: %s\n"
+msgstr "get_dir_record : search_record a échoué : %s\n"
 
 #: g10/trustdb.c:1867
-#, fuzzy, c-format
+#, c-format
 msgid "NOTE: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
 msgstr ""
-"note: enregistrement de signature %lu[%d] dans la liste d'aide de %lu mais\n"
-"mais marqué comme vérifié\n"
+"NOTE : l'enregistrement de signature %lu[%d] est dans la liste d'aide\n"
+"de %lu mais marqué comme vérifié\n"
 
 #: g10/trustdb.c:1871
-#, fuzzy, c-format
+#, c-format
 msgid "NOTE: sig rec %lu[%d] in hintlist of %lu but not marked\n"
 msgstr ""
-"note: enregistrement de signature %lu[%d] dans la liste d'aide de %lu mais\n"
-"non marqué\n"
+"NOTE : l'enregistrement de signature %lu[%d] est dans la liste d'aide\n"
+"de %lu mais n'est pas marqué\n"
 
 #. we need the dir record
 #: g10/trustdb.c:1878
-#, fuzzy, c-format
+#, c-format
 msgid "sig rec %lu[%d] in hintlist of %lu does not point to a dir record\n"
 msgstr ""
-"l'enregistrement de signature %lu[%d] dans la liste d'aide de %u ne pointe\n"
-"pas vers un enregistrement de répertoire\n"
+"l'enregistrement de signature %lu[%d] dans la liste d'aide de %lu\n"
+"ne pointe pas vers un enregistrement de répertoire\n"
 
 #: g10/trustdb.c:1884
 #, c-format
 msgid "lid %lu: no primary key\n"
-msgstr "lid %lu: pas de clé primaire\n"
+msgstr "lid %lu : pas de clé primaire\n"
 
 #: g10/trustdb.c:1917
 #, c-format
 msgid "lid %lu: user id not found in keyblock\n"
-msgstr "lid %lu: utilisateur non trouvé dans le bloc de clés\n"
+msgstr "lid %lu : utilisateur non trouvé dans le bloc de clés\n"
 
 #: g10/trustdb.c:1921
 #, c-format
 msgid "lid %lu: user id without signature\n"
-msgstr "lid %lu: utilisateur sans signature\n"
+msgstr "lid %lu : utilisateur sans signature\n"
 
 #: g10/trustdb.c:1928
 #, c-format
 msgid "lid %lu: self-signature in hintlist\n"
-msgstr "lid %lu: auto-signature dans la liste d'aide\n"
+msgstr "lid %lu : auto-signature dans la liste d'aide\n"
 
 #: g10/trustdb.c:1939 g10/trustdb.c:2658 g10/trustdb.c:2742
-#, fuzzy
 msgid "Valid certificate revocation"
-msgstr "Mauvais certificat"
+msgstr "Certificat de révocation valide"
 
 #: g10/trustdb.c:1940 g10/trustdb.c:2659 g10/trustdb.c:2743
-#, fuzzy
 msgid "Good certificate"
-msgstr "Mauvais certificat"
+msgstr "Bon certificat"
 
 #: g10/trustdb.c:1949
 msgid "very strange: no public key\n"
-msgstr ""
+msgstr "très étrange : pas de clé publique\n"
 
 #: g10/trustdb.c:1997
 #, c-format
@@ -2768,153 +2788,147 @@ msgid "lid %lu: can't get keyblock: %s\n"
 msgstr "lid %lu: ne peut obtenir le bloc de clés: %s\n"
 
 #: g10/trustdb.c:2070 g10/trustdb.c:2984
-#, fuzzy, c-format
+#, c-format
 msgid "tdbio_search_dir failed: %s\n"
-msgstr "suppression d'armure non réussie: %s\n"
+msgstr "tdbio_search_dir a échoué : %s\n"
 
 #: g10/trustdb.c:2223
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX.%lu: Good subkey binding\n"
-msgstr "clé %08lX: mauvaise association avec %08lX\n"
+msgstr "clé %08lX.%lu : bonne liaison avec la sous-clé\n"
 
 #: g10/trustdb.c:2229 g10/trustdb.c:2271
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
-msgstr "clé %08lX: pas de nom d'utilisateur valide\n"
+msgstr "clé %08lX.%lu : liaison avec la sous-clé invalide : %s\n"
 
 #: g10/trustdb.c:2244
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX.%lu: Valid key revocation\n"
-msgstr "clé %08lX: mauvaise révocation de clé par %08lX\n"
+msgstr "clé %08lX.%lu : révocation de clé valide\n"
 
 #: g10/trustdb.c:2250
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX.%lu: Invalid key revocation: %s\n"
-msgstr "clé %08lX: mauvaise révocation de clé par %08lX\n"
+msgstr "clé %08lX.%lu : révocation de sous-clé invalide : %s\n"
 
 #: g10/trustdb.c:2265
-#, fuzzy, c-format
+#, c-format
 msgid "key %08lX.%lu: Valid subkey revocation\n"
-msgstr "clé %08lX: mauvaise révocation de sous-clé par %08lX\n"
+msgstr "clé %08lX.%lu : révocation de sous-clé valide\n"
 
 #: g10/trustdb.c:2365
-#, fuzzy
 msgid "Good self-signature"
-msgstr "[auto-signature]"
+msgstr "Bonne auto-signature"
 
 #: g10/trustdb.c:2376
-#, fuzzy
 msgid "Invalid self-signature"
-msgstr "clé %08lX: auto-signature invalide\n"
+msgstr "Auto-signature invalide"
 
 #: g10/trustdb.c:2386
 msgid "Valid user ID revocation skipped due to a newer self signature\n"
 msgstr ""
+"La révocation valide de nom d'utilisateur a été ignorée car l'auto-\n"
+"signature est plus récente\n"
 
 #: g10/trustdb.c:2393
-#, fuzzy
 msgid "Valid user ID revocation\n"
-msgstr "Choix invalide.\n"
+msgstr "Révocation de nom d'utilisateur valide\n"
 
 #: g10/trustdb.c:2400
-#, fuzzy
 msgid "Invalid user ID revocation"
-msgstr "Choix invalide.\n"
+msgstr "Révocation de nom d'utilisateur invalide"
 
 #: g10/trustdb.c:2484
-#, fuzzy
 msgid "Too many preferences"
-msgstr "lister les préférences"
+msgstr "Trop de préférences"
 
 #: g10/trustdb.c:2498
-#, fuzzy
 msgid "Too many preference items"
-msgstr "lister les préférences"
+msgstr "Trop d'items de préférence"
 
 #: g10/trustdb.c:2637
 msgid "Duplicated certificate - deleted"
-msgstr ""
+msgstr "Certificat dupliqué - enlevé"
 
 #: g10/trustdb.c:2670
-#, fuzzy
 msgid "Hmmm, public key lost?"
-msgstr "Mauvaise clé publique"
+msgstr "Hmmm, clé publique perdue ?"
 
 #: g10/trustdb.c:2680 g10/trustdb.c:2763
-#, fuzzy
 msgid "Invalid certificate revocation"
-msgstr "Mauvais certificat"
+msgstr "Révocation de certificat invalide"
 
 #: g10/trustdb.c:2681 g10/trustdb.c:2764
-#, fuzzy
 msgid "Invalid certificate"
-msgstr "Mauvais certificat"
+msgstr "Certificat invalide"
 
 #: g10/trustdb.c:2696
-#, fuzzy, c-format
+#, c-format
 msgid "uid %08lX.%lu/%02X%02X: has shadow dir %lu but is not yet marked.\n"
 msgstr ""
-"clé %08lX.%lu, uid %02X%02X: possède une ombre %lu mais pas encore\n"
-"marquée.\n"
+"uid %08lX.%lu/%02X%02X : possède une ombre %lu mais n'est pas encore\n"
+"marqué.\n"
 
 #: g10/trustdb.c:2710
-#, fuzzy, c-format
+#, c-format
 msgid "sig record %lu[%d] points to wrong record.\n"
 msgstr ""
-"l'enregistrement de signature %lu[%d] dans la liste d'aide de %u ne pointe\n"
-"pas vers un enregistrement de répertoire\n"
+"l'enregistrement de signature %lu[%d] pointe vers le mauvais\n"
+"enregistrement de répertoire\n"
 
 #. that should never happen
 #: g10/trustdb.c:2954
-#, fuzzy, c-format
+#, c-format
 msgid "insert_trust_record: keyblock not found: %s\n"
-msgstr "clé %08lX: clé secrète pas trouvée: %s\n"
+msgstr "insert_trust_record : bloc de clés non trouvé : %s\n"
 
 #: g10/trustdb.c:2972
 msgid "did not use primary key for insert_trust_record()\n"
-msgstr ""
+msgstr "n'a pas utilisé la clé principale pour « insert_trust_record() »\n"
 
 #: g10/ringedit.c:293
-#, fuzzy, c-format
+#, c-format
 msgid "%s: can't create keyring: %s\n"
-msgstr "%s: ne peut créer: %s\n"
+msgstr "%s : ne peut créer le porte-clés : %s\n"
 
 #: g10/ringedit.c:299 g10/ringedit.c:1264
-#, fuzzy, c-format
+#, c-format
 msgid "%s: keyring created\n"
-msgstr "%s: nouveau fichier d'options créé\n"
+msgstr "%s : porte-clés créé\n"
 
 #: g10/ringedit.c:1449
 msgid "WARNING: 2 files with confidential information exists.\n"
 msgstr ""
+"ATTENTION : 2 fichiers avec des informations confidentielles existent.\n"
 
 #: g10/ringedit.c:1450
-#, fuzzy, c-format
+#, c-format
 msgid "%s is the unchanged one\n"
-msgstr "      clés secrètes inchangées: %lu\n"
+msgstr "%s est le fichier original\n"
 
 #: g10/ringedit.c:1451
 #, c-format
 msgid "%s is the new one\n"
-msgstr ""
+msgstr "%s est le nouveau\n"
 
 #: g10/ringedit.c:1452
 msgid "Please fix this possible security flaw\n"
-msgstr ""
+msgstr "Réparez ce problème de sécurité possible\n"
 
 #: g10/skclist.c:94
-#, fuzzy, c-format
+#, c-format
 msgid "skipped '%s': %s\n"
-msgstr "%s: sauté: %s\n"
+msgstr "'%s' a été ignoré : %s\n"
 
 #: g10/skclist.c:100
-#, fuzzy, c-format
+#, c-format
 msgid ""
 "skipped '%s': this is a PGP generated ElGamal key which is not secure for "
 "signatures!\n"
 msgstr ""
-"Cela est une clé ElGamal générée par PGP qui n'est PAS sûre pour les\n"
-"signatures!\n"
+"'%s' a été ignorée : c'est une clé ElGamal générée par PGP qui n'est pas\n"
+"sûre pour les signatures !\n"
 
 #. do not overwrite
 #: g10/openfile.c:58
@@ -2938,24 +2952,23 @@ msgstr "les donn
 #: g10/openfile.c:181
 #, c-format
 msgid "%s: new options file created\n"
-msgstr "%s: nouveau fichier d'options créé\n"
+msgstr "%s : nouveau fichier d'options créé\n"
 
 #: g10/encr-data.c:59
-#, fuzzy, c-format
+#, c-format
 msgid "%s encrypted data\n"
-msgstr "crypter les données"
+msgstr "données chiffrées avec %s\n"
 
 #: g10/encr-data.c:61
 #, c-format
 msgid "encrypted with unknown algorithm %d\n"
-msgstr ""
+msgstr "chiffré avec l'algorithme inconnu %d\n"
 
 #: g10/encr-data.c:74
-#, fuzzy
 msgid ""
 "WARNING: Message was encrypted with a weak key in the symmetric cipher.\n"
 msgstr ""
-"Attention: Le message a été crypté avec une mauvaise clé pendant le\n"
+"ATTENTION : Le message a été chiffré avec une mauvaise clé pendant le\n"
 "chiffrement symétrique.\n"
 
 #: g10/seskey.c:52
@@ -2966,74 +2979,76 @@ msgstr "mauvaise cl
 #, c-format
 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"
+"ne peut éviter une mauvaise clé pour le chiffrement symétrique : \n"
 "%d essais ont eu lieu!\n"
 
 #. begin of list
-#: g10/helptext.c:45
+#: g10/helptext.c:48
 msgid "edit_ownertrust.value"
 msgstr ""
-"C'est à vous d'assigner une valeur ici; cette valeur ne sera jamais\n"
-"exportée à une tierce personne. Nous en avons besoin pour créer le;\n"
-"réseau de confiance (web-of-trust); cela n'a rien à voir avec le\n"
+"C'est à vous d'assigner une valeur ici ; cette valeur ne sera jamais\n"
+"exportée à une tierce personne. Nous en avons besoin pour créer le\n"
+"réseau de confiance (web-of-trust) ; cela n'a rien à voir avec le\n"
 "réseau de certificats (créé implicitement)"
 
-#: g10/helptext.c:51
+#: g10/helptext.c:54
 msgid "revoked_key.override"
 msgstr ""
-"Si vous voulez utiliser cette clé révoquée quand-même, répondez \"oui\"."
+"Si vous voulez utiliser cette clé révoquée quand-même, répondez « oui »."
 
-#: g10/helptext.c:55
+#: g10/helptext.c:58
 msgid "untrusted_key.override"
 msgstr ""
-"Si vous voulez utiliser cette clé peu sûre quand-même, répondez \"oui\"."
+"Si vous voulez utiliser cette clé peu sûre quand-même, répondez « oui »."
 
-#: g10/helptext.c:59
+#: g10/helptext.c:62
 msgid "pklist.user_id.enter"
-msgstr "Entrez le nom de l'adresse à qui vous voulez envoyer le message."
+msgstr "Entrez l'adresse de la personne à qui vous voulez envoyer le message."
 
-#: g10/helptext.c:63
+#: g10/helptext.c:66
 msgid "keygen.algo"
 msgstr "Sélectionnez l'algorithme à utiliser:"
 
-#: g10/helptext.c:79
-#, fuzzy
+#: g10/helptext.c:82
 msgid "keygen.algo.elg_se"
-msgstr "Sélectionnez l'algorithme à utiliser:"
+msgstr ""
+"Bien que ces clés soient définies dans la RFC2440 elles ne sont pas\n"
+"conseillées car tous les programmes ne les supportent pas et les signatures\n"
+"créées avec elles sont plutôt longues et très lentes à vérifier."
 
-#: g10/helptext.c:86
+#: g10/helptext.c:89
 msgid "keygen.size"
 msgstr ""
 
-#: g10/helptext.c:90
+#: g10/helptext.c:93
 msgid "keygen.size.huge.okay"
 msgstr ""
 
-#: g10/helptext.c:95
+#: g10/helptext.c:98
 msgid "keygen.size.large.okay"
 msgstr ""
 
-#: g10/helptext.c:100
+#: g10/helptext.c:103
 msgid "keygen.valid"
 msgstr ""
 
-#: g10/helptext.c:104
+#: g10/helptext.c:107
 msgid "keygen.valid.okay"
 msgstr ""
 
-#: g10/helptext.c:109
+#: g10/helptext.c:112
 msgid "keygen.name"
 msgstr ""
 
-#: g10/helptext.c:114
+#: g10/helptext.c:117
 msgid "keygen.email"
 msgstr ""
 
-#: g10/helptext.c:118
+#: g10/helptext.c:121
 msgid "keygen.comment"
 msgstr ""
 
-#: g10/helptext.c:123
+#: g10/helptext.c:126
 msgid "keygen.userid.cmd"
 msgstr ""
 "N pour changer le nom.\n"
@@ -3042,104 +3057,67 @@ msgstr ""
 "O pour continuer à générer la clé.\n"
 "Q pour arrêter de générer de clé."
 
-#: g10/helptext.c:132
+#: g10/helptext.c:135
 msgid "keygen.sub.okay"
-msgstr "Répondez \"oui\" (ou simplement \"o\") pour générer la sous-clé"
+msgstr "Répondez « oui » (ou simplement « o ») pour générer la sous-clé"
 
-#: g10/helptext.c:136
+#: g10/helptext.c:139
 msgid "sign_uid.okay"
 msgstr ""
 
-#: g10/helptext.c:141
+#: g10/helptext.c:144
 msgid "change_passwd.empty.okay"
 msgstr ""
 
-#: g10/helptext.c:146
+#: g10/helptext.c:149
 msgid "keyedit.cmd"
-msgstr "Entrez \"aide\" s'il vous plaît."
+msgstr "Entrez « aide » pour voir la liste des commandes."
 
-#: g10/helptext.c:150
+#: g10/helptext.c:153
 msgid "keyedit.save.okay"
 msgstr ""
 
-#: g10/helptext.c:155
+#: g10/helptext.c:158
 msgid "keyedit.cancel.okay"
 msgstr ""
 
-#: g10/helptext.c:159
+#: g10/helptext.c:162
 msgid "keyedit.sign_all.okay"
 msgstr ""
 
-#: g10/helptext.c:163
+#: g10/helptext.c:166
 msgid "keyedit.remove.uid.okay"
 msgstr ""
 
-#: g10/helptext.c:168
+#: g10/helptext.c:171
 msgid "keyedit.remove.subkey.okay"
 msgstr ""
 
-#: g10/helptext.c:172
+#: g10/helptext.c:175
 msgid "passphrase.enter"
 msgstr ""
-"Entrez le mot de passe; c'est une phrase secrète \n"
+"Entrez le mot de passe ; c'est une phrase secrète \n"
 "  Blurb, blurb,.... "
 
-#: g10/helptext.c:179
+#: g10/helptext.c:182
 msgid "passphrase.repeat"
 msgstr ""
 "Répétez le dernier mot de passe, pour être sûr de ce que vous avez tapé."
 
-#: g10/helptext.c:183
+#: g10/helptext.c:186
 msgid "detached_signature.filename"
 msgstr ""
 
-#: g10/helptext.c:187
+#: g10/helptext.c:190
 msgid "openfile.overwrite.okay"
 msgstr ""
 
-#: g10/helptext.c:201
+#: g10/helptext.c:204
 msgid "No help available"
 msgstr "Pas d'aide disponible"
 
-#: g10/helptext.c:213
+#: g10/helptext.c:216
 #, c-format
 msgid "No help available for '%s'"
 msgstr "Pas d'aide disponible pour '%s'"
 
-#~ msgid "You will see a list of signators etc. here\n"
-#~ msgstr "Vous verrez une liste de signataires etc. ici\n"
-
-#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: Good signature (3)\n"
-#~ msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: Bonne signature (3)\n"
-
-#~ msgid ""
-#~ "key %08lX.%lu, uid %02X%02X, sig %08lX: very strange: no public key\n"
-#~ msgstr ""
-#~ "clé %08lX.%lu, uid %02X%02X, sig %08lX: très étrange: pas de clé publique\n"
-
-#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: %s\n"
-#~ msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: %s\n"
-
-#~ msgid "key %08lX.%lu, uid %02X%02X: Good self-signature\n"
-#~ msgstr "clé %08lX.%lu, uid %02X%02X: Bonne auto-signature\n"
-
-#~ msgid "key %08lX, uid %02X%02X: Invalid self-signature: %s\n"
-#~ msgstr "clé %08lX.%lu, uid %02X%02X: Auto-signature invalide: %s\n"
-
-#~ msgid ""
-#~ "key %08lX.%lu, uid %02X%02X, sig %08lX: duplicated signature - deleted\n"
-#~ msgstr ""
-#~ "clé %08lX.%lu, uid %02X%02X, sig %08lX: signature dupliquée - effacée\n"
-
-#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: Good signature (1)\n"
-#~ msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: Bonne signature (1)\n"
-
-#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: weird: no public key\n"
-#~ msgstr ""
-#~ "clé %08lX.%lu, uid %02X%02X, sig %08lX: bizarre: pas de clé publique\n"
-
-#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: Good signature (2)\n"
-#~ msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: Bonne signature (2)\n"
-
-#~ msgid "key %08lX.%lu, uid %02X%02X, sig %08lX: no public key\n"
-#~ msgstr "clé %08lX.%lu, uid %02X%02X, sig %08lX: pas de clé publique\n"
index cacbb10..752a31a 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -2492,7 +2492,7 @@ msgid "error reading key record: %s\n"
 msgstr "%s: errore nel controllare la chiave: %s\n"
 
 #: g10/trustdb.c:1178
-msgid "line to long\n"
+msgid "line too long\n"
 msgstr ""
 
 #: g10/trustdb.c:1186
index e5431c1..a68a396 100644 (file)
@@ -2492,7 +2492,7 @@ msgid "error reading key record: %s\n"
 msgstr "erro lendo registro de chave: %s\n"
 
 #: g10/trustdb.c:1178
-msgid "line to long\n"
+msgid "line too long\n"
 msgstr "linha muito longa\n"
 
 #: g10/trustdb.c:1186
index ec2603d..cdd476c 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -2543,7 +2543,7 @@ msgid "error reading key record: %s\n"
 msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
 
 #: g10/trustdb.c:1178
-msgid "line to long\n"
+msgid "line too long\n"
 msgstr ""
 
 #: g10/trustdb.c:1186
index 61034c2..eb1fe5a 100644 (file)
@@ -1,3 +1,8 @@
+Thu Dec 17 18:31:15 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * gnupg.spec: New version by Reuben Sumner and did some more
+       changes.
+
 Fri Nov 27 12:39:29 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
 
 
index f654ab1..e2961e5 100644 (file)
@@ -2,59 +2,57 @@
 # gnupg -- gnu privacy guard
 # This is a template.  The dist target uses it to create the real file.
 #
+%define version @pkg_version@
 Summary: GPL public key crypto
 Name: gnupg
-Version: @pkg_version@
-Release: 3
+Version: %{version}
+Release: 1
 Copyright: GPL
 Group: Applications/Cryptography
-Source: ftp://ftp.guug.de/pub/gcrypt/
-URL: http://www.d.shuttle.de/isil/crypt/gnupg.html
-Vendor: TechnoCage
-Packager: Caskey L. Dickson <caskey-at-technocage.com>
+Source: ftp://ftp.gnupg.org/pub/gcrypt/gnupg-%{version}.tar.gz
+URL: http://www.gnupg.org
 Provides: gpg openpgp
+BuildRoot: /tmp/gnupg
 
 %description
-GNUPG is a complete and free replacement for PGP. Because it does not use
-IDEA or RSA it can be used without any restrictions. GNUPG is nearly in
-compliance with the OpenPGP draft.
+GnuPG is a complete and free replacement for PGP. Because it does not use
+IDEA or RSA it can be used without any restrictions. GnuPG is in
+compliance with the OpenPGP specification (RFC2440).
 
 %prep
-rm -rf $RPM_BUILD_DIR/gnupg-@pkg_version@
-tar -xvzf $RPM_SOURCE_DIR/gnupg-@pkg_version@.tar.gz
+%setup
+
+rm -rf $RPM_BUILD_ROOT
 
 %build
-cd gnupg-@pkg_version@
-chown -R root.root *
-./configure  --prefix=/usr
+CFLAGS="$RPM_OPT_FLAGS" ./configure  --prefix=/usr
 make
 
 %install
-cd gnupg-@pkg_version@
-make install
+make prefix="${RPM_BUILD_ROOT}/usr" install
 
-%files
-%doc gnupg-@pkg_version@/doc/DETAILS
-%doc gnupg-@pkg_version@/INSTALL
-%doc gnupg-@pkg_version@/doc/rfcs
-%doc gnupg-@pkg_version@/AUTHORS
-%doc gnupg-@pkg_version@/ABOUT-NLS
-%doc gnupg-@pkg_version@/COPYING
-%doc gnupg-@pkg_version@/ChangeLog
-%doc gnupg-@pkg_version@/NEWS
-%doc gnupg-@pkg_version@/README
-%doc gnupg-@pkg_version@/THANKS
-%doc gnupg-@pkg_version@/TODO
-/usr/man/man1/gpg.1
-/usr/bin/gpg
-/usr/bin/gpgm
-/usr/share/locale/en/LC_MESSAGES/gnupg.mo
-/usr/share/locale/de/LC_MESSAGES/gnupg.mo
-/usr/share/locale/it/LC_MESSAGES/gnupg.mo
-/usr/share/locale/fr/LC_MESSAGES/gnupg.mo
-/usr/lib/gnupg/tiger
-/usr/lib/gnupg/twofish
+%clean
+rm -rf $RPM_BUILD_ROOT
 
+%files
+%attr(-,root,root) %doc doc/DETAILS
+%attr(-,root,root) %doc INSTALL
+%attr(-,root,root) %doc AUTHORS
+%attr(-,root,root) %doc ABOUT-NLS
+%attr(-,root,root) %doc COPYING
+%attr(-,root,root) %doc ChangeLog
+%attr(-,root,root) %doc NEWS
+%attr(-,root,root) %doc README
+%attr(-,root,root) %doc THANKS
+%attr(-,root,root) %doc TODO
+%attr(-,root,root) /usr/man/man1/gpg.1
 %attr (4755,root,root) /usr/bin/gpg
-%attr (4755,root,root) /usr/bin/gpgm
+%attr (755,root,root) /usr/bin/gpgm
+%attr(-,root,root) /usr/share/locale/en/LC_MESSAGES/gnupg.mo
+%attr(-,root,root) /usr/share/locale/de/LC_MESSAGES/gnupg.mo
+%attr(-,root,root) /usr/share/locale/it/LC_MESSAGES/gnupg.mo
+%attr(-,root,root) /usr/share/locale/fr/LC_MESSAGES/gnupg.mo
+%attr(-,root,root) /usr/lib/gnupg/tiger
+%attr(-,root,root) /usr/lib/gnupg/twofish
+%attr(-,root,root) /usr/share/gnupg/options.skel