From 786a2870dfc48e9676476a5604a5115f4fe8c5e5 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 7 Oct 1998 13:30:43 +0000 Subject: [PATCH] a new release --- Makefile.am | 10 +- NEWS | 4 +- README | 15 +- TODO | 9 +- VERSION | 2 +- checks/genkey1024.test | 1 - checks/run-gpg | 2 +- doc/DETAILS | 8 +- g10/ChangeLog | 17 + g10/g10.c | 10 + g10/keyedit.c | 35 +- g10/pkclist.c | 4 +- g10/tdbio.c | 96 +++-- g10/tdbio.h | 8 +- g10/trustdb.c | 756 ++++++++++++++++----------------------- g10/trustdb.h | 2 +- po/ChangeLog | 4 + po/Makefile.in.in | 9 +- po/de.po | 580 +++++++++++++++--------------- po/en.po | 766 +++++++++++++++++++++++++--------------- po/fr.po | 778 ++++++++++++++++++++++++++--------------- po/it.po | 777 +++++++++++++++++++++++++--------------- 22 files changed, 2245 insertions(+), 1648 deletions(-) diff --git a/Makefile.am b/Makefile.am index 43e2a28ce..138f0d372 100644 --- a/Makefile.am +++ b/Makefile.am @@ -6,15 +6,15 @@ EXTRA_DIST = VERSION PROJECTS dist-hook: @set -e; \ - for file in `find $(srcdir) -type f -name distfiles`; do \ + for file in `cd $(top_srcdir); find . -type f -name distfiles`; do \ dir=`dirname $$file` ; $(mkinstalldirs) $(distdir)/$$dir ; \ - for i in distfiles `cat $$file` ; do \ - ln $(srcdir)/$$dir/$$i $(distdir)/$$dir/$$i 2> /dev/null \ - || cp -p $(srcdir)/$$dir/$$i $(distdir)/$$dir/$$i; \ + for i in distfiles `cat $(top_srcdir)/$$file` ; do \ + ln $(top_srcdir)/$$dir/$$i $(distdir)/$$dir/$$i 2> /dev/null \ + || cp -p $(top_srcdir)/$$dir/$$i $(distdir)/$$dir/$$i; \ done ; \ done @set -e; \ - sed -e 's/@pkg_version@/$(VERSION)/g' $(srcdir)/scripts/gnupg.spec \ + sed -e 's/@pkg_version@/$(VERSION)/g' $(top_srcdir)/scripts/gnupg.spec \ > $(distdir)/scripts/gnupg-$(VERSION).spec diff --git a/NEWS b/NEWS index 02fc4d8de..52691f829 100644 --- a/NEWS +++ b/NEWS @@ -17,7 +17,9 @@ Noteworthy changes in version 0.4.1 * Checked gnupg against the August 1998 draft (07) and I believe it is in compliance with this document (except for one point). - * Fixed some bugs in the import merging code. + * Fixed some bugs in the import merging code and rewrote some + code for the trustdb. + Noteworthy changes in version 0.4.0 ----------------------------------- diff --git a/README b/README index 216d84fe5..ad836c3d7 100644 --- a/README +++ b/README @@ -1,3 +1,5 @@ +-----BEGIN PGP SIGNED MESSAGE----- + GNUPG - The GNU Privacy Guard ------------------------------- Version 0.4 @@ -55,7 +57,7 @@ Installation ------------ - Please read the file INSTALL. + Please read the file INSTALL! Here is a quick summary: @@ -328,5 +330,14 @@ Please direct bug reports to or better post them to the mailing list (this is a closed list, - please subscribe before posting). + please subscribe before posting, see above (~line 33)). +-----BEGIN PGP SIGNATURE----- +Version: GNUPG v0.4.0a (GNU/Linux) +Comment: For info finger gcrypt@ftp.guug.de + +iQB1AwUBNhtSpB0Z9MEMmFelAQHWNQMAuPaj71rzjjtVNlYDV0MYljPFZqAK7tvmbH3i9Lti +UuvGPCpx1/ej7jwZ2LSQ61O8c/xRwV07chHa5MGmSGT4KZg5g5MejUOliMQJIJwjY5PoZAVb +6F7+hZf5Bt5Jl2J7 +=6Mbb +-----END PGP SIGNATURE----- diff --git a/TODO b/TODO index 7b6366c23..c1da6284e 100644 --- a/TODO +++ b/TODO @@ -1,12 +1,9 @@ - * check for working mmap() - - * after creating a new uid, the preferences in the trustdb are not updated. - We should always sync the trustdb in such cases. - * The critical bit of signature subpackets is not yet supported; i.e. it is ignored. + * Read more records at once in tdbio.c and provide a lazy write cache. + * Exportable Certification Flag is ignored * Why does OpenPGP say: The algorithm byte is included in the @@ -59,7 +56,7 @@ * change the fake_data stuff to mpi_set_opaque - * Is it okay to use gettext for the help system??? + * Is it okay to use gettext for the help system? * Add some stuff for DU cc diff --git a/VERSION b/VERSION index 8d427d3e4..267577d47 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.4.0a +0.4.1 diff --git a/checks/genkey1024.test b/checks/genkey1024.test index e419088f2..223554937 100755 --- a/checks/genkey1024.test +++ b/checks/genkey1024.test @@ -21,7 +21,6 @@ expect { -exact "Please select what kind of key you want:\r (1) DSA and ElGamal (default)\r (2) ElGamal (sign and encrypt)\r - (3) ElGamal (encrypt only)\r (4) DSA (sign only)\r (5) ElGamal in a v3 packet\r Your selection? " { send -- "1\r" } diff --git a/checks/run-gpg b/checks/run-gpg index 518721a40..a9e0e31cc 100755 --- a/checks/run-gpg +++ b/checks/run-gpg @@ -10,6 +10,6 @@ else rm err.tmp.$$ exit 1 fi -fgrep -v -f run-gpg.patterns err.tmp.$$ +fgrep -v -f $srcdir/run-gpg.patterns err.tmp.$$ rm err.tmp.$$ diff --git a/doc/DETAILS b/doc/DETAILS index d52527ce2..efd412ca7 100644 --- a/doc/DETAILS +++ b/doc/DETAILS @@ -65,7 +65,8 @@ Record type 1: (Used to keep track of the time, when this TrustDB was checked against the pubring) 1 u32 record number of keyhashtable - 12 bytes reserved + 1 u32 first free record + 8 bytes reserved Record type 2: (directory record) @@ -222,6 +223,11 @@ Record type 11 (hash list) For the current record length of 40, n is 7 +Record type 254: (free record) + 1 byte value 254 + 1 byte reserved (0) + 1 u32 next_free + Packet Headers diff --git a/g10/ChangeLog b/g10/ChangeLog index 911554abb..6e420e5e1 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,20 @@ +Wed Oct 7 11:15:36 1998 Werner Koch (wk@isil.d.shuttle.de) + + * keyedit.c (sign_uids): Fixed a problem with SK which could caused + a save of an unprotected key. + (menu_adduid): Ditto. + + * keyedit.c (keyedit_menu): Prefs are now correctly listed for + new user ids. + + * trustdb.c (update_trust_record): New. + (insert_trust_record): Now makes use of update_trust_record. + +Tue Oct 6 16:18:03 1998 Werner Koch (wk@isil.d.shuttle.de) + + * trustdb.c (read_record): replaces most of the tdbio_read_records. + (write_record): Ditto. + Sat Oct 3 11:01:21 1998 Werner Koch (wk@isil.d.shuttle.de) * keygen.c (ask_alogo): enable ElGamal enc-only only for addmode. diff --git a/g10/g10.c b/g10/g10.c index c0e77b854..ca9b44dac 100644 --- a/g10/g10.c +++ b/g10/g10.c @@ -87,6 +87,7 @@ enum cmd_and_opt_values { aNull = 0, aPrintMD, aPrintMDs, aCheckTrustDB, + aFixTrustDB, aListTrustDB, aListTrustPath, aExportOwnerTrust, @@ -177,6 +178,7 @@ static ARGPARSE_OPTS opts[] = { { aExportOwnerTrust, "export-ownertrust", 256, N_("export the ownertrust values")}, { aImportOwnerTrust, "import-ownertrust", 256 , N_("import ownertrust values")}, { aCheckTrustDB, "check-trustdb",0 , N_("|[NAMES]|check the trust database")}, + { aFixTrustDB, "fix-trustdb",0 , N_("fix a corrupted trust database")}, { aDeArmor, "dearmor", 256, N_("De-Armor a file or stdin") }, { aEnArmor, "enarmor", 256, N_("En-Armor a file or stdin") }, { aPrintMD, "print-md" , 256, N_("|algo [files]|print message digests")}, @@ -636,6 +638,7 @@ main( int argc, char **argv ) case aPrintMDs: set_cmd( &cmd, aPrintMDs); break; case aListTrustDB: set_cmd( &cmd, aListTrustDB); break; case aCheckTrustDB: set_cmd( &cmd, aCheckTrustDB); break; + case aFixTrustDB: set_cmd( &cmd, aFixTrustDB); break; case aListTrustPath: set_cmd( &cmd, aListTrustPath); break; case aDeArmor: set_cmd( &cmd, aDeArmor); break; case aEnArmor: set_cmd( &cmd, aEnArmor); break; @@ -856,6 +859,7 @@ main( int argc, char **argv ) case aGenRandom: case aDeArmor: case aEnArmor: + case aFixTrustDB: break; case aKMode: case aListKeys: @@ -1165,6 +1169,12 @@ main( int argc, char **argv ) } break; + case aFixTrustDB: + log_error("this command ist not yet implemented.\"\n"); + log_error("A workaround is to use \"--export-ownertrust\", remove\n"); + log_error("the trustdb file and do an \"--import-ownertrust\".\n" ); + break; + case aListTrustPath: if( argc != 2 ) wrong_args("--list-trust-path [-- -] "); diff --git a/g10/keyedit.c b/g10/keyedit.c index 9387a762e..6f9c1c7c1 100644 --- a/g10/keyedit.c +++ b/g10/keyedit.c @@ -212,6 +212,7 @@ sign_uids( KBNODE keyblock, STRLIST locusr, int *ret_modified ) int rc = 0; SK_LIST sk_list = NULL; SK_LIST sk_rover = NULL; + PKT_secret_key *sk = NULL; KBNODE node, uidnode; PKT_public_key *primary_pk; int select_all = !count_selected_uids(keyblock); @@ -228,7 +229,14 @@ sign_uids( KBNODE keyblock, STRLIST locusr, int *ret_modified ) size_t n; char *p; - keyid_from_sk( sk_rover->sk, sk_keyid ); + /* we have to use a copy of the sk, because make_keysig_packet + * may remove the protection from sk and if we did other + * changes to the secret key, we would save the unprotected + * version */ + if( sk ) + free_secret_key(sk); + sk = copy_secret_key( NULL, sk_rover->sk ); + keyid_from_sk( sk, sk_keyid ); /* set mark A for all selected user ids */ for( node=keyblock; node; node = node->next ) { if( select_all || (node->flag & NODFLG_SELUID) ) @@ -261,6 +269,7 @@ sign_uids( KBNODE keyblock, STRLIST locusr, int *ret_modified ) /* Ask whether we really should sign these user id(s) */ tty_printf("\n"); show_key_with_all_names( keyblock, 1, 1, 0, 0 ); + tty_printf("\n"); tty_printf(_( "Are you really sure that you want to sign this key\n" "with your key: \"")); @@ -287,7 +296,7 @@ sign_uids( KBNODE keyblock, STRLIST locusr, int *ret_modified ) rc = make_keysig_packet( &sig, primary_pk, node->pkt->pkt.user_id, NULL, - sk_rover->sk, + sk, 0x10, 0, NULL, NULL ); if( rc ) { log_error(_("signing failed: %s\n"), g10_errstr(rc)); @@ -311,6 +320,8 @@ sign_uids( KBNODE keyblock, STRLIST locusr, int *ret_modified ) leave: release_sk_list( sk_list ); + if( sk ) + free_secret_key(sk); return rc; } @@ -587,10 +598,13 @@ keyedit_menu( const char *username, STRLIST locusr ) break; } } - /* FIXME: UPDATE/INVALIDATE trustdb !! */ } else tty_printf(_("Key not changed so no update needed.\n")); + rc = update_trust_record( keyblock ); + if( rc ) + log_error(_("update of trust db failed: %s\n"), + g10_errstr(rc) ); goto leave; case cmdLIST: @@ -643,6 +657,14 @@ keyedit_menu( const char *username, STRLIST locusr ) if( menu_adduid( keyblock, sec_keyblock ) ) { redisplay = 1; sec_modified = modified = 1; + /* must update the trustdb already here, so that preferences + * get listed correctly */ + rc = update_trust_record( keyblock ); + if( rc ) { + log_error(_("update of trust db failed: %s\n"), + g10_errstr(rc) ); + rc = 0; + } } break; @@ -808,8 +830,10 @@ show_key_with_all_names( KBNODE keyblock, int only_marked, expirestr_from_pk(pk) ); if( node->pkt->pkttype == PKT_PUBLIC_KEY ) { tty_printf(" trust: %c/%c", otrust, trust ); - if( with_fpr ) + if( with_fpr ) { + tty_printf("\n"); show_fingerprint( pk ); + } } tty_printf("\n"); } @@ -933,7 +957,7 @@ menu_adduid( KBNODE pub_keyblock, KBNODE sec_keyblock ) pub_where = NULL; for( node = sec_keyblock; node; sec_where = node, node = node->next ) { if( node->pkt->pkttype == PKT_SECRET_KEY ) - sk = node->pkt->pkt.secret_key; + sk = copy_secret_key( NULL, node->pkt->pkt.secret_key); else if( node->pkt->pkttype == PKT_SECRET_SUBKEY ) break; } @@ -943,6 +967,7 @@ menu_adduid( KBNODE pub_keyblock, KBNODE sec_keyblock ) rc = make_keysig_packet( &sig, pk, uid, NULL, sk, 0x13, 0, keygen_add_std_prefs, sk ); + free_secret_key( sk ); if( rc ) { log_error("signing failed: %s\n", g10_errstr(rc) ); free_user_id(uid); diff --git a/g10/pkclist.c b/g10/pkclist.c index 272a861b7..0cccd2870 100644 --- a/g10/pkclist.c +++ b/g10/pkclist.c @@ -153,9 +153,7 @@ _("Could not find a valid trust path to the key. Let's see whether we\n" lid = pk->local_id; while( !(rc=enum_trust_web( &context, &lid )) ) { - rc = get_ownertrust( lid, &trust ); - if( rc ) - log_fatal("Ooops: couldn't get owner trust for %lu\n", lid); + trust = get_ownertrust( lid ); if( trust == TRUST_UNDEFINED || trust == TRUST_EXPIRED || trust == TRUST_UNKNOWN ) { if( edit_ownertrust( lid, 0 ) ) diff --git a/g10/tdbio.c b/g10/tdbio.c index ef29742fd..70cf4a1ba 100644 --- a/g10/tdbio.c +++ b/g10/tdbio.c @@ -369,10 +369,12 @@ tdbio_dump_record( TRUSTREC *rec, FILE *fp ) fprintf(fp, "rec %5lu, ", rnum ); switch( rec->rectype ) { - case 0: fprintf(fp, "free\n"); + case 0: fprintf(fp, "blank\n"); break; - case RECTYPE_VER: fprintf(fp, "version, keyhashtbl=%lu\n", - rec->r.ver.keyhashtbl ); + case RECTYPE_VER: fprintf(fp, "version, keyhashtbl=%lu, firstfree=%lu\n", + rec->r.ver.keyhashtbl, rec->r.ver.firstfree ); + break; + case RECTYPE_FREE: fprintf(fp, "free, next=%lu\n", rec->r.free.next ); break; case RECTYPE_DIR: fprintf(fp, "dir %lu, keys=%lu, uids=%lu, cach=%lu, ot=%02x", @@ -505,6 +507,7 @@ tdbio_read_record( ulong recnum, TRUSTREC *rec, int expected ) rec->r.ver.modified = buftoulong(p); p += 4; rec->r.ver.validated= buftoulong(p); p += 4; rec->r.ver.keyhashtbl=buftoulong(p); p += 4; + rec->r.ver.firstfree =buftoulong(p); p += 4; if( recnum ) { log_error_f( db_name, "version record with recnum %lu\n", (ulong)recnum ); @@ -516,6 +519,9 @@ tdbio_read_record( ulong recnum, TRUSTREC *rec, int expected ) rc = G10ERR_TRUSTDB; } break; + case RECTYPE_FREE: + rec->r.free.next = buftoulong(p); p += 4; + break; case RECTYPE_DIR: /*directory record */ rec->r.dir.lid = buftoulong(p); p += 4; rec->r.dir.keylist = buftoulong(p); p += 4; @@ -619,6 +625,11 @@ tdbio_write_record( TRUSTREC *rec ) ulongtobuf(p, rec->r.ver.modified); p += 4; ulongtobuf(p, rec->r.ver.validated); p += 4; ulongtobuf(p, rec->r.ver.keyhashtbl); p += 4; + ulongtobuf(p, rec->r.ver.firstfree ); p += 4; + break; + + case RECTYPE_FREE: + ulongtobuf(p, rec->r.free.next); p += 4; break; case RECTYPE_DIR: /*directory record */ @@ -707,11 +718,22 @@ tdbio_write_record( TRUSTREC *rec ) int tdbio_delete_record( ulong recnum ) { - TRUSTREC rec; + TRUSTREC vr, rec; + int rc; + + rc = tdbio_read_record( 0, &vr, RECTYPE_VER ); + if( rc ) + log_fatal_f( db_name, _("error reading version record: %s\n"), + g10_errstr(rc) ); rec.recnum = recnum; - rec.rectype = 0; - return tdbio_write_record( &rec ); + rec.rectype = RECTYPE_FREE; + rec.r.free.next = vr.r.ver.firstfree; + vr.r.ver.firstfree = recnum; + rc = tdbio_write_record( &rec ); + if( !rc ) + rc = tdbio_write_record( &vr ); + return rc; } /**************** @@ -722,25 +744,55 @@ tdbio_new_recnum() { off_t offset; ulong recnum; - TRUSTREC rec; + TRUSTREC vr, rec; int rc; - /* fixme: look for unused records */ - offset = lseek( db_fd, 0, SEEK_END ); - if( offset == -1 ) - log_fatal("trustdb: lseek to end failed: %s\n", strerror(errno) ); - recnum = offset / TRUST_RECORD_LEN; - assert(recnum); /* this is will never be the first record */ - - /* we must write a record, so that the next call to this function - * returns another recnum */ - memset( &rec, 0, sizeof rec ); - rec.rectype = 0; /* free record */ - rec.recnum = recnum; - rc = tdbio_write_record( &rec ); + /* look for unused records */ + rc = tdbio_read_record( 0, &vr, RECTYPE_VER ); if( rc ) - log_fatal_f(db_name,_("failed to append a record: %s\n"), - g10_errstr(rc)); + log_fatal_f( db_name, _("error reading version record: %s\n"), + g10_errstr(rc) ); + if( vr.r.ver.firstfree ) { + recnum = vr.r.ver.firstfree; + rc = tdbio_read_record( recnum, &rec, RECTYPE_FREE ); + if( rc ) { + log_error_f( db_name, _("error reading free record: %s\n"), + g10_errstr(rc) ); + return rc; + } + /* update dir record */ + vr.r.ver.firstfree = rec.r.free.next; + rc = tdbio_write_record( &vr ); + if( rc ) { + log_error_f( db_name, _("error writing dir record: %s\n"), + g10_errstr(rc) ); + return rc; + } + /*zero out the new record */ + memset( &rec, 0, sizeof rec ); + rec.rectype = 0; /* unused record */ + rec.recnum = recnum; + rc = tdbio_write_record( &rec ); + if( rc ) + log_fatal_f(db_name,_("failed to zero a record: %s\n"), + g10_errstr(rc)); + } + else { /* not found, append a new record */ + offset = lseek( db_fd, 0, SEEK_END ); + if( offset == -1 ) + log_fatal("trustdb: lseek to end failed: %s\n", strerror(errno) ); + recnum = offset / TRUST_RECORD_LEN; + assert(recnum); /* this is will never be the first record */ + /* we must write a record, so that the next call to this function + * returns another recnum */ + memset( &rec, 0, sizeof rec ); + rec.rectype = 0; /* unused record */ + rec.recnum = recnum; + rc = tdbio_write_record( &rec ); + if( rc ) + log_fatal_f(db_name,_("failed to append a record: %s\n"), + g10_errstr(rc)); + } return recnum ; } diff --git a/g10/tdbio.h b/g10/tdbio.h index 0cbb851f2..b59b4e40e 100644 --- a/g10/tdbio.h +++ b/g10/tdbio.h @@ -42,6 +42,7 @@ #define RECTYPE_CACH 9 #define RECTYPE_HTBL 10 #define RECTYPE_HLST 11 +#define RECTYPE_FREE 254 #define DIRF_CHECKED 1 /* everything has been checked, the other bits are @@ -58,9 +59,8 @@ struct trust_record { int rectype; - struct trust_record *next; /* help pointer to build lists in memory */ - struct trust_record *help_pref; int mark; + struct trust_record *next; /* help pointer to build lists in memory */ ulong recnum; union { struct { /* version record: */ @@ -69,7 +69,11 @@ struct trust_record { ulong modified; /* timestamp of last modification */ ulong validated; /* timestamp of last validation */ ulong keyhashtbl; + ulong firstfree; } ver; + struct { /* free record */ + ulong next; + } free; struct { /* directory record */ ulong lid; ulong keylist; /* List of keys (the first is the primary key)*/ diff --git a/g10/trustdb.c b/g10/trustdb.c index 702ce8e70..78b7b0aa0 100644 --- a/g10/trustdb.c +++ b/g10/trustdb.c @@ -77,6 +77,14 @@ typedef struct { } ENUM_TRUST_WEB_CONTEXT; +struct recno_list_struct { + struct recno_list_struct *next; + ulong recno; + int type; +}; +typedef struct recno_list_struct *RECNO_LIST; + + static int walk_sigrecs( SIGREC_CONTEXT *c, int create ); static LOCAL_ID_INFO *new_lid_table(void); @@ -105,11 +113,107 @@ static TRUST_SEG_LIST last_trust_web_tslist; #define HEXTOBIN(a) ( (a) >= '0' && (a) <= '9' ? ((a)-'0') : \ (a) >= 'A' && (a) <= 'F' ? ((a)-'A'+10) : ((a)-'a'+10)) + + + +/********************************************** + *********** record read write ************** + **********************************************/ + +static void +die_invalid_db() +{ + log_error(_( + "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n") ); + g10_exit(2); +} + +/**************** + * Read a record but die if it does not exist + */ +static void +read_record( ulong recno, TRUSTREC *rec, int rectype ) +{ + int rc = tdbio_read_record( recno, rec, rectype ); + if( !rc ) + return; + log_error("trust record %lu, req type %d: read failed: %s\n", + recno, rectype, g10_errstr(rc) ); + die_invalid_db(); +} + + +/**************** + * Wirte a record but die on error + */ +static void +write_record( TRUSTREC *rec ) +{ + int rc = tdbio_write_record( rec ); + if( !rc ) + return; + log_error("trust record %lu, type %d: write failed: %s\n", + rec->recnum, rec->rectype, g10_errstr(rc) ); + die_invalid_db(); +} + +/**************** + * Delete a record but die on error + */ +static void +delete_record( ulong recno ) +{ + int rc = tdbio_delete_record( recno ); + if( !rc ) + return; + log_error("trust record %lu: delete failed: %s\n", + recno, g10_errstr(rc) ); + die_invalid_db(); +} + + /********************************************** ************* list helpers ******************* **********************************************/ +/**************** + * Insert a new item into a recno list + */ +static void +ins_recno_list( RECNO_LIST *head, ulong recno, int type ) +{ + RECNO_LIST item = m_alloc( sizeof *item ); + + item->recno = recno; + item->type = type; + item->next = *head; + *head = item; +} + +static RECNO_LIST +qry_recno_list( RECNO_LIST list, ulong recno, int type ) +{ + for( ; list; list = list->next ) { + if( list->recno == recno && (!type || list->type == type) ) + return list; + } + return NULL; +} + + +static void +rel_recno_list( RECNO_LIST *head ) +{ + RECNO_LIST r, r2; + + for(r = *head; r; r = r2 ) { + r2 = r->next; + m_free(r); + } + *head = NULL; +} + static LOCAL_ID_INFO * new_lid_table(void) { @@ -263,12 +367,7 @@ walk_sigrecs( SIGREC_CONTEXT *c, int create ) r = &c->ctl.rec; if( !c->ctl.init_done ) { c->ctl.init_done = 1; - rc = tdbio_read_record( c->lid, r, RECTYPE_DIR ); - if( rc ) { - log_error("LID %lu: error reading dir record: %s\n", - c->lid, g10_errstr(rc)); - return rc; - } + read_record( c->lid, r, RECTYPE_DIR ); c->ctl.nextuid = r->r.dir.uidlist; /* force a read (what a bad bad hack) */ c->ctl.index = SIGS_PER_RECORD; @@ -280,13 +379,7 @@ walk_sigrecs( SIGREC_CONTEXT *c, int create ) if( c->ctl.index >= SIGS_PER_RECORD ) { /* read the record */ rnum = r->r.sig.next; if( !rnum && c->ctl.nextuid ) { /* read next uid record */ - rc = tdbio_read_record( c->ctl.nextuid, r, RECTYPE_UID ); - if( rc ) { - log_error("error reading next uidrec: %s\n", - g10_errstr(rc)); - c->ctl.eof = 1; - return rc; - } + read_record( c->ctl.nextuid, r, RECTYPE_UID ); if( !r->r.uid.siglist && create ) { rc = update_sigs_by_lid( c->lid ); if( rc ) { @@ -299,12 +392,7 @@ walk_sigrecs( SIGREC_CONTEXT *c, int create ) c->ctl.eof = 1; return rc; } - rc = tdbio_read_record( c->ctl.nextuid, r, RECTYPE_UID ); - if( rc ) { - log_error("LID %lu: error re-reading uid record: %s\n", - c->lid, g10_errstr(rc)); - return rc; - } + read_record( c->ctl.nextuid, r, RECTYPE_UID ); } c->ctl.nextuid = r->r.uid.next; rnum = r->r.uid.siglist; @@ -313,16 +401,11 @@ walk_sigrecs( SIGREC_CONTEXT *c, int create ) c->ctl.eof = 1; return -1; /* return eof */ } - rc = tdbio_read_record( rnum, r, RECTYPE_SIG ); - if( rc ) { - log_error(_("error reading sigrec: %s\n"), g10_errstr(rc)); - c->ctl.eof = 1; - return rc; - } + read_record( rnum, r, RECTYPE_SIG ); if( r->r.sig.lid != c->lid ) { log_error(_("chained sigrec %lu has a wrong owner\n"), rnum ); c->ctl.eof = 1; - return G10ERR_TRUSTDB; + die_invalid_db(); } c->ctl.index = 0; } @@ -694,14 +777,11 @@ find_urec( TRUSTREC *dir, PKT_user_id *uid, TRUSTREC *urec ) { byte nhash[20]; ulong recno; - int rc; assert(dir->rectype == RECTYPE_DIR ); rmd160_hash_buffer( nhash, uid->name, uid->len ); for( recno=dir->r.dir.uidlist; recno; recno = urec->r.uid.next ) { - rc = tdbio_read_record( recno, urec, RECTYPE_UID ); - if( rc ) - return rc == -1 ? G10ERR_READ_FILE : rc; + read_record( recno, urec, RECTYPE_UID ); if( !memcmp( nhash, urec->r.uid.namehash, 20 ) ) return 0; } @@ -770,7 +850,6 @@ no_selfsig_del( ulong lid, u32 *keyid, TRUSTREC *urec ) static int write_sigs_from_urec( ulong lid, u32 *keyid, TRUSTREC *urec ) { - int rc; TRUSTREC *rec, srec; ulong nextrecno; ulong recno; @@ -780,12 +859,7 @@ write_sigs_from_urec( ulong lid, u32 *keyid, TRUSTREC *urec ) for( rec = urec->next; rec; rec = rec->next ) { assert( rec->rectype == RECTYPE_SIG ); if( nextrecno ) { /* read the sig record, so it can be reused */ - rc = tdbio_read_record( nextrecno, &srec, RECTYPE_SIG ); - if( rc ) { - log_error("write_sig_from_urec: read sigrecno %lu failed: %s\n", - nextrecno, g10_errstr(rc) ); - return rc; - } + read_record( nextrecno, &srec, RECTYPE_SIG ); recno = nextrecno; nextrecno = srec.r.sig.next; } @@ -798,41 +872,20 @@ write_sigs_from_urec( ulong lid, u32 *keyid, TRUSTREC *urec ) rec->r.sig.lid = lid; /* and write */ rec->recnum = recno; - rc = tdbio_write_record( rec ); - if( rc ) { - log_error("write_sig_from_urec: write sigrecno %lu failed: %s\n", - recno, g10_errstr(rc) ); - return rc; - } + write_record( rec ); } /* write the urec back */ - rc = tdbio_write_record( urec ); - if( rc ) { - log_error("write_sig_from_urec: write urec %lu failed: %s\n", - urec->recnum, g10_errstr(rc) ); - return rc; - } + write_record( urec ); /* delete remaining old sigrecords */ while( nextrecno ) { - rc = tdbio_read_record( nextrecno, &srec, RECTYPE_SIG ); - if( rc ) { - log_error("write_sig_from_urec: read sigrecno %lu failed: %s\n", - nextrecno, g10_errstr(rc) ); - return rc; - } - rc = tdbio_delete_record( nextrecno ); - if( rc ) { - log_error("write_sig_from_urec: delete old %lu failed: %s\n", - nextrecno, g10_errstr(rc) ); - return rc; - - } + read_record( nextrecno, &srec, RECTYPE_SIG ); + delete_record( nextrecno ); nextrecno = srec.r.sig.next; } - return rc; + return 0; } /**************** @@ -856,10 +909,7 @@ update_sigs( TRUSTREC *dir ) if( DBG_TRUST ) log_debug("update_sigs for %lu\n", lid ); - if( (rc=tdbio_read_record( dir->r.dir.keylist, &krec, RECTYPE_KEY )) ) { - log_error("update_sigs: can't read primary key for %lu\n", lid); - goto leave; - } + read_record( dir->r.dir.keylist, &krec, RECTYPE_KEY ); rc = get_keyblock_byfprint( &keyblock, krec.r.key.fingerprint, krec.r.key.fingerprint_len ); if( rc ) { @@ -978,11 +1028,7 @@ update_sigs( TRUSTREC *dir ) dir->r.dir.dirflags |= DIRF_MISKEY; else dir->r.dir.dirflags &= ~DIRF_MISKEY; - rc = tdbio_write_record( dir ); - if( rc ) { - log_error("update_sigs: write dir record failed: %s\n", g10_errstr(rc)); - return rc; - } + write_record( dir ); leave: /* fixme: need more cleanup in case of an error */ @@ -999,12 +1045,7 @@ update_sigs_by_lid( ulong lid ) int rc; TRUSTREC rec; - rc = tdbio_read_record( lid, &rec, RECTYPE_DIR ); - if( rc ) { - log_error("LID %lu: error reading dir record: %s\n", - lid, g10_errstr(rc)); - return rc; - } + read_record( lid, &rec, RECTYPE_DIR ); if( !(rec.r.dir.dirflags & DIRF_CHECKED) ) rc = update_sigs( &rec ); return rc; @@ -1072,7 +1113,7 @@ make_tsl( ulong lid, TRUST_SEG_LIST *ret_tslist ) static int propagate_trust( TRUST_SEG_LIST tslist ) { - int i, rc; + int i; unsigned trust, tr; TRUST_SEG_LIST tsl; @@ -1089,9 +1130,7 @@ propagate_trust( TRUST_SEG_LIST tslist ) tsl->seg[i].trust = trust; if( i > 0 ) { /* get the trust of this pubkey */ - rc = get_ownertrust( tsl->seg[i].lid, &tr ); - if( rc ) - return rc; + tr = get_ownertrust( tsl->seg[i].lid ); if( tr < trust ) trust = tr; } @@ -1395,10 +1434,7 @@ import_ownertrust( const char *fname ) log_info("LID %lu: setting trust to %u\n", rec.r.dir.lid, otrust ); rec.r.dir.ownertrust = otrust; - rc = tdbio_write_record( &rec ); - if( rc ) - log_error_f(fname, "error updating otrust: %s\n", - g10_errstr(rc)); + write_record( &rec ); } else if( rc == -1 ) { /* not found; get the key from the ring */ PKT_public_key *pk = m_alloc_clear( sizeof *pk ); @@ -1608,10 +1644,7 @@ check_trust( PKT_public_key *pk, unsigned *r_trustlevel ) /* get the pubkey record */ if( pk->local_id ) { - if( tdbio_read_record( pk->local_id, &rec, RECTYPE_DIR ) ) { - log_error("check_trust: read dir record failed\n"); - return G10ERR_TRUSTDB; - } + read_record( pk->local_id, &rec, RECTYPE_DIR ); } else { /* no local_id: scan the trustdb */ if( (rc=tdbio_search_dir_bypk( pk, &rec )) && rc != -1 ) { @@ -1629,10 +1662,7 @@ check_trust( PKT_public_key *pk, unsigned *r_trustlevel ) log_info(_("key %08lX.%lu: inserted into trustdb\n"), (ulong)keyid[1], pk->local_id ); /* and re-read the dir record */ - if( tdbio_read_record( pk->local_id, &rec, RECTYPE_DIR ) ) { - log_error("check_trust: reread dir record failed\n"); - return G10ERR_TRUSTDB; - } + read_record( pk->local_id, &rec, RECTYPE_DIR ); } } cur_time = make_timestamp(); @@ -1762,18 +1792,13 @@ enum_trust_web( void **context, ulong *lid ) /**************** * Return the assigned ownertrust value for the given LID */ -int -get_ownertrust( ulong lid, unsigned *r_otrust ) +unsigned +get_ownertrust( ulong lid ) { TRUSTREC rec; - if( tdbio_read_record( lid, &rec, RECTYPE_DIR ) ) { - log_error("get_ownertrust: read dir record failed\n"); - return G10ERR_TRUSTDB; - } - if( r_otrust ) - *r_otrust = rec.r.dir.ownertrust; - return 0; + read_record( lid, &rec, RECTYPE_DIR ); + return rec.r.dir.ownertrust; } int @@ -1782,8 +1807,7 @@ get_ownertrust_info( ulong lid ) unsigned otrust; int c; - if( get_ownertrust( lid, &otrust ) ) - return '?'; + otrust = get_ownertrust( lid ); switch( (otrust & TRUST_MASK) ) { case TRUST_NEVER: c = 'n'; break; case TRUST_MARGINAL: c = 'm'; break; @@ -1800,30 +1824,15 @@ get_pref_data( ulong lid, const byte *namehash, size_t *ret_n ) { TRUSTREC rec; ulong recno; - int rc; - - if( tdbio_read_record( lid, &rec, RECTYPE_DIR ) ) { - log_error("get_pref_data: read dir record failed\n"); - return NULL; - } + read_record( lid, &rec, RECTYPE_DIR ); for( recno=rec.r.dir.uidlist; recno; recno = rec.r.uid.next ) { - rc = tdbio_read_record( recno, &rec, RECTYPE_UID ); - if( rc ) { - log_error("get_pref_data: read uid record failed: %s\n", - g10_errstr(rc)); - return NULL; - } + read_record( recno, &rec, RECTYPE_UID ); if( rec.r.uid.prefrec && ( !namehash || !memcmp(namehash, rec.r.uid.namehash, 20) )) { byte *buf; /* found the correct one or the first one */ - rc = tdbio_read_record( rec.r.uid.prefrec, &rec, RECTYPE_PREF ); - if( rc ) { - log_error("get_pref_data: read pref record failed: %s\n", - g10_errstr(rc)); - return NULL; - } + read_record( rec.r.uid.prefrec, &rec, RECTYPE_PREF ); if( rec.r.pref.next ) log_info("warning: can't yet handle long pref records\n"); buf = m_alloc( ITEMS_PER_PREF_RECORD ); @@ -1845,28 +1854,14 @@ is_algo_in_prefs( ulong lid, int preftype, int algo ) { TRUSTREC rec; ulong recno; - int i, rc; + int i; byte *pref; - if( tdbio_read_record( lid, &rec, RECTYPE_DIR ) ) { - log_error("is_algo_in_prefs: read dir record failed\n"); - return 0; - } - + read_record( lid, &rec, RECTYPE_DIR ); for( recno=rec.r.dir.uidlist; recno; recno = rec.r.uid.next ) { - rc = tdbio_read_record( recno, &rec, RECTYPE_UID ); - if( rc ) { - log_error("is_algo_in_prefs: read uid record failed: %s\n", - g10_errstr(rc)); - return 0; - } + read_record( recno, &rec, RECTYPE_UID ); if( rec.r.uid.prefrec ) { - rc = tdbio_read_record( rec.r.uid.prefrec, &rec, RECTYPE_PREF ); - if( rc ) { - log_error("is_algo_in_prefs: read pref record failed: %s\n", - g10_errstr(rc)); - return 0; - } + read_record( rec.r.uid.prefrec, &rec, RECTYPE_PREF ); if( rec.r.pref.next ) log_info("warning: can't yet handle long pref records\n"); pref = rec.r.pref.data; @@ -1886,10 +1881,7 @@ get_dir_record( PKT_public_key *pk, TRUSTREC *rec ) int rc=0; if( pk->local_id ) { - if( tdbio_read_record( pk->local_id, rec, RECTYPE_DIR ) ) { - log_error("get_dir_record: read record failed\n"); - rc = G10ERR_TRUSTDB; - } + read_record( pk->local_id, rec, RECTYPE_DIR ); } else { /* no local_id: scan the trustdb */ if( (rc=tdbio_search_dir_bypk( pk, rec )) && rc != -1 ) @@ -1931,12 +1923,7 @@ clear_trust_checked_flag( PKT_public_key *pk ) /* reset the flag */ rec.r.dir.dirflags &= ~DIRF_CHECKED; - rc = tdbio_write_record( &rec ); - if( rc ) { - log_error("clear_trust_checked_flag: write dir record failed: %s\n", - g10_errstr(rc)); - return rc; - } + write_record( &rec ); return 0; } @@ -1945,7 +1932,6 @@ clear_trust_checked_flag( PKT_public_key *pk ) /**************** * Update all the info from the public keyblock, the signatures-checked * flag is reset. The key must already exist in the keydb. - * Note: This function clears all keyblock flags. * * Implementation of this function needs a cache for tdbio record updates */ @@ -1955,55 +1941,59 @@ update_trust_record( KBNODE keyblock ) PKT_public_key *primary_pk; KBNODE node; TRUSTREC drec; + TRUSTREC krec; + TRUSTREC prec; + TRUSTREC urec; + TRUSTREC helprec; int modified = 0; int rc = 0; - ulong recno, newrecno; + u32 keyid[2]; /* keyid of primary key */ + ulong recno, newrecno, lastrecno; + ulong uidrecno = 0; + byte uidhash[20]; + RECNO_LIST recno_list = NULL; /* list of verified records */ - clear_kbnode_flags( keyblock ); node = find_kbnode( keyblock, PKT_PUBLIC_KEY ); primary_pk = node->pkt->pkt.public_key; rc = get_dir_record( primary_pk, &drec ); if( rc ) return rc; -#if 0 + + keyid_from_pk( primary_pk, keyid ); + /* fixme: start a transaction */ - /* now upate keys and user ids */ + /* now update keys and user ids */ for( node=keyblock; node; node = node->next ) { if( node->pkt->pkttype == PKT_PUBLIC_KEY || node->pkt->pkttype == PKT_PUBLIC_SUBKEY ) { PKT_public_key *pk = node->pkt->pkt.public_key; byte fpr[MAX_FINGERPRINT_LEN]; size_t fprlen; - TRUSTREC krec; + + uidrecno = 0; fingerprint_from_pk( pk, fpr, &fprlen ); /* do we already have this key? */ for( recno=drec.r.dir.keylist; recno; recno = krec.r.key.next ) { - rc = tdbio_read_record( recno, &krec, RECTYPE_KEY ); - if( rc ) { - log_error("lid %lu: read key record failed: %s\n", - primary_pk->local_id, g10_errstr(rc)); - goto leave; - } + read_record( recno, &krec, RECTYPE_KEY ); if( krec.r.key.fingerprint_len == fprlen - && !memcmp( krec.r.key.fingerprint_len, fpr, fprlen ) ) + && !memcmp( krec.r.key.fingerprint, fpr, fprlen ) ) break; } if( recno ) { /* yes */ + ins_recno_list( &recno_list, recno, RECTYPE_KEY ); /* here we would compare/update the keyflags */ } else { /* no: insert this new key */ - memset( krec, 0, sizeof(krec) ); + memset( &krec, 0, sizeof(krec) ); krec.rectype = RECTYPE_KEY; + krec.r.key.lid = drec.recnum; krec.r.key.pubkey_algo = pk->pubkey_algo; krec.r.key.fingerprint_len = fprlen; memcpy(krec.r.key.fingerprint, fpr, fprlen ); krec.recnum = newrecno = tdbio_new_recnum(); - if( tdbio_write_record( krec ) ) { - log_error("writing key record failed\n"); - rc = G10ERR_TRUSTDB; - goto leave; - } + write_record( &krec ); + ins_recno_list( &recno_list, newrecno, RECTYPE_KEY ); /* and put this new record at the end of the keylist */ if( !(recno=drec.r.dir.keylist) ) { /* this is the first key */ @@ -2011,45 +2001,49 @@ update_trust_record( KBNODE keyblock ) modified = 1; } else { /* we already have key, append it to the list */ - for( ; recno; recno = krec.r.key.next ) { - rc = tdbio_read_record( recno, &krec, RECTYPE_KEY ); - if( rc ) { - log_error("lid %lu: read key record failed: %s\n", - primary_pk->local_id, g10_errstr(rc)); - goto leave; - } - } + for( ; recno; recno = krec.r.key.next ) + read_record( recno, &krec, RECTYPE_KEY ); krec.r.key.next = newrecno; - if( tdbio_write_record( krec ) ) { - log_error("writing key record failed\n"); - rc = G10ERR_TRUSTDB; - goto leave; - } + write_record( &krec ); } } /* end insert new key */ } /* end packet type public key packet */ else if( node->pkt->pkttype == PKT_USER_ID ) { PKT_user_id *uid = node->pkt->pkt.user_id; TRUSTREC urec; - byte nhash[20]; - rmd160_hash_buffer( nhash, uid->name, uid->len ); - for( recno=dir->r.dir.uidlist; recno; recno = urec->r.uid.next ) { - rc = tdbio_read_record( recno, urec, RECTYPE_UID ); - if( rc ) { - if( rc == -1 ) - rc = G10ERR_READ_FILE - log_error("lid %lu, uid %02X%02X: read error\n" - primary_pk->local_id, nhash[18], nhash[19] ); - goto leave; - } - if( !memcmp( nhash, urec->r.uid.namehash, 20 ) ) + rmd160_hash_buffer( uidhash, uid->name, uid->len ); + for( recno=drec.r.dir.uidlist; recno; recno = urec.r.uid.next ) { + read_record( recno, &urec, RECTYPE_UID ); + if( !memcmp( uidhash, urec.r.uid.namehash, 20 ) ) break; } - if( !recno ) { /* new user id */ - + if( recno ) { + ins_recno_list( &recno_list, recno, RECTYPE_UID ); + uidrecno = recno; + } + else { /* new user id */ + memset( &urec, 0 , sizeof(urec) ); + urec.rectype = RECTYPE_UID; + urec.r.uid.lid = drec.recnum; + memcpy(urec.r.uid.namehash, uidhash, 20 ); + urec.recnum = newrecno = tdbio_new_recnum(); + write_record( &urec ); + ins_recno_list( &recno_list, newrecno, RECTYPE_UID ); + /* and put this new record at the end of the uidlist */ + if( !(recno=drec.r.dir.uidlist) ) { + /* this is the first uid */ + drec.r.dir.uidlist = newrecno; + modified = 1; + } + else { /* we already have an uid, append it to the list */ + for( ; recno; recno = urec.r.key.next ) + read_record( recno, &urec, RECTYPE_UID ); + urec.r.uid.next = newrecno; + write_record( &urec ); + } + uidrecno = newrecno; } - } else if( node->pkt->pkttype == PKT_SIGNATURE ) { PKT_signature *sig = node->pkt->pkt.signature; @@ -2059,15 +2053,14 @@ update_trust_record( KBNODE keyblock ) /* must verify this selfsignature here, so that we can * build the preference record and validate the uid record */ - if( !uidlist ) { + if( !uidrecno ) { log_error("key %08lX: self-signature without user id\n", (ulong)keyid[1] ); } else if( (rc = check_key_signature( keyblock, node, NULL ))) { log_error("key %08lX, uid %02X%02X: " - "invalid self-signature: %s\n", - (ulong)keyid[1], uidlist->r.uid.namehash[18], - uidlist->r.uid.namehash[19], g10_errstr(rc) ); + "invalid self-signature: %s\n", (ulong)keyid[1], + uidhash[18], uidhash[19], g10_errstr(rc) ); rc = 0; } else { /* build the prefrecord */ @@ -2083,28 +2076,59 @@ update_trust_record( KBNODE keyblock ) const byte *s; size_t n; int k, i; - assert(uidlist); - assert(!uidlist->help_pref); - uidlist->mark |= 1; /* mark valid */ + ulong recno_tbl[10]; + int recno_idx = 0; + read_record( uidrecno, &urec, RECTYPE_UID ); + + /* first delete all pref records */ + for(recno=urec.r.uid.prefrec ; recno; + recno = prec.r.pref.next ) { + read_record( recno, &prec, RECTYPE_PREF ); + delete_record( recno ); + } + + /* and write the new ones */ i = 0; for(k=0; prefs[k].subpkttype; k++ ) { s = parse_sig_subpkt2( sig, prefs[k].subpkttype, &n ); if( s ) { while( n ) { if( !i || i >= ITEMS_PER_PREF_RECORD ) { - rec = m_alloc_clear( sizeof *rec ); - rec->rectype = RECTYPE_PREF; - rec->next = uidlist->help_pref; - uidlist->help_pref = rec; + if( recno_idx >= DIM(recno_tbl)-1 ) { + log_info("too many preferences\n"); + break; + } + if( i ) { + recno_tbl[recno_idx]=tdbio_new_recnum(); + prec.recnum = recno_tbl[recno_idx++]; + write_record( &prec ); + } + memset( &prec, 0, sizeof prec ); + prec.rectype = RECTYPE_PREF; + prec.r.pref.lid = drec.recnum; i = 0; } - rec->r.pref.data[i++] = prefs[k].preftype; - rec->r.pref.data[i++] = *s++; + prec.r.pref.data[i++] = prefs[k].preftype; + prec.r.pref.data[i++] = *s++; n--; } } } + if( i ) { /* write the last one */ + recno_tbl[recno_idx]=tdbio_new_recnum(); + prec.recnum = recno_tbl[recno_idx++]; + write_record( &prec ); + } + /* now link them together */ + for(i=0; i < recno_idx-1; i++ ) { + read_record( recno_tbl[i], &prec, RECTYPE_PREF ); + prec.r.pref.next = recno_tbl[i+1]; + write_record( &prec ); + } + /* don't need to write the last one, but update the uid */ + urec.r.uid.prefrec = recno_idx? recno_tbl[0] : 0; + write_record( &urec ); } } else if( 0 /* is revocation sig etc */ ) { @@ -2115,44 +2139,67 @@ update_trust_record( KBNODE keyblock ) } } /* end loop over all nodes */ - if( drec.r.dir.dirflags & DIRF_CHECKED ) /* <<--- FIXME: remove this! */ - modified = 1; - leave: + /* now delete keyrecords from the trustdb which are not anymore used */ + lastrecno = 0; + for( recno=drec.r.dir.keylist; recno; recno = krec.r.key.next ) { + read_record( recno, &krec, RECTYPE_KEY ); + if( !qry_recno_list( recno_list, recno, RECTYPE_KEY ) ) { + /* delete this one */ + if( !lastrecno ) { + drec.r.dir.keylist = krec.r.key.next; + modified = 1; + } + else { + read_record( lastrecno, &helprec, RECTYPE_KEY ); + helprec.r.key.next = krec.r.key.next; + write_record( &helprec ); + } + delete_record( recno ); + } + else + lastrecno = recno; + } + /* now delete uid records and their pref records from the + * trustdb which are not anymore used */ + lastrecno = 0; + for( recno=drec.r.dir.uidlist; recno; recno = urec.r.uid.next ) { + read_record( recno, &urec, RECTYPE_UID ); + if( !qry_recno_list( recno_list, recno, RECTYPE_UID ) ) { + ulong r2; + /* delete this one */ + if( !lastrecno ) { + drec.r.dir.uidlist = urec.r.uid.next; + modified = 1; + } + else { + read_record( lastrecno, &helprec, RECTYPE_UID ); + helprec.r.uid.next = urec.r.uid.next; + write_record( &helprec ); + } + for(r2=urec.r.uid.prefrec ; r2; r2 = prec.r.pref.next ) { + read_record( r2, &prec, RECTYPE_PREF ); + delete_record( r2 ); + } + delete_record( recno ); + } + else + lastrecno = recno; + } + + + if( rc ) ; /* fixme: cancel transaction */ else if( modified ) { - /* reset the checked flag */ - drec.r.dir.dirflags &= ~DIRF_CHECKED; - rc = tdbio_write_record( &drec ); - if( rc ) - log_error("update_trust_record: write dir record failed: %s\n", - g10_errstr(rc)); + drec.r.dir.dirflags &= ~DIRF_CHECKED; /* reset flag */ + write_record( &drec ); /* fixme: commit_transaction */ } -#endif + rel_recno_list( &recno_list ); return rc; } -/**************** - * helper function for insert_trust_record() - */ -static void -rel_mem_uidnode( u32 *keyid, int err, TRUSTREC *rec ) -{ - TRUSTREC *r, *r2; - - if( err ) - log_error("key %08lX, uid %02X%02X: invalid user id - removed\n", - (ulong)keyid[1], rec->r.uid.namehash[18], rec->r.uid.namehash[19] ); - for(r=rec->help_pref; r; r = r2 ) { - r2 = r->next; - m_free(r); - } - - m_free(rec); -} - /**************** * Insert a trust record into the TrustDB @@ -2160,36 +2207,22 @@ rel_mem_uidnode( u32 *keyid, int err, TRUSTREC *rec ) * * We build everything we can do at this point. We cannot build * the sig records, because their LIDs are needed and we may not have them. - * - * - * FIXME: This is too complicated: Most of the stuff is duplicated in - * update_trustdb and it will be easier to use a trust record cache instead - * of the complicated lists. */ int -insert_trust_record( PKT_public_key *orig_pk ) +insert_trust_record( PKT_public_key *pk ) { - TRUSTREC dirrec, *rec, *rec2; - TRUSTREC *keylist_head, **keylist_tail, *keylist; - TRUSTREC *uidlist_head, **uidlist_tail, *uidlist; + TRUSTREC dirrec; KBNODE keyblock = NULL; KBNODE node; - u32 keyid[2]; /* of primary key */ byte *fingerprint; size_t fingerlen; int rc = 0; - keylist_head = NULL; keylist_tail = &keylist_head; keylist = NULL; - uidlist_head = NULL; uidlist_tail = &uidlist_head; uidlist = NULL; - /* prepare dir record */ - memset( &dirrec, 0, sizeof dirrec ); - dirrec.rectype = RECTYPE_DIR; + if( pk->local_id ) + log_bug("pk->local_id=%lu\n", pk->local_id ); - if( orig_pk->local_id ) - log_bug("pk->local_id=%lu\n", (ulong)orig_pk->local_id ); - - fingerprint = fingerprint_from_pk( orig_pk, NULL, &fingerlen ); + fingerprint = fingerprint_from_pk( pk, NULL, &fingerlen ); /* fixme: assert that we do not have this record. * we can do this by searching for the primary keyid @@ -2203,185 +2236,14 @@ insert_trust_record( PKT_public_key *orig_pk ) goto leave; } - /* build data structure as linked lists in memory */ - keyid[0] = keyid[1] = 0; - for( node=keyblock; node; node = node->next ) { - if( node->pkt->pkttype == PKT_PUBLIC_KEY - || node->pkt->pkttype == PKT_PUBLIC_SUBKEY ) { - PKT_public_key *pk = node->pkt->pkt.public_key; - - if( node->pkt->pkttype == PKT_PUBLIC_KEY ) { - if( keylist_head ) - BUG(); /* more than one primary key */ - keyid_from_pk( pk, keyid ); - } - fingerprint = fingerprint_from_pk( pk, NULL, &fingerlen ); - rec = m_alloc_clear( sizeof *rec ); - rec->rectype = RECTYPE_KEY; - rec->r.key.pubkey_algo = pk->pubkey_algo; - rec->r.key.fingerprint_len = fingerlen; - memcpy(rec->r.key.fingerprint, fingerprint, fingerlen ); - - *keylist_tail = rec; keylist_tail = &rec->next; - } - else if( node->pkt->pkttype == PKT_USER_ID ) { - PKT_user_id *uid = node->pkt->pkt.user_id; - - rec = m_alloc_clear( sizeof *rec ); - rec->rectype = RECTYPE_UID; - rmd160_hash_buffer( rec->r.uid.namehash, uid->name, uid->len ); - - uidlist = rec; - *uidlist_tail = rec; uidlist_tail = &rec->next; - } - else if( node->pkt->pkttype == PKT_SIGNATURE ) { - PKT_signature *sig = node->pkt->pkt.signature; - - if( keyid[0] == sig->keyid[0] && keyid[1] == sig->keyid[1] - && (node->pkt->pkt.signature->sig_class&~3) == 0x10 ) { - /* must verify this selfsignature here, so that we can - * build the preference record and validate the uid record - */ - if( !uidlist ) { - log_error("key %08lX: self-signature without user id\n", - (ulong)keyid[1] ); - } - else if( (rc = check_key_signature( keyblock, node, NULL ))) { - log_error("key %08lX, uid %02X%02X: " - "invalid self-signature: %s\n", - (ulong)keyid[1], uidlist->r.uid.namehash[18], - uidlist->r.uid.namehash[19], g10_errstr(rc) ); - rc = 0; - } - else { /* build the prefrecord */ - static struct { - sigsubpkttype_t subpkttype; - int preftype; - } prefs[] = { - { SIGSUBPKT_PREF_SYM, PREFTYPE_SYM }, - { SIGSUBPKT_PREF_HASH, PREFTYPE_HASH }, - { SIGSUBPKT_PREF_COMPR, PREFTYPE_COMPR }, - { 0, 0 } - }; - const byte *s; - size_t n; - int k, i; - assert(uidlist); - assert(!uidlist->help_pref); - uidlist->mark |= 1; /* mark valid */ - - i = 0; - for(k=0; prefs[k].subpkttype; k++ ) { - s = parse_sig_subpkt2( sig, prefs[k].subpkttype, &n ); - if( s ) { - while( n ) { - if( !i || i >= ITEMS_PER_PREF_RECORD ) { - rec = m_alloc_clear( sizeof *rec ); - rec->rectype = RECTYPE_PREF; - rec->next = uidlist->help_pref; - uidlist->help_pref = rec; - i = 0; - } - rec->r.pref.data[i++] = prefs[k].preftype; - rec->r.pref.data[i++] = *s++; - n--; - } - } - } - } - } - else if( 0 /* is revocation sig etc */ ) { - /* handle it here */ - } - else { /* not a selfsignature */ - } - } - } - - /* delete all invalid marked userids and their preferences and sigs */ - /* (ugly code - I know) */ - while( (rec=uidlist_head) && !(rec->mark & 1) ) { - uidlist_head = rec->next; - rel_mem_uidnode(keyid, 1, rec); - } - for( ; rec; rec = rec->next ) { - if( rec->next && !(rec->next->mark & 1) ) { - TRUSTREC *r = rec->next; - rec->next = r->next; - rel_mem_uidnode(keyid, 1, r); - } - } - - /* check that we have at least one userid */ - if( !uidlist_head ) { - log_error("key %08lX: no user ids - rejected\n", (ulong)keyid[1] ); - rc = G10ERR_BAD_CERT; - goto leave; - } - - /* insert the record numbers to build the real (on disk) list */ - /* fixme: should start a transaction here */ + memset( &dirrec, 0, sizeof dirrec ); + dirrec.rectype = RECTYPE_DIR; dirrec.recnum = tdbio_new_recnum(); dirrec.r.dir.lid = dirrec.recnum; - /* (list of keys) */ - for(rec=keylist_head; rec; rec = rec->next ) { - rec->r.key.lid = dirrec.recnum; - rec->recnum = tdbio_new_recnum(); - } - for(rec=keylist_head; rec; rec = rec->next ) - rec->r.key.next = rec->next? rec->next->recnum : 0; - dirrec.r.dir.keylist = keylist_head->recnum; - /* (list of user ids) */ - for(rec=uidlist_head; rec; rec = rec->next ) { - rec->r.uid.lid = dirrec.recnum; - rec->recnum = tdbio_new_recnum(); - /* (preference records) */ - if( rec->help_pref ) { - for( rec2 = rec->help_pref; rec2; rec2 = rec2->next ) { - rec2->r.pref.lid = dirrec.recnum; - rec2->recnum = tdbio_new_recnum(); - } - for( rec2 = rec->help_pref; rec2->next; rec2 = rec2->next ) - rec2->next->r.pref.next = rec2->recnum; - rec->r.uid.prefrec = rec2->recnum; - } - } - for(rec=uidlist_head; rec; rec = rec->next ) - rec->r.uid.next = rec->next? rec->next->recnum : 0; - dirrec.r.dir.uidlist = uidlist_head->recnum; + write_record( &dirrec ); - /* write all records */ - for(rec=keylist_head; rec; rec = rec->next ) { - assert( rec->rectype == RECTYPE_KEY ); - if( tdbio_write_record( rec ) ) { - log_error("writing key record failed\n"); - rc = G10ERR_TRUSTDB; - goto leave; - } - } - for(rec=uidlist_head; rec; rec = rec->next ) { - assert( rec->rectype == RECTYPE_UID ); - if( tdbio_write_record( rec ) ) { - log_error("writing uid record failed\n"); - rc = G10ERR_TRUSTDB; - goto leave; - } - for( rec2=rec->help_pref; rec2; rec2 = rec2->next ) { - assert( rec2->rectype == RECTYPE_PREF ); - if( tdbio_write_record( rec2 ) ) { - log_error("writing pref record failed\n"); - rc = G10ERR_TRUSTDB; - goto leave; - } - } - } - if( tdbio_write_record( &dirrec ) ) { - log_error("writing dir record failed\n"); - return G10ERR_TRUSTDB; - } - - /* and store the LID */ - orig_pk->local_id = dirrec.r.dir.lid; + /* store the LID */ + pk->local_id = dirrec.r.dir.lid; for( node=keyblock; node; node = node->next ) { if( node->pkt->pkttype == PKT_PUBLIC_KEY || node->pkt->pkttype == PKT_PUBLIC_SUBKEY ) { @@ -2394,17 +2256,13 @@ insert_trust_record( PKT_public_key *orig_pk ) } } + /* and put all the other stuff into the keydb */ + rc = update_trust_record( keyblock ); + leave: - for(rec=uidlist_head; rec; rec = rec2 ) { - rec2 = rec->next; - rel_mem_uidnode(NULL, 0, rec ); - } - for(rec=keylist_head; rec; rec = rec2 ) { - rec2 = rec->next; - m_free(rec); - } - + m_free(fingerprint); + release_kbnode( keyblock ); return rc; } @@ -2414,15 +2272,9 @@ update_ownertrust( ulong lid, unsigned new_trust ) { TRUSTREC rec; - if( tdbio_read_record( lid, &rec, RECTYPE_DIR ) ) { - log_error("update_ownertrust: read dir failed\n"); - return G10ERR_TRUSTDB; - } + read_record( lid, &rec, RECTYPE_DIR ); rec.r.dir.ownertrust = new_trust; - if( tdbio_write_record( &rec ) ) { - log_error("update_ownertrust: write failed\n"); - return G10ERR_TRUSTDB; - } + write_record( &rec ); return 0; } diff --git a/g10/trustdb.h b/g10/trustdb.h index 5c098d646..db2743fbf 100644 --- a/g10/trustdb.h +++ b/g10/trustdb.h @@ -50,7 +50,7 @@ int init_trustdb( int level, const char *dbname ); int check_trust( PKT_public_key *pk, unsigned *r_trustlevel ); int query_trust_info( PKT_public_key *pk ); int enum_trust_web( void **context, ulong *lid ); -int get_ownertrust( ulong lid, unsigned *r_otrust ); +unsigned get_ownertrust( ulong lid ); int get_ownertrust_info( ulong lid ); byte *get_pref_data( ulong lid, const byte *namehash, size_t *ret_n ); int is_algo_in_prefs( ulong lid, int preftype, int algo ); diff --git a/po/ChangeLog b/po/ChangeLog index a09a806ae..f72651fc9 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,7 @@ +Wed Oct 7 13:12:00 1998 Werner Koch (wk@isil.d.shuttle.de) + + * Makefile.in.in: Fixed mkinstalldirs problems + Mon Sep 21 15:03:44 1998 Werner Koch (wk@(none)) * it.po: New version from Marco d'Itri diff --git a/po/Makefile.in.in b/po/Makefile.in.in index 111b40fcb..e301f6fbb 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -26,7 +26,8 @@ subdir = po INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ -MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@ +### This doe not work: MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@ +MKINSTALLDIRS = $(top_srcdir)/scripts/mkinstalldirs CC = @CC@ GENCAT = @GENCAT@ @@ -120,7 +121,7 @@ install-data-yes: all cat=`basename $$cat`; \ case "$$cat" in \ *.gmo) destdir=$(gnulocaledir);; \ - *) destdir=$(localedir);; \ + *) destdir=$(localedir);; \ esac; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ dir=$$destdir/$$lang/LC_MESSAGES; \ @@ -232,8 +233,8 @@ POTFILES: POTFILES.in posrcprefix="../"; \ fi; \ rm -f $@-t $@ \ - && (sed -e '/^#/d' -e '/^[ ]*$$/d' \ - -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \ + && (sed -e '/^#/d' -e '/^[ ]*$$/d' \ + -e "s@.*@ $$posrcprefix& \\\\@" < $(srcdir)/$@.in \ | sed -e '$$s/\\$$//') > $@-t \ && chmod a-w $@-t \ && mv $@-t $@ ) diff --git a/po/de.po b/po/de.po index 9f12798f1..92a1d7ff1 100644 --- a/po/de.po +++ b/po/de.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"POT-Creation-Date: 1998-09-30 19:01+0200\n" +"POT-Creation-Date: 1998-10-07 14:24+0200\n" "Content-Type: text/plain; charset=\n" "Date: 1998-01-26 22:08:36+0100\n" "From: Werner Koch \n" @@ -27,7 +27,6 @@ msgstr "ja" msgid "yY" msgstr "jJ" - #: util/errors.c:54 msgid "General error" msgstr "Allgemeiner Fehler" @@ -210,14 +209,11 @@ msgstr "Ohhh jeeee ... dies ist eine Wanze (Programmfehler) (%s:%d:%s)\n" msgid "you found a bug ... (%s:%d)\n" msgstr "Sie haben eine Wanze (Programmfehler) gefunden ... (%s:%d)\n" - - - -#: cipher/rand-dummy.c:106 +#: cipher/rand-dummy.c:112 msgid "warning: using insecure random number generator!!\n" msgstr "Der Zufallszahlengenerator erzeugt keine echten Zufallszahlen!\n" -#: cipher/rand-dummy.c:107 +#: cipher/rand-dummy.c:113 msgid "" "The random number generator is only a kludge to let\n" "it compile - it is in no way a strong RNG!\n" @@ -243,7 +239,7 @@ msgstr "" "Arbeiten durch, damit das Betriebssystem weitere Entropie sammeln kann!\n" "(Es werden noch %d Byte benötigt.)\n" -#: g10/g10.c:146 +#: g10/g10.c:147 msgid "" "@Commands:\n" " " @@ -251,119 +247,123 @@ msgstr "" "@Kommandos:\n" " " -#: g10/g10.c:149 +#: g10/g10.c:150 #, fuzzy msgid "|[file]|make a signature" msgstr "|[FILE]|eine Signatur erzeugen" -#: g10/g10.c:150 +#: g10/g10.c:151 #, fuzzy msgid "|[file]|make a clear text signature" msgstr "|[FILE]|eine Klartextsignatur erzeugen" -#: g10/g10.c:151 +#: g10/g10.c:152 msgid "make a detached signature" msgstr "Eine abgetrennte Signatur erzeugen" -#: g10/g10.c:152 +#: g10/g10.c:153 msgid "encrypt data" msgstr "Daten verschlüsseln" -#: g10/g10.c:153 +#: g10/g10.c:154 msgid "encryption only with symmetric cipher" msgstr "Daten nur symmetrisch verschlüsseln" -#: g10/g10.c:154 +#: g10/g10.c:155 msgid "store only" msgstr "nur speichern" -#: g10/g10.c:155 +#: g10/g10.c:156 msgid "decrypt data (default)" msgstr "Daten entschlüsseln (Voreinstellung)" -#: g10/g10.c:156 +#: g10/g10.c:157 msgid "verify a signature" msgstr "Signatur prüfen" -#: g10/g10.c:158 +#: g10/g10.c:159 msgid "list keys" msgstr "Liste der Schlüssel" -#: g10/g10.c:159 +#: g10/g10.c:160 msgid "list keys and signatures" msgstr "Liste der Schlüssel und ihrer Signaturen" -#: g10/g10.c:160 +#: g10/g10.c:161 msgid "check key signatures" msgstr "Signaturen der Schlüssel prüfen" -#: g10/g10.c:161 +#: g10/g10.c:162 msgid "list keys and fingerprints" msgstr "Liste der Schlüssel und ihrer \"Fingerabdrücke\"" -#: g10/g10.c:162 +#: g10/g10.c:163 msgid "list secret keys" msgstr "Liste der geheimen Schlüssel" -#: g10/g10.c:164 +#: g10/g10.c:165 msgid "generate a new key pair" msgstr "Ein neues Schlüsselpaar erzeugen" -#: g10/g10.c:166 +#: g10/g10.c:167 msgid "remove key from the public keyring" msgstr "Schlüssel entfernen" -#: g10/g10.c:168 +#: g10/g10.c:169 msgid "sign or edit a key" msgstr "" -#: g10/g10.c:169 +#: g10/g10.c:170 msgid "generate a revocation certificate" msgstr "Einen Schlüsselwiderruf vornehmen" -#: g10/g10.c:171 +#: g10/g10.c:172 msgid "export keys" msgstr "Schlüssel exportieren" -#: g10/g10.c:174 +#: g10/g10.c:175 msgid "import/merge keys" msgstr "Schlüssel importieren/kombinieren" -#: g10/g10.c:175 +#: g10/g10.c:176 msgid "list only the sequence of packets" msgstr "Lediglich die Struktur der Datenpackete anzeigen" -#: g10/g10.c:177 +#: g10/g10.c:178 #, fuzzy msgid "export the ownertrust values" msgstr "Keine \"Owner trust\" Werte geändert.\n" -#: g10/g10.c:178 +#: g10/g10.c:179 #, fuzzy msgid "import ownertrust values" msgstr "Keine \"Owner trust\" Werte geändert.\n" -#: g10/g10.c:179 +#: g10/g10.c:180 msgid "|[NAMES]|check the trust database" msgstr "" -#: g10/g10.c:180 +#: g10/g10.c:181 +msgid "fix a corrupted trust database" +msgstr "" + +#: g10/g10.c:182 msgid "De-Armor a file or stdin" msgstr "Datei oder stdin von der ASCII-Hülle befreien" -#: g10/g10.c:181 +#: g10/g10.c:183 msgid "En-Armor a file or stdin" msgstr "Datei oder stdin in eine ASCII-Hülle einpacken" -#: g10/g10.c:182 +#: g10/g10.c:184 msgid "|algo [files]|print message digests" msgstr "|algo [files]|Hashwerte der Dateien ausgeben" -#: g10/g10.c:183 +#: g10/g10.c:185 msgid "print all message digests" msgstr "Message-Digests für die Eingabedaten ausgeben" -#: g10/g10.c:190 +#: g10/g10.c:192 msgid "" "@\n" "Options:\n" @@ -373,128 +373,128 @@ msgstr "" "Optionen:\n" " " -#: g10/g10.c:192 +#: g10/g10.c:194 msgid "create ascii armored output" msgstr "Ausgabe mit ASCII-Hülle versehen" -#: g10/g10.c:194 +#: g10/g10.c:196 msgid "use this user-id to sign or decrypt" msgstr "Mit dieser User-ID signieren" -#: g10/g10.c:195 +#: g10/g10.c:197 msgid "use this user-id for encryption" msgstr "Verschlüsseln für diese User-ID" -#: g10/g10.c:196 +#: g10/g10.c:198 msgid "|N|set compress level N (0 disables)" msgstr "Kompressionsstufe auf N setzen (0 für keine Kompression)" -#: g10/g10.c:197 +#: g10/g10.c:199 msgid "use canonical text mode" msgstr "Textmodus benutzen" -#: g10/g10.c:199 +#: g10/g10.c:201 msgid "use as output file" msgstr "dies als Ausgabedatei benutzen" -#: g10/g10.c:200 +#: g10/g10.c:202 msgid "verbose" msgstr "detaillierte Informationen" #. { oDryRun, "dry-run", 0, N_("do not make any changes") }, -#: g10/g10.c:202 +#: g10/g10.c:204 msgid "batch mode: never ask" msgstr "Stapelmodus: Keine Abfragen" -#: g10/g10.c:203 +#: g10/g10.c:205 msgid "assume yes on most questions" msgstr "\"Ja\" als Standardantwort annehmen" -#: g10/g10.c:204 +#: g10/g10.c:206 msgid "assume no on most questions" msgstr "\"Nein\" als Standardantwort annehmen" -#: g10/g10.c:205 +#: g10/g10.c:207 msgid "add this keyring to the list of keyrings" msgstr "Als öffentlichen Schlüsselring mitbenutzen" -#: g10/g10.c:206 +#: g10/g10.c:208 msgid "add this secret keyring to the list" msgstr "Als geheimen Schlüsselring mitbenutzen" -#: g10/g10.c:207 +#: g10/g10.c:209 msgid "|NAME|use NAME as default secret key" msgstr "|NAME|NAME als voreingestellten Schlüssel benutzen" -#: g10/g10.c:208 +#: g10/g10.c:210 msgid "read options from file" msgstr "Optionen aus der Datei lesen" -#: g10/g10.c:210 +#: g10/g10.c:212 msgid "set debugging flags" msgstr "Debug-Flags einschalten" -#: g10/g10.c:211 +#: g10/g10.c:213 msgid "enable full debugging" msgstr "Alle Debug-Flags einschalten" -#: g10/g10.c:212 +#: g10/g10.c:214 msgid "|FD|write status info to this FD" msgstr "|FD|Statusinfo auf diesen Dateihandle (\"FD\") ausgeben" -#: g10/g10.c:213 +#: g10/g10.c:215 msgid "do not write comment packets" msgstr "Keine Kommentarpakete schreiben" -#: g10/g10.c:214 +#: g10/g10.c:216 msgid "(default is 1)" msgstr "(voreingestellt ist 1)" -#: g10/g10.c:215 +#: g10/g10.c:217 msgid "(default is 3)" msgstr "(voreingestellt ist 3)" -#: g10/g10.c:216 +#: g10/g10.c:218 #, fuzzy msgid "|FILE|load extension module FILE" msgstr "|FILE|Erweiterungsmodul |FILE| laden" -#: g10/g10.c:217 +#: g10/g10.c:219 msgid "emulate the mode described in RFC1991" msgstr "Den in RFC1991 beschriebenen Modus nachahmen" -#: g10/g10.c:218 +#: g10/g10.c:220 #, fuzzy msgid "|N|use passphrase mode N" msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n" -#: g10/g10.c:220 +#: g10/g10.c:222 #, fuzzy msgid "|NAME|use message digest algorithm NAME for passphrases" msgstr "|NAME|Die Hashmethode NAME benutzen" -#: g10/g10.c:222 +#: g10/g10.c:224 #, fuzzy msgid "|NAME|use cipher algorithm NAME for passphrases" msgstr "|NAME|Die Verschlüsslungsmethode NAME benutzen" -#: g10/g10.c:224 +#: g10/g10.c:226 msgid "|NAME|use cipher algorithm NAME" msgstr "|NAME|Die Verschlüsslungsmethode NAME benutzen" -#: g10/g10.c:225 +#: g10/g10.c:227 msgid "|NAME|use message digest algorithm NAME" msgstr "|NAME|Die Hashmethode NAME benutzen" -#: g10/g10.c:226 +#: g10/g10.c:228 msgid "|N|use compress algorithm N" msgstr "|N|Die Kompressionsmethode N benutzen" -#: g10/g10.c:227 +#: g10/g10.c:229 msgid "throw keyid field of encrypted packets" msgstr "" -#: g10/g10.c:235 +#: g10/g10.c:237 #, fuzzy msgid "" "@\n" @@ -515,19 +515,19 @@ msgstr "" " --list-keys [names] Die Schlüssel anzeigen\n" " --fingerprint [names] Die \"Fingerabdrücke\" anzeigen\n" -#: g10/g10.c:310 +#: g10/g10.c:312 msgid "Please report bugs to .\n" msgstr "Berichte über Wanzen bitte an .\n" -#: g10/g10.c:315 +#: g10/g10.c:317 msgid "Usage: gpgm [options] [files] (-h for help)" msgstr "Aufruf: gpgm [Optionen] [Dateien] (-h für Hilfe)" -#: g10/g10.c:317 +#: g10/g10.c:319 msgid "Usage: gpg [options] [files] (-h for help)" msgstr "Aufruf: gpg [Optionen] [Dateien] (-h für Hilfe)" -#: g10/g10.c:322 +#: g10/g10.c:324 msgid "" "Syntax: gpgm [options] [files]\n" "GNUPG maintenance utility\n" @@ -535,7 +535,7 @@ msgstr "" "Syntax: gpgm [options] [files]\n" "GNUPG Wartungs-Hilfsprogramm\n" -#: g10/g10.c:325 +#: g10/g10.c:327 msgid "" "Syntax: gpg [options] [files]\n" "sign, check, encrypt or decrypt\n" @@ -545,147 +545,147 @@ msgstr "" "Signieren, prüfen, verschlüsseln, entschlüsseln\n" "Die voreingestellte Operation ist abhängig von den Eingabedaten\n" -#: g10/g10.c:331 +#: g10/g10.c:333 msgid "" "\n" "Supported algorithms:\n" msgstr "" -#: g10/g10.c:406 +#: g10/g10.c:408 msgid "usage: gpgm [options] " msgstr "Aufruf: gpgm [Optionen] " -#: g10/g10.c:408 +#: g10/g10.c:410 msgid "usage: gpg [options] " msgstr "Aufruf: gpg [Optionen] " -#: g10/g10.c:449 +#: g10/g10.c:451 msgid "conflicting commands\n" msgstr "Widersprüchliche Kommandos\n" -#: g10/g10.c:588 +#: g10/g10.c:590 #, c-format msgid "note: no default option file '%s'\n" msgstr "Hinweis: Keine voreingestellte Optionendatei '%s' vorhanden\n" -#: g10/g10.c:592 +#: g10/g10.c:594 #, c-format msgid "option file '%s': %s\n" msgstr "Optionendatei '%s': %s\n" -#: g10/g10.c:599 +#: g10/g10.c:601 #, c-format msgid "reading options from '%s'\n" msgstr "Optionen werden von '%s' gelesen\n" -#: g10/g10.c:765 g10/g10.c:777 +#: g10/g10.c:768 g10/g10.c:780 msgid "selected cipher algorithm is invalid\n" msgstr "Die ausgewählte Verschlüsslungsmethode ist ungültig\n" -#: g10/g10.c:771 g10/g10.c:783 +#: g10/g10.c:774 g10/g10.c:786 msgid "selected digest algorithm is invalid\n" msgstr "Die ausgewählte Message-Digest-Methode ist ungültig\n" -#: g10/g10.c:786 +#: g10/g10.c:789 #, c-format msgid "compress algorithm must be in range %d..%d\n" msgstr "Die Kompressionsmethode muß im Bereich %d bis %d liegen\n" -#: g10/g10.c:788 +#: g10/g10.c:791 msgid "completes-needed must be greater than 0\n" msgstr "completes-needed müssen größer als 0 sein\n" -#: g10/g10.c:790 +#: g10/g10.c:793 msgid "marginals-needed must be greater than 1\n" msgstr "marginals-needed müssen größer als 1 sein\n" -#: g10/g10.c:793 +#: g10/g10.c:796 msgid "note: simple S2K mode (0) is strongly discouraged\n" msgstr "" -#: g10/g10.c:797 +#: g10/g10.c:800 msgid "invalid S2K mode; must be 0, 1 or 3\n" msgstr "" -#: g10/g10.c:872 +#: g10/g10.c:876 #, c-format msgid "failed to initialize the TrustDB: %s\n" msgstr "Die Trust-DB kann nicht initialisiert werden: %s\n" -#: g10/g10.c:878 +#: g10/g10.c:882 msgid "--store [filename]" msgstr "--store [Dateiname]" -#: g10/g10.c:886 +#: g10/g10.c:890 msgid "--symmetric [filename]" msgstr "--symmetric [Dateiname]" -#: g10/g10.c:894 +#: g10/g10.c:898 msgid "--encrypt [filename]" msgstr "--encrypt [Dateiname]" -#: g10/g10.c:907 +#: g10/g10.c:911 msgid "--sign [filename]" msgstr "--sign [Dateiname]" -#: g10/g10.c:920 +#: g10/g10.c:924 msgid "--sign --encrypt [filename]" msgstr "--sign --encrypt [Dateiname]" -#: g10/g10.c:934 +#: g10/g10.c:938 msgid "--clearsign [filename]" msgstr "--clearsign [Dateiname]" -#: g10/g10.c:946 +#: g10/g10.c:950 msgid "--decrypt [filename]" msgstr "--decrypt [Dateiname]" -#: g10/g10.c:955 +#: g10/g10.c:959 msgid "--edit-key username" msgstr "--edit-key Benutzername" -#: g10/g10.c:963 +#: g10/g10.c:967 msgid "--delete-secret-key username" msgstr "--delete-secret-key Benutzername" -#: g10/g10.c:966 +#: g10/g10.c:970 msgid "--delete-key username" msgstr "--delete-key Benutzername" -#: g10/encode.c:213 g10/g10.c:989 g10/keylist.c:79 +#: g10/encode.c:213 g10/g10.c:993 g10/keylist.c:79 #, c-format msgid "can't open %s: %s\n" msgstr "Datei '%s' kann nicht geöffnet werden: %s\n" -#: g10/g10.c:1000 +#: g10/g10.c:1004 msgid "-k[v][v][v][c] [userid] [keyring]" msgstr "-k[v][v][v][c] [Benutzername] [Keyring]" -#: g10/g10.c:1055 +#: g10/g10.c:1059 #, c-format msgid "dearmoring failed: %s\n" msgstr "De-Armor fehlgeschlagen: %s\n" -#: g10/g10.c:1063 +#: g10/g10.c:1067 #, c-format msgid "enarmoring failed: %s\n" msgstr "En-Armor fehlgeschlagen: %s\n" -#: g10/g10.c:1124 +#: g10/g10.c:1128 #, c-format msgid "invalid hash algorithm '%s'\n" msgstr "Ungültige Hashmethode '%s'\n" -#: g10/g10.c:1194 +#: g10/g10.c:1204 msgid "[filename]" msgstr "[Dateiname]" -#: g10/decrypt.c:59 g10/g10.c:1196 g10/verify.c:66 +#: g10/decrypt.c:59 g10/g10.c:1206 g10/verify.c:66 #, c-format msgid "can't open '%s'\n" msgstr "Datei '%s' kann nicht geöffnet werden\n" -#: g10/g10.c:1241 +#: g10/g10.c:1251 msgid "" "RSA keys are deprecated; please consider creating a new key and use this key " "in the future\n" @@ -821,21 +821,21 @@ msgstr "" "zuordnen können.\n" "\n" -#: g10/pkclist.c:170 +#: g10/pkclist.c:168 msgid "" "No owner trust values changed.\n" "\n" msgstr "Keine \"Owner trust\" Werte geändert.\n" -#: g10/pkclist.c:190 +#: g10/pkclist.c:188 msgid "revoked_key.override" msgstr "" -#: g10/pkclist.c:191 g10/pkclist.c:281 +#: g10/pkclist.c:189 g10/pkclist.c:279 msgid "Use this key anyway? " msgstr "Den Schlüssel trotzdem benutzen?" -#: g10/pkclist.c:276 +#: g10/pkclist.c:274 msgid "" "It is NOT certain that the key belongs to its owner.\n" "If you *really* know what you are doing, you may answer\n" @@ -846,59 +846,59 @@ msgstr "" "Wenn Sie *wirklich* wissen, was Sie tun, können Sie die nächste\n" "Frage mit ja beantworten\n" -#: g10/pkclist.c:280 +#: g10/pkclist.c:278 msgid "untrusted_key.override" msgstr "" -#: g10/pkclist.c:285 +#: g10/pkclist.c:283 msgid "WARNING: Using untrusted key!\n" msgstr "WARNUNG: Ein Schlüssel ohne gesichertes Vertrauen wird benutzt!\n" -#: g10/pkclist.c:321 +#: g10/pkclist.c:319 msgid "WARNING: This key has been revoked by its owner!\n" msgstr "WARNUNG: Dieser Schlüssel wurde von seinem Besitzer widerrufen!\n" -#: g10/pkclist.c:322 +#: g10/pkclist.c:320 msgid " This could mean that the signature is forgery.\n" msgstr " Das könnte bedeuten, daß die Signatur gefälscht ist.\n" -#: g10/pkclist.c:343 +#: g10/pkclist.c:341 msgid "Note: This key has expired!\n" msgstr "Hinweis: Dieser Schlüssel ist verfallen!\n" -#: g10/pkclist.c:350 +#: g10/pkclist.c:348 msgid "WARNING: This key is not certified with a trusted signature!\n" msgstr "WARNUNG: Dieser Schlüssel trägt keine vertrauenswürdige Signatur!\n" -#: g10/pkclist.c:352 +#: g10/pkclist.c:350 msgid "" " There is no indication that the signature belongs to the owner.\n" msgstr "" " Es gibt keinen Hinweis, daß die Signatur wirklich dem vorgeblichen " "Besitzer gehört.\n" -#: g10/pkclist.c:367 +#: g10/pkclist.c:365 msgid "WARNING: We do NOT trust this key!\n" msgstr "WARNUNG: Wir haben KEIN Vertrauen zu diesem Schlüssel!\n" -#: g10/pkclist.c:368 +#: g10/pkclist.c:366 msgid " The signature is probably a FORGERY.\n" msgstr " Die Signatur ist wahrscheinlich eine FÄLSCHUNG.\n" -#: g10/pkclist.c:375 +#: g10/pkclist.c:373 msgid "" "WARNING: This key is not certified with sufficiently trusted signatures!\n" msgstr "" "WARNUNG: Dieser Schlüssel ist nicht durch hinreichend vertrauenswürdige " "Signaturen zertifiziert!\n" -#: g10/pkclist.c:378 +#: g10/pkclist.c:376 msgid " It is not certain that the signature belongs to the owner.\n" msgstr "" " Es ist nicht sicher, daß die Signatur wirklich dem vorgeblichen " "Besitzer gehört.\n" -#: g10/pkclist.c:423 +#: g10/pkclist.c:421 msgid "" "You did not specify a user ID. (you may use \"-r\")\n" "\n" @@ -906,29 +906,29 @@ msgstr "" "Sie gaben keine User-ID angegeben (Benutzen Sie die Option \"-r\").\n" "\n" -#: g10/pkclist.c:427 +#: g10/pkclist.c:425 msgid "pklist.user_id.enter" msgstr "" -#: g10/pkclist.c:428 +#: g10/pkclist.c:426 msgid "Enter the user ID: " msgstr "Geben Sie die User-ID ein: " -#: g10/pkclist.c:439 +#: g10/pkclist.c:437 msgid "No such user ID.\n" msgstr "Keine solche User-ID vorhanden.\n" -#: g10/pkclist.c:473 g10/pkclist.c:500 +#: g10/pkclist.c:471 g10/pkclist.c:498 #, c-format msgid "%s: skipped: %s\n" msgstr "%s: übersprungen: %s\n" -#: g10/pkclist.c:481 +#: g10/pkclist.c:479 #, c-format msgid "%s: error checking key: %s\n" msgstr "%s: Fehler beim Prüfen des Schlüssels: %s\n" -#: g10/pkclist.c:507 +#: g10/pkclist.c:505 msgid "no valid addressees\n" msgstr "Keine gültigen Adressaten\n" @@ -954,34 +954,34 @@ msgstr " (%d) DSA und ElGamal (voreingestellt)\n" msgid " (%d) ElGamal (sign and encrypt)\n" msgstr " (%d) ElGamal (signieren und verschlüsseln)\n" -#: g10/keygen.c:387 +#: g10/keygen.c:388 #, c-format msgid " (%d) ElGamal (encrypt only)\n" msgstr " (%d) ElGamal (nur verschlüsseln)\n" -#: g10/keygen.c:388 +#: g10/keygen.c:389 #, c-format msgid " (%d) DSA (sign only)\n" msgstr " (%d) DSA (nur signieren)\n" -#: g10/keygen.c:389 +#: g10/keygen.c:390 #, c-format msgid " (%d) ElGamal in a v3 packet\n" msgstr " (%d) ElGamal in einem v3-Packet\n" -#: g10/keygen.c:393 +#: g10/keygen.c:394 msgid "keygen.algo" msgstr "" -#: g10/keygen.c:393 +#: g10/keygen.c:394 msgid "Your selection? " msgstr "Ihre Auswahl? " -#: g10/keygen.c:419 +#: g10/keygen.c:420 msgid "Invalid selection.\n" msgstr "Ungültige Auswahl.\n" -#: g10/keygen.c:431 +#: g10/keygen.c:432 #, c-format msgid "" "About to generate a new %s keypair.\n" @@ -994,23 +994,23 @@ msgstr "" " standard Schlüssellänge ist 1024 Bits\n" " größte sinnvolle Schlüssellänge ist 2048 Bits\n" -#: g10/keygen.c:437 +#: g10/keygen.c:438 msgid "keygen.size" msgstr "" -#: g10/keygen.c:438 +#: g10/keygen.c:439 msgid "What keysize do you want? (1024) " msgstr "Welche Schlüssellänge wünschen Sie? (1024)" -#: g10/keygen.c:443 +#: g10/keygen.c:444 msgid "DSA only allows keysizes from 512 to 1024\n" msgstr "DSA erlaubt nur Schlüssellängen von 512 bis 1024\n" -#: g10/keygen.c:445 +#: g10/keygen.c:446 msgid "keysize too small; 768 is smallest value allowed.\n" msgstr "zu kurz; 768 ist die kleinste mögliche Schlüssellänge.\n" -#: g10/keygen.c:448 +#: g10/keygen.c:449 #, fuzzy msgid "" "Keysizes larger than 2048 are not suggested because\n" @@ -1019,15 +1019,15 @@ msgstr "" "Schlüssellängen größer als 2048 werden nicht empfohlen, da die Berechnungen " "dann WIRKLICH lange brauchen\n" -#: g10/keygen.c:450 +#: g10/keygen.c:451 msgid "keygen.size.huge.okay" msgstr "" -#: g10/keygen.c:451 +#: g10/keygen.c:452 msgid "Are you sure that you want this keysize? " msgstr "Sind Sie sicher, daß Sie diese Schlüssellänge wünschen? " -#: g10/keygen.c:452 +#: g10/keygen.c:453 msgid "" "Okay, but keep in mind that your monitor and keyboard radiation is also very " "vulnerable to attacks!\n" @@ -1035,25 +1035,25 @@ msgstr "" "Gut, aber bitte denken Sie auch daran, daß Monitor und Tastatur Daten " "abstrahlen und diese leicht mitgelesen werden können.\n" -#: g10/keygen.c:459 +#: g10/keygen.c:460 msgid "keygen.size.large.okay" msgstr "" -#: g10/keygen.c:460 +#: g10/keygen.c:461 msgid "Do you really need such a large keysize? " msgstr "Brauchen Sie wirklich eine derartig große Schlüssellänge? " -#: g10/keygen.c:466 +#: g10/keygen.c:467 #, c-format msgid "Requested keysize is %u bits\n" msgstr "Die verlangte Schlüssellänge beträgt %u Bit\n" -#: g10/keygen.c:469 g10/keygen.c:473 +#: g10/keygen.c:470 g10/keygen.c:474 #, c-format msgid "rounded up to %u bits\n" msgstr "aufgerundet auf %u Bit\n" -#: g10/keygen.c:485 +#: g10/keygen.c:486 msgid "" "Please specify how long the key should be valid.\n" " 0 = key does not expire\n" @@ -1069,37 +1069,37 @@ msgstr "" " m = Schlüssel verfällt nach n Monaten\n" " y = Schlüssel verfällt nach n Jahren\n" -#: g10/keygen.c:500 +#: g10/keygen.c:501 msgid "keygen.valid" msgstr "" -#: g10/keygen.c:500 +#: g10/keygen.c:501 msgid "Key is valid for? (0) " msgstr "Der Schlüssel bleibt wie lange gültig? (0) " -#: g10/keygen.c:511 +#: g10/keygen.c:512 msgid "invalid value\n" msgstr "Ungültiger Wert.\n" -#: g10/keygen.c:516 +#: g10/keygen.c:517 msgid "Key does not expire at all\n" msgstr "Der Schlüssel verfällt nie.\n" #. print the date when the key expires -#: g10/keygen.c:519 +#: g10/keygen.c:520 #, c-format msgid "Key expires at %s\n" msgstr "Der Schlüssel verfällt am %s\n" -#: g10/keygen.c:524 +#: g10/keygen.c:525 msgid "keygen.valid.okay" msgstr "" -#: g10/keygen.c:525 +#: g10/keygen.c:526 msgid "Is this correct (y/n)? " msgstr "Ist dies richtig? (j/n) " -#: g10/keygen.c:553 +#: g10/keygen.c:554 msgid "" "\n" "You need a User-ID to identify your key; the software constructs the user " @@ -1115,51 +1115,51 @@ msgstr "" " \"Heinrich Heine (Der Dichter) \"\n" "\n" -#: g10/keygen.c:564 +#: g10/keygen.c:565 msgid "keygen.name" msgstr "" -#: g10/keygen.c:564 +#: g10/keygen.c:565 msgid "Real name: " msgstr "Ihr Name (\"Vorname Nachname\"): " -#: g10/keygen.c:568 +#: g10/keygen.c:569 msgid "Invalid character in name\n" msgstr "Ungültiges Zeichen im Namen\n" -#: g10/keygen.c:570 +#: g10/keygen.c:571 msgid "Name may not start with a digit\n" msgstr "Der Name darf nicht mit einer Ziffer beginnen.\n" -#: g10/keygen.c:572 +#: g10/keygen.c:573 msgid "Name must be at least 5 characters long\n" msgstr "Der Name muß min. 5 Zeichen lang sein.\n" -#: g10/keygen.c:580 +#: g10/keygen.c:581 msgid "keygen.email" msgstr "" -#: g10/keygen.c:580 +#: g10/keygen.c:581 msgid "Email address: " msgstr "E-Mail-Adresse: " -#: g10/keygen.c:592 +#: g10/keygen.c:593 msgid "Not a valid email address\n" msgstr "E-Mail-Adresse is ungültig\n" -#: g10/keygen.c:600 +#: g10/keygen.c:601 msgid "keygen.comment" msgstr "" -#: g10/keygen.c:600 +#: g10/keygen.c:601 msgid "Comment: " msgstr "Kommentar: " -#: g10/keygen.c:606 +#: g10/keygen.c:607 msgid "Invalid character in comment\n" msgstr "Ungültiges Zeichen im Kommentar.\n" -#: g10/keygen.c:626 +#: g10/keygen.c:627 #, c-format msgid "" "You selected this USER-ID:\n" @@ -1170,21 +1170,21 @@ msgstr "" " \"%s\"\n" "\n" -#: g10/keygen.c:629 +#: g10/keygen.c:630 msgid "NnCcEeOoQq" msgstr "" -#: g10/keygen.c:638 +#: g10/keygen.c:639 #, fuzzy msgid "keygen.userid.cmd" msgstr "Geben Sie bitte \"help\" ein." -#: g10/keygen.c:639 +#: g10/keygen.c:640 #, fuzzy msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? " msgstr "Ändern: N=Name, C=Kommentar, E=E-Mail, O=Okay? " -#: g10/keygen.c:686 +#: g10/keygen.c:687 msgid "" "You need a Passphrase to protect your secret key.\n" "\n" @@ -1192,11 +1192,11 @@ msgstr "" "Sie benötigen eine \"passphrase\", um den geheimen Schlüssel zu schützen.\n" "\n" -#: g10/keyedit.c:377 g10/keygen.c:694 +#: g10/keyedit.c:388 g10/keygen.c:695 msgid "passphrase not correctly repeated; try again.\n" msgstr "\"passphrase\" nicht richtig wiederholt; noch einmal.\n" -#: g10/keygen.c:700 +#: g10/keygen.c:701 msgid "" "You don't want a passphrase - this is probably a *bad* idea!\n" "I will do it anyway. You can change your passphrase at any time,\n" @@ -1209,7 +1209,7 @@ msgstr "" "aufrufen.\n" "\n" -#: g10/keygen.c:721 +#: g10/keygen.c:722 msgid "" "We need to generate a lot of random bytes. It is a good idea to perform\n" "some other action (work in another window, move the mouse, utilize the\n" @@ -1220,35 +1220,35 @@ msgstr "" "unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas\n" "tippen oder irgendwelche anderen Programme benutzen.\n" -#: g10/keygen.c:788 +#: g10/keygen.c:789 msgid "Key generation can only be used in interactive mode\n" msgstr "" "Die Schlüsselerzeugung kann nur im interaktiven Modus benutzt werden.\n" -#: g10/keygen.c:796 +#: g10/keygen.c:797 msgid "DSA keypair will have 1024 bits.\n" msgstr "Der DSA Schlüssel wird 1024 Bits haben.\n" -#: g10/keygen.c:802 +#: g10/keygen.c:803 #, fuzzy msgid "Key generation cancelled.\n" msgstr "Schlüsselerzeugung fehlgeschlagen: %s\n" -#: g10/keygen.c:812 +#: g10/keygen.c:813 #, c-format msgid "writing public certificate to '%s'\n" msgstr "schreiben des öffentlichen Schlüssels nach '%s'\n" -#: g10/keygen.c:813 +#: g10/keygen.c:814 #, c-format msgid "writing secret certificate to '%s'\n" msgstr "schreiben des geheimen Schlüssels nach '%s'\n" -#: g10/keygen.c:890 +#: g10/keygen.c:891 msgid "public and secret key created and signed.\n" msgstr "Öffentlichen und geheimen Schlüssel erzeugt und signiert.\n" -#: g10/keygen.c:892 +#: g10/keygen.c:893 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" @@ -1257,16 +1257,16 @@ msgstr "" "werden kann. Sie können aber mit dem Kommando \"--add-key\" einen\n" "Sekundärschlüssel zu diesem Schlüssel hinzufügen.\n" -#: g10/keygen.c:906 g10/keygen.c:990 +#: g10/keygen.c:907 g10/keygen.c:991 #, c-format msgid "Key generation failed: %s\n" msgstr "Schlüsselerzeugung fehlgeschlagen: %s\n" -#: g10/keygen.c:967 +#: g10/keygen.c:968 msgid "keygen.sub.okay" msgstr "" -#: g10/keygen.c:968 +#: g10/keygen.c:969 #, fuzzy msgid "Really create? " msgstr "Ihr Name (\"Vorname Nachname\"): " @@ -1301,7 +1301,7 @@ msgstr "%s verschl msgid "using secondary key %08lX instead of primary key %08lX\n" msgstr "" -#: g10/import.c:105 g10/trustdb.c:1349 +#: g10/import.c:105 g10/trustdb.c:1389 #, c-format msgid "can't open file: %s\n" msgstr "Kann die Datei nicht öffnen: %s\n" @@ -1311,7 +1311,7 @@ msgstr "Kann die Datei nicht msgid "skipping block of type %d\n" msgstr "überspringe den Block vom Typ %d\n" -#: g10/import.c:131 g10/trustdb.c:1427 +#: g10/import.c:131 g10/trustdb.c:1464 #, c-format msgid "read error: %s\n" msgstr "Lesefehler: %s\n" @@ -1554,50 +1554,50 @@ msgstr "Schl msgid "%d user ids without valid self-signatures detected\n" msgstr "" -#: g10/keyedit.c:249 +#: g10/keyedit.c:257 #, fuzzy, c-format msgid "Already signed by key %08lX\n" msgstr "Ist bereits mit Schlüssel %08lX signiert.\n" -#: g10/keyedit.c:257 +#: g10/keyedit.c:265 #, fuzzy, c-format msgid "Nothing to sign with key %08lX\n" msgstr "Nichts zu signieren.\n" -#: g10/keyedit.c:265 +#: g10/keyedit.c:274 #, fuzzy msgid "" "Are you really sure that you want to sign this key\n" "with your key: \"" msgstr "Sind Sie wirklich sicher, daß Sie diesen Schlüssel signieren wollen:\n" -#: g10/keyedit.c:272 +#: g10/keyedit.c:281 msgid "sign_uid.okay" msgstr "" -#: g10/keyedit.c:272 +#: g10/keyedit.c:281 msgid "Really sign? " msgstr "" -#: g10/keyedit.c:293 +#: g10/keyedit.c:302 #, fuzzy, c-format msgid "signing failed: %s\n" msgstr "En-Armor fehlgeschlagen: %s\n" -#: g10/keyedit.c:344 +#: g10/keyedit.c:355 msgid "This key is not protected.\n" msgstr "Dieser Schlüssel ist nicht geschützt.\n" -#: g10/keyedit.c:347 +#: g10/keyedit.c:358 msgid "Key is protected.\n" msgstr "Schlüssel ist geschützt.\n" -#: g10/keyedit.c:364 +#: g10/keyedit.c:375 #, c-format msgid "Can't edit this key: %s\n" msgstr "Dieser Schlüssel kann nicht editiert werden: %s\n" -#: g10/keyedit.c:369 +#: g10/keyedit.c:380 msgid "" "Enter the new passphrase for this secret key.\n" "\n" @@ -1605,7 +1605,7 @@ msgstr "" "Geben Sie die neue \"passphrase\" für diesen privaten Schlüssel ein.\n" "\n" -#: g10/keyedit.c:381 +#: g10/keyedit.c:392 msgid "" "You don't want a passphrase - this is probably a *bad* idea!\n" "\n" @@ -1614,303 +1614,308 @@ msgstr "" "Idee!\n" "\n" -#: g10/keyedit.c:383 +#: g10/keyedit.c:394 msgid "change_passwd.empty.okay" msgstr "" -#: g10/keyedit.c:384 +#: g10/keyedit.c:395 msgid "Do you really want to do this? " msgstr "Möchten Sie dies wirklich tun? " -#: g10/keyedit.c:439 +#: g10/keyedit.c:450 msgid "quit" msgstr "" -#: g10/keyedit.c:439 +#: g10/keyedit.c:450 msgid "quit this menu" msgstr "" -#: g10/keyedit.c:440 +#: g10/keyedit.c:451 msgid "q" msgstr "" -#: g10/keyedit.c:441 +#: g10/keyedit.c:452 msgid "save" msgstr "" -#: g10/keyedit.c:441 +#: g10/keyedit.c:452 msgid "save and quit" msgstr "" -#: g10/keyedit.c:442 +#: g10/keyedit.c:453 msgid "help" msgstr "" -#: g10/keyedit.c:442 +#: g10/keyedit.c:453 msgid "show this help" msgstr "" -#: g10/keyedit.c:444 +#: g10/keyedit.c:455 msgid "fpr" msgstr "" -#: g10/keyedit.c:444 +#: g10/keyedit.c:455 #, fuzzy msgid "show fingerprint" msgstr "Liste der Schlüssel und ihrer \"Fingerabdrücke\"" -#: g10/keyedit.c:445 +#: g10/keyedit.c:456 #, fuzzy msgid "list" msgstr "Liste der Schlüssel" -#: g10/keyedit.c:445 +#: g10/keyedit.c:456 #, fuzzy msgid "list key and user ids" msgstr "Liste der Schlüssel und ihrer \"Fingerabdrücke\"" -#: g10/keyedit.c:446 +#: g10/keyedit.c:457 msgid "l" msgstr "" -#: g10/keyedit.c:447 +#: g10/keyedit.c:458 msgid "uid" msgstr "" -#: g10/keyedit.c:447 +#: g10/keyedit.c:458 msgid "select user id N" msgstr "" -#: g10/keyedit.c:448 +#: g10/keyedit.c:459 msgid "key" msgstr "" -#: g10/keyedit.c:448 +#: g10/keyedit.c:459 msgid "select secondary key N" msgstr "" -#: g10/keyedit.c:449 +#: g10/keyedit.c:460 msgid "check" msgstr "" -#: g10/keyedit.c:449 +#: g10/keyedit.c:460 #, fuzzy msgid "list signatures" msgstr "Liste der Schlüssel und ihrer Signaturen" -#: g10/keyedit.c:450 +#: g10/keyedit.c:461 msgid "c" msgstr "" -#: g10/keyedit.c:451 +#: g10/keyedit.c:462 msgid "sign" msgstr "" -#: g10/keyedit.c:451 +#: g10/keyedit.c:462 #, fuzzy msgid "sign the key" msgstr "Signieren? " -#: g10/keyedit.c:452 +#: g10/keyedit.c:463 msgid "s" msgstr "" -#: g10/keyedit.c:453 +#: g10/keyedit.c:464 msgid "debug" msgstr "" -#: g10/keyedit.c:454 +#: g10/keyedit.c:465 msgid "adduid" msgstr "" -#: g10/keyedit.c:454 +#: g10/keyedit.c:465 msgid "add a user id" msgstr "" -#: g10/keyedit.c:455 +#: g10/keyedit.c:466 msgid "deluid" msgstr "" -#: g10/keyedit.c:455 +#: g10/keyedit.c:466 #, fuzzy msgid "delete user id" msgstr "--delete-key Benutzername" -#: g10/keyedit.c:456 +#: g10/keyedit.c:467 msgid "addkey" msgstr "" -#: g10/keyedit.c:456 +#: g10/keyedit.c:467 #, fuzzy msgid "add a secondary key" msgstr "Einen Sekundärschlüssel dem Primärschlüssel hinzufügen" -#: g10/keyedit.c:457 +#: g10/keyedit.c:468 msgid "delkey" msgstr "" -#: g10/keyedit.c:457 +#: g10/keyedit.c:468 msgid "delete a secondary key" msgstr "" -#: g10/keyedit.c:458 +#: g10/keyedit.c:469 msgid "toggle" msgstr "" -#: g10/keyedit.c:458 +#: g10/keyedit.c:469 msgid "toggle between secret and public key listing" msgstr "" -#: g10/keyedit.c:460 +#: g10/keyedit.c:471 msgid "t" msgstr "" -#: g10/keyedit.c:461 +#: g10/keyedit.c:472 msgid "pref" msgstr "" -#: g10/keyedit.c:461 +#: g10/keyedit.c:472 #, fuzzy msgid "list preferences" msgstr "Liste der geheimen Schlüssel" -#: g10/keyedit.c:462 +#: g10/keyedit.c:473 msgid "passwd" msgstr "" -#: g10/keyedit.c:462 +#: g10/keyedit.c:473 #, fuzzy msgid "change the passphrase" msgstr "Die \"Passphrase\" des geheimen Schlüssels ändern" -#: g10/keyedit.c:463 +#: g10/keyedit.c:474 msgid "trust" msgstr "" -#: g10/keyedit.c:463 +#: g10/keyedit.c:474 msgid "change the ownertrust" msgstr "" -#: g10/keyedit.c:481 +#: g10/keyedit.c:492 msgid "can't do that in batchmode\n" msgstr "Dies kann im Batchmodus nicht durchgeführt werden.\n" #. check that they match #. FIXME: check that they both match -#: g10/keyedit.c:504 +#: g10/keyedit.c:515 #, fuzzy msgid "Secret key is available.\n" msgstr "Öffentlicher Schlüssel ist nicht verfügbar.\n" -#: g10/keyedit.c:520 +#: g10/keyedit.c:531 msgid "keyedit.cmd" msgstr "Geben Sie bitte \"help\" ein." -#: g10/keyedit.c:520 +#: g10/keyedit.c:531 #, fuzzy msgid "Command> " msgstr "" "@Kommandos:\n" " " -#: g10/keyedit.c:545 +#: g10/keyedit.c:556 #, fuzzy msgid "Need the secret key to to this.\n" msgstr "Als geheimen Schlüsselring mitbenutzen" -#: g10/keyedit.c:564 +#: g10/keyedit.c:575 msgid "keyedit.save.okay" msgstr "" -#: g10/keyedit.c:565 +#: g10/keyedit.c:576 msgid "Save changes? " msgstr "" -#: g10/keyedit.c:567 +#: g10/keyedit.c:578 #, fuzzy msgid "keyedit.cancel.okay" msgstr "Geben Sie bitte \"help\" ein." -#: g10/keyedit.c:568 +#: g10/keyedit.c:579 msgid "Quit without saving? " msgstr "" -#: g10/keyedit.c:578 +#: g10/keyedit.c:589 #, fuzzy, c-format msgid "update failed: %s\n" msgstr "De-Armor fehlgeschlagen: %s\n" -#: g10/keyedit.c:585 +#: g10/keyedit.c:596 #, fuzzy, c-format msgid "update secret failed: %s\n" msgstr "Enschlüsselung fehlgeschlagen: %s\n" -#: g10/keyedit.c:593 +#: g10/keyedit.c:603 msgid "Key not changed so no update needed.\n" msgstr "" -#: g10/keyedit.c:623 +#: g10/keyedit.c:606 g10/keyedit.c:664 +#, fuzzy, c-format +msgid "update of trust db failed: %s\n" +msgstr "Enschlüsselung fehlgeschlagen: %s\n" + +#: g10/keyedit.c:637 msgid "keyedit.sign_all.okay" msgstr "" -#: g10/keyedit.c:624 +#: g10/keyedit.c:638 msgid "Really sign all user ids? " msgstr "" -#: g10/keyedit.c:625 +#: g10/keyedit.c:639 msgid "Hint: Select the user ids to sign\n" msgstr "" -#: g10/keyedit.c:653 +#: g10/keyedit.c:675 msgid "You must select at least one user id.\n" msgstr "" -#: g10/keyedit.c:655 +#: g10/keyedit.c:677 msgid "You can't delete the last user id!\n" msgstr "" -#: g10/keyedit.c:657 +#: g10/keyedit.c:679 msgid "keyedit.remove.uid.okay" msgstr "" -#: g10/keyedit.c:658 +#: g10/keyedit.c:680 #, fuzzy msgid "Really remove all selected user ids? " msgstr "Möchten Sie die ausgewählten Signaturen wirklich entfernen? " -#: g10/keyedit.c:659 +#: g10/keyedit.c:681 #, fuzzy msgid "Really remove this user id? " msgstr "Die Signatur entfernen? " -#: g10/keyedit.c:682 +#: g10/keyedit.c:704 msgid "You must select at least one key.\n" msgstr "" -#: g10/keyedit.c:684 +#: g10/keyedit.c:706 msgid "keyedit.remove.subkey.okay" msgstr "" -#: g10/keyedit.c:686 +#: g10/keyedit.c:708 #, fuzzy msgid "Do you really want to delete the selected keys? " msgstr "Möchten Sie die ausgewählten Signaturen wirklich entfernen? " -#: g10/keyedit.c:687 +#: g10/keyedit.c:709 #, fuzzy msgid "Do you really want to delete this key? " msgstr "Möchten Sie dies wirklich tun? " -#: g10/keyedit.c:724 +#: g10/keyedit.c:746 msgid "Invalid command (try \"help\")\n" msgstr "" -#: g10/keyedit.c:1104 +#: g10/keyedit.c:1129 #, c-format msgid "No user id with index %d\n" msgstr "" -#: g10/keyedit.c:1149 +#: g10/keyedit.c:1174 #, c-format msgid "No secondary key with index %d\n" msgstr "" @@ -1934,15 +1939,15 @@ msgstr "" msgid "Signature made %.*s using %s key ID %08lX\n" msgstr "Signatur am %.*s mit %s Schlüssel %08lX erzeugt\n" -#: g10/mainproc.c:852 +#: g10/mainproc.c:854 msgid "BAD signature from \"" msgstr "FALSCHE Signatur von \"" -#: g10/mainproc.c:853 +#: g10/mainproc.c:855 msgid "Good signature from \"" msgstr "Gültige Signatur von \"" -#: g10/mainproc.c:864 +#: g10/mainproc.c:866 #, c-format msgid "Can't check signature: %s\n" msgstr "Signatur kann nicht geprüft werden: %s\n" @@ -2044,80 +2049,79 @@ msgstr "" msgid "warning: signature key expired %s\n" msgstr "Achtung: Schlüssel der Signatur ist verfallen am %s.\n" -#: g10/trustdb.c:318 -#, fuzzy, c-format -msgid "error reading sigrec: %s\n" -msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n" +#: g10/trustdb.c:127 +msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n" +msgstr "" -#: g10/trustdb.c:323 +#: g10/trustdb.c:406 #, c-format msgid "chained sigrec %lu has a wrong owner\n" msgstr "" -#: g10/trustdb.c:370 +#: g10/trustdb.c:453 #, c-format msgid "key %08lX: secret key without public key\n" msgstr "Schlüssel %08lX: geheimer, aber kein öffentlicher Schlüssel.\n" -#: g10/trustdb.c:375 +#: g10/trustdb.c:458 #, c-format msgid "key %08lX: secret and public key don't match\n" msgstr "" "Schlüssel %08lX: geheimer und öffentlicher Schlüssel passen nicht zusammen.\n" -#: g10/trustdb.c:386 +#: g10/trustdb.c:469 #, fuzzy, c-format msgid "key %08lX: can't put it into the trustdb\n" msgstr "Schlüssel %08lX.%lu: in \"trustdb\" eingefügt\n" -#: g10/trustdb.c:392 +#: g10/trustdb.c:475 #, fuzzy, c-format msgid "key %08lX: query record failed\n" msgstr "Schlüssel %08lX: Keine User-ID\n" -#: g10/trustdb.c:401 +#: g10/trustdb.c:484 #, c-format msgid "key %08lX: already in ultikey_table\n" msgstr "Schlüssel %08lX: bereits in der Tabelle der private Schlüssel\n" -#: g10/trustdb.c:408 +#: g10/trustdb.c:491 #, fuzzy, c-format msgid "enum_secret_keys failed: %s\n" msgstr "En-Armor fehlgeschlagen: %s\n" -#: g10/trustdb.c:913 +#: g10/trustdb.c:964 #, fuzzy, c-format msgid "key %08lX.%lu, uid %02X%02X: no public key for signature %08lX\n" msgstr "Schlüssel %08lX: Keine User-ID für Signatur\n" -#: g10/trustdb.c:920 +#: g10/trustdb.c:971 #, fuzzy, c-format msgid "key %08lX.%lu, uid %02X%02X: invalid %ssignature: %s\n" msgstr "Schlüssel %08lX: Ungültige Selbst-Signatur\n" -#: g10/trustdb.c:1624 +#: g10/trustdb.c:1658 #, fuzzy, c-format msgid "key %08lX: insert trust record failed: %s\n" msgstr "Schlüssel %08lX.%lu: Vertrauensprüfung fehlgeschlagen: %s\n" -#: g10/trustdb.c:1628 +#: g10/trustdb.c:1662 #, c-format msgid "key %08lX.%lu: inserted into trustdb\n" msgstr "Schlüssel %08lX.%lu: in \"trustdb\" eingefügt\n" -#: g10/trustdb.c:1639 +#: g10/trustdb.c:1670 #, c-format msgid "key %08lX.%lu: created in future (time warp or clock problem)\n" msgstr "" "Schlüssel %08lX.%lu: wurde in der Zukunft erzeugt (Zeitreise oder Uhren " "stimmen nicht überein)\n" -#: g10/trustdb.c:1647 +#: g10/trustdb.c:1678 #, c-format msgid "key %08lX.%lu: expired at %s\n" msgstr "Schlüssel %08lX.%lu: verfallen am %s\n" -#: g10/trustdb.c:1656 +#: g10/trustdb.c:1687 #, c-format msgid "key %08lX.%lu: trust check failed: %s\n" msgstr "Schlüssel %08lX.%lu: Vertrauensprüfung fehlgeschlagen: %s\n" @@ -2173,6 +2177,10 @@ msgstr "" msgid "cannot avoid weak key for symmetric cipher; tried %d times!\n" msgstr "" +#, fuzzy +#~ msgid "error reading sigrec: %s\n" +#~ msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n" + #~ msgid "can't write keyring\n" #~ msgstr "kann Schlüsselring nicht schreiben\n" diff --git a/po/en.po b/po/en.po index db9b1f139..b1db8963b 100644 --- a/po/en.po +++ b/po/en.po @@ -1,6 +1,6 @@ msgid "" msgstr "" -"POT-Creation-Date: 1998-09-30 19:01+0200\n" +"POT-Creation-Date: 1998-10-07 14:24+0200\n" "Content-Type: text/plain; charset=\n" "Date: 1998-08-08 18:07:50+0200\n" "From: Werner Koch \n" @@ -25,11 +25,196 @@ msgstr "" msgid "yY" msgstr "" -#: cipher/rand-dummy.c:106 +#: util/errors.c:54 +msgid "General error" +msgstr "" + +#: util/errors.c:55 +msgid "Unknown packet type" +msgstr "" + +#: util/errors.c:56 +msgid "Unknown version" +msgstr "" + +#: util/errors.c:57 +msgid "Unknown pubkey algorithm" +msgstr "" + +#: util/errors.c:58 +msgid "Unknown digest algorithm" +msgstr "" + +#: util/errors.c:59 +msgid "Bad public key" +msgstr "" + +#: util/errors.c:60 +msgid "Bad secret key" +msgstr "" + +#: util/errors.c:61 +msgid "Bad signature" +msgstr "" + +#: util/errors.c:62 +msgid "Checksum error" +msgstr "" + +#: util/errors.c:63 +#, fuzzy +msgid "Bad passphrase" +msgstr "" +"Please enter the passhrase; this is a secret sentence \n" +" Blurb, blurb,.... " + +#: util/errors.c:64 +msgid "Public key not found" +msgstr "" + +#: util/errors.c:65 +msgid "Unknown cipher algorithm" +msgstr "" + +#: util/errors.c:66 +msgid "Can't open the keyring" +msgstr "" + +#: util/errors.c:67 +msgid "Invalid packet" +msgstr "" + +#: util/errors.c:68 +msgid "Invalid armor" +msgstr "" + +#: util/errors.c:69 +msgid "No such user id" +msgstr "" + +#: util/errors.c:70 +msgid "Secret key not available" +msgstr "" + +#: util/errors.c:71 +msgid "Wrong secret key used" +msgstr "" + +#: util/errors.c:72 +msgid "Not supported" +msgstr "" + +#: util/errors.c:73 +msgid "Bad key" +msgstr "" + +#: util/errors.c:74 +msgid "File read error" +msgstr "" + +#: util/errors.c:75 +msgid "File write error" +msgstr "" + +#: util/errors.c:76 +msgid "Unknown compress algorithm" +msgstr "" + +#: util/errors.c:77 +msgid "File open error" +msgstr "" + +#: util/errors.c:78 +msgid "File create error" +msgstr "" + +#: util/errors.c:79 +msgid "Invalid passphrase" +msgstr "" + +#: util/errors.c:80 +msgid "Unimplemented pubkey algorithm" +msgstr "" + +#: util/errors.c:81 +msgid "Unimplemented cipher algorithm" +msgstr "" + +#: util/errors.c:82 +msgid "Unknown signature class" +msgstr "" + +#: util/errors.c:83 +msgid "Trust database error" +msgstr "" + +#: util/errors.c:84 +msgid "Bad MPI" +msgstr "" + +#: util/errors.c:85 +msgid "Resource limit" +msgstr "" + +#: util/errors.c:86 +msgid "Invalid keyring" +msgstr "" + +#: util/errors.c:87 +msgid "Bad certificate" +msgstr "" + +#: util/errors.c:88 +msgid "Malformed user id" +msgstr "" + +#: util/errors.c:89 +msgid "File close error" +msgstr "" + +#: util/errors.c:90 +msgid "File rename error" +msgstr "" + +#: util/errors.c:91 +msgid "File delete error" +msgstr "" + +#: util/errors.c:92 +msgid "Unexpected data" +msgstr "" + +#: util/errors.c:93 +msgid "Timestamp conflict" +msgstr "" + +#: util/errors.c:94 +msgid "Unusable pubkey algorithm" +msgstr "" + +#: util/errors.c:95 +msgid "File exists" +msgstr "" + +#: util/errors.c:96 +msgid "Weak key" +msgstr "" + +#: util/logger.c:177 +#, c-format +msgid "Ohhhh jeeee ... this is a bug (%s:%d:%s)\n" +msgstr "" + +#: util/logger.c:183 +#, c-format +msgid "you found a bug ... (%s:%d)\n" +msgstr "" + +#: cipher/rand-dummy.c:112 msgid "warning: using insecure random number generator!!\n" msgstr "" -#: cipher/rand-dummy.c:107 +#: cipher/rand-dummy.c:113 msgid "" "The random number generator is only a kludge to let\n" "it compile - it is in no way a strong RNG!\n" @@ -46,93 +231,93 @@ msgid "" "the OS a chance to collect more entropy! (Need %d more bytes)\n" msgstr "" -#: g10/g10.c:146 +#: g10/g10.c:147 msgid "" "@Commands:\n" " " msgstr "" -#: g10/g10.c:149 +#: g10/g10.c:150 msgid "|[file]|make a signature" msgstr "" -#: g10/g10.c:150 +#: g10/g10.c:151 msgid "|[file]|make a clear text signature" msgstr "" -#: g10/g10.c:151 +#: g10/g10.c:152 msgid "make a detached signature" msgstr "" -#: g10/g10.c:152 +#: g10/g10.c:153 msgid "encrypt data" msgstr "" -#: g10/g10.c:153 +#: g10/g10.c:154 msgid "encryption only with symmetric cipher" msgstr "" -#: g10/g10.c:154 +#: g10/g10.c:155 msgid "store only" msgstr "" -#: g10/g10.c:155 +#: g10/g10.c:156 msgid "decrypt data (default)" msgstr "" -#: g10/g10.c:156 +#: g10/g10.c:157 msgid "verify a signature" msgstr "" -#: g10/g10.c:158 +#: g10/g10.c:159 msgid "list keys" msgstr "" -#: g10/g10.c:159 +#: g10/g10.c:160 msgid "list keys and signatures" msgstr "" -#: g10/g10.c:160 +#: g10/g10.c:161 msgid "check key signatures" msgstr "" -#: g10/g10.c:161 +#: g10/g10.c:162 msgid "list keys and fingerprints" msgstr "" -#: g10/g10.c:162 +#: g10/g10.c:163 msgid "list secret keys" msgstr "" -#: g10/g10.c:164 +#: g10/g10.c:165 msgid "generate a new key pair" msgstr "" -#: g10/g10.c:166 +#: g10/g10.c:167 msgid "remove key from the public keyring" msgstr "" -#: g10/g10.c:168 +#: g10/g10.c:169 msgid "sign or edit a key" msgstr "" -#: g10/g10.c:169 +#: g10/g10.c:170 msgid "generate a revocation certificate" msgstr "" -#: g10/g10.c:171 +#: g10/g10.c:172 msgid "export keys" msgstr "" -#: g10/g10.c:174 +#: g10/g10.c:175 msgid "import/merge keys" msgstr "" -#: g10/g10.c:175 +#: g10/g10.c:176 msgid "list only the sequence of packets" msgstr "" -#: g10/g10.c:177 +#: g10/g10.c:178 #, fuzzy msgid "export the ownertrust values" msgstr "" @@ -140,7 +325,7 @@ msgstr "" "to any 3rd party. We need it to implement the web-of-trust; it has nothing\n" "to do with the (implicitly created) web-of-certificates." -#: g10/g10.c:178 +#: g10/g10.c:179 #, fuzzy msgid "import ownertrust values" msgstr "" @@ -148,151 +333,155 @@ msgstr "" "to any 3rd party. We need it to implement the web-of-trust; it has nothing\n" "to do with the (implicitly created) web-of-certificates." -#: g10/g10.c:179 +#: g10/g10.c:180 msgid "|[NAMES]|check the trust database" msgstr "" -#: g10/g10.c:180 -msgid "De-Armor a file or stdin" -msgstr "" - #: g10/g10.c:181 -msgid "En-Armor a file or stdin" +msgid "fix a corrupted trust database" msgstr "" #: g10/g10.c:182 -msgid "|algo [files]|print message digests" +msgid "De-Armor a file or stdin" msgstr "" #: g10/g10.c:183 +msgid "En-Armor a file or stdin" +msgstr "" + +#: g10/g10.c:184 +msgid "|algo [files]|print message digests" +msgstr "" + +#: g10/g10.c:185 msgid "print all message digests" msgstr "" -#: g10/g10.c:190 +#: g10/g10.c:192 msgid "" "@\n" "Options:\n" " " msgstr "" -#: g10/g10.c:192 +#: g10/g10.c:194 msgid "create ascii armored output" msgstr "" -#: g10/g10.c:194 +#: g10/g10.c:196 msgid "use this user-id to sign or decrypt" msgstr "" -#: g10/g10.c:195 +#: g10/g10.c:197 msgid "use this user-id for encryption" msgstr "" -#: g10/g10.c:196 +#: g10/g10.c:198 msgid "|N|set compress level N (0 disables)" msgstr "" -#: g10/g10.c:197 +#: g10/g10.c:199 msgid "use canonical text mode" msgstr "" -#: g10/g10.c:199 +#: g10/g10.c:201 msgid "use as output file" msgstr "" -#: g10/g10.c:200 +#: g10/g10.c:202 msgid "verbose" msgstr "" #. { oDryRun, "dry-run", 0, N_("do not make any changes") }, -#: g10/g10.c:202 +#: g10/g10.c:204 msgid "batch mode: never ask" msgstr "" -#: g10/g10.c:203 +#: g10/g10.c:205 msgid "assume yes on most questions" msgstr "" -#: g10/g10.c:204 +#: g10/g10.c:206 msgid "assume no on most questions" msgstr "" -#: g10/g10.c:205 +#: g10/g10.c:207 msgid "add this keyring to the list of keyrings" msgstr "" -#: g10/g10.c:206 +#: g10/g10.c:208 msgid "add this secret keyring to the list" msgstr "" -#: g10/g10.c:207 +#: g10/g10.c:209 msgid "|NAME|use NAME as default secret key" msgstr "" -#: g10/g10.c:208 +#: g10/g10.c:210 msgid "read options from file" msgstr "" -#: g10/g10.c:210 +#: g10/g10.c:212 msgid "set debugging flags" msgstr "" -#: g10/g10.c:211 +#: g10/g10.c:213 msgid "enable full debugging" msgstr "" -#: g10/g10.c:212 +#: g10/g10.c:214 msgid "|FD|write status info to this FD" msgstr "" -#: g10/g10.c:213 +#: g10/g10.c:215 msgid "do not write comment packets" msgstr "" -#: g10/g10.c:214 +#: g10/g10.c:216 msgid "(default is 1)" msgstr "" -#: g10/g10.c:215 +#: g10/g10.c:217 msgid "(default is 3)" msgstr "" -#: g10/g10.c:216 +#: g10/g10.c:218 msgid "|FILE|load extension module FILE" msgstr "" -#: g10/g10.c:217 +#: g10/g10.c:219 msgid "emulate the mode described in RFC1991" msgstr "" -#: g10/g10.c:218 +#: g10/g10.c:220 msgid "|N|use passphrase mode N" msgstr "" -#: g10/g10.c:220 +#: g10/g10.c:222 msgid "|NAME|use message digest algorithm NAME for passphrases" msgstr "" -#: g10/g10.c:222 +#: g10/g10.c:224 msgid "|NAME|use cipher algorithm NAME for passphrases" msgstr "" -#: g10/g10.c:224 +#: g10/g10.c:226 msgid "|NAME|use cipher algorithm NAME" msgstr "" -#: g10/g10.c:225 +#: g10/g10.c:227 msgid "|NAME|use message digest algorithm NAME" msgstr "" -#: g10/g10.c:226 +#: g10/g10.c:228 msgid "|N|use compress algorithm N" msgstr "" -#: g10/g10.c:227 +#: g10/g10.c:229 msgid "throw keyid field of encrypted packets" msgstr "" -#: g10/g10.c:235 +#: g10/g10.c:237 msgid "" "@\n" "Examples:\n" @@ -304,172 +493,172 @@ msgid "" " --fingerprint [names] show fingerprints\n" msgstr "" -#: g10/g10.c:310 +#: g10/g10.c:312 msgid "Please report bugs to .\n" msgstr "" -#: g10/g10.c:315 +#: g10/g10.c:317 msgid "Usage: gpgm [options] [files] (-h for help)" msgstr "" -#: g10/g10.c:317 +#: g10/g10.c:319 msgid "Usage: gpg [options] [files] (-h for help)" msgstr "" -#: g10/g10.c:322 +#: g10/g10.c:324 msgid "" "Syntax: gpgm [options] [files]\n" "GNUPG maintenance utility\n" msgstr "" -#: g10/g10.c:325 +#: g10/g10.c:327 msgid "" "Syntax: gpg [options] [files]\n" "sign, check, encrypt or decrypt\n" "default operation depends on the input data\n" msgstr "" -#: g10/g10.c:331 +#: g10/g10.c:333 msgid "" "\n" "Supported algorithms:\n" msgstr "" -#: g10/g10.c:406 +#: g10/g10.c:408 msgid "usage: gpgm [options] " msgstr "" -#: g10/g10.c:408 +#: g10/g10.c:410 msgid "usage: gpg [options] " msgstr "" -#: g10/g10.c:449 +#: g10/g10.c:451 msgid "conflicting commands\n" msgstr "" -#: g10/g10.c:588 +#: g10/g10.c:590 #, c-format msgid "note: no default option file '%s'\n" msgstr "" -#: g10/g10.c:592 +#: g10/g10.c:594 #, c-format msgid "option file '%s': %s\n" msgstr "" -#: g10/g10.c:599 +#: g10/g10.c:601 #, c-format msgid "reading options from '%s'\n" msgstr "" -#: g10/g10.c:765 g10/g10.c:777 +#: g10/g10.c:768 g10/g10.c:780 msgid "selected cipher algorithm is invalid\n" msgstr "" -#: g10/g10.c:771 g10/g10.c:783 +#: g10/g10.c:774 g10/g10.c:786 msgid "selected digest algorithm is invalid\n" msgstr "" -#: g10/g10.c:786 +#: g10/g10.c:789 #, c-format msgid "compress algorithm must be in range %d..%d\n" msgstr "" -#: g10/g10.c:788 +#: g10/g10.c:791 msgid "completes-needed must be greater than 0\n" msgstr "" -#: g10/g10.c:790 +#: g10/g10.c:793 msgid "marginals-needed must be greater than 1\n" msgstr "" -#: g10/g10.c:793 +#: g10/g10.c:796 msgid "note: simple S2K mode (0) is strongly discouraged\n" msgstr "" -#: g10/g10.c:797 +#: g10/g10.c:800 msgid "invalid S2K mode; must be 0, 1 or 3\n" msgstr "" -#: g10/g10.c:872 +#: g10/g10.c:876 #, c-format msgid "failed to initialize the TrustDB: %s\n" msgstr "" -#: g10/g10.c:878 +#: g10/g10.c:882 msgid "--store [filename]" msgstr "" -#: g10/g10.c:886 +#: g10/g10.c:890 msgid "--symmetric [filename]" msgstr "" -#: g10/g10.c:894 +#: g10/g10.c:898 msgid "--encrypt [filename]" msgstr "" -#: g10/g10.c:907 +#: g10/g10.c:911 msgid "--sign [filename]" msgstr "" -#: g10/g10.c:920 +#: g10/g10.c:924 msgid "--sign --encrypt [filename]" msgstr "" -#: g10/g10.c:934 +#: g10/g10.c:938 msgid "--clearsign [filename]" msgstr "" -#: g10/g10.c:946 +#: g10/g10.c:950 msgid "--decrypt [filename]" msgstr "" -#: g10/g10.c:955 +#: g10/g10.c:959 msgid "--edit-key username" msgstr "" -#: g10/g10.c:963 +#: g10/g10.c:967 msgid "--delete-secret-key username" msgstr "" -#: g10/g10.c:966 +#: g10/g10.c:970 msgid "--delete-key username" msgstr "" -#: g10/encode.c:213 g10/g10.c:989 g10/keylist.c:79 +#: g10/encode.c:213 g10/g10.c:993 g10/keylist.c:79 #, c-format msgid "can't open %s: %s\n" msgstr "" -#: g10/g10.c:1000 +#: g10/g10.c:1004 msgid "-k[v][v][v][c] [userid] [keyring]" msgstr "" -#: g10/g10.c:1055 +#: g10/g10.c:1059 #, c-format msgid "dearmoring failed: %s\n" msgstr "" -#: g10/g10.c:1063 +#: g10/g10.c:1067 #, c-format msgid "enarmoring failed: %s\n" msgstr "" -#: g10/g10.c:1124 +#: g10/g10.c:1128 #, c-format msgid "invalid hash algorithm '%s'\n" msgstr "" -#: g10/g10.c:1194 +#: g10/g10.c:1204 msgid "[filename]" msgstr "" -#: g10/decrypt.c:59 g10/g10.c:1196 g10/verify.c:66 +#: g10/decrypt.c:59 g10/g10.c:1206 g10/verify.c:66 #, c-format msgid "can't open '%s'\n" msgstr "" -#: g10/g10.c:1241 +#: g10/g10.c:1251 msgid "" "RSA keys are deprecated; please consider creating a new key and use this key " "in the future\n" @@ -585,21 +774,21 @@ msgid "" "\n" msgstr "" -#: g10/pkclist.c:170 +#: g10/pkclist.c:168 msgid "" "No owner trust values changed.\n" "\n" msgstr "" -#: g10/pkclist.c:190 +#: g10/pkclist.c:188 msgid "revoked_key.override" msgstr "If you want to use this revoked key anyway, answer \"yes\"." -#: g10/pkclist.c:191 g10/pkclist.c:281 +#: g10/pkclist.c:189 g10/pkclist.c:279 msgid "Use this key anyway? " msgstr "" -#: g10/pkclist.c:276 +#: g10/pkclist.c:274 msgid "" "It is NOT certain that the key belongs to its owner.\n" "If you *really* know what you are doing, you may answer\n" @@ -607,82 +796,82 @@ msgid "" "\n" msgstr "" -#: g10/pkclist.c:280 +#: g10/pkclist.c:278 msgid "untrusted_key.override" msgstr "If you want to use this untrusted key anyway, answer \"yes\"." -#: g10/pkclist.c:285 +#: g10/pkclist.c:283 msgid "WARNING: Using untrusted key!\n" msgstr "" -#: g10/pkclist.c:321 +#: g10/pkclist.c:319 msgid "WARNING: This key has been revoked by its owner!\n" msgstr "" -#: g10/pkclist.c:322 +#: g10/pkclist.c:320 msgid " This could mean that the signature is forgery.\n" msgstr "" -#: g10/pkclist.c:343 +#: g10/pkclist.c:341 msgid "Note: This key has expired!\n" msgstr "" -#: g10/pkclist.c:350 +#: g10/pkclist.c:348 msgid "WARNING: This key is not certified with a trusted signature!\n" msgstr "" -#: g10/pkclist.c:352 +#: g10/pkclist.c:350 msgid "" " There is no indication that the signature belongs to the owner.\n" msgstr "" -#: g10/pkclist.c:367 +#: g10/pkclist.c:365 msgid "WARNING: We do NOT trust this key!\n" msgstr "" -#: g10/pkclist.c:368 +#: g10/pkclist.c:366 msgid " The signature is probably a FORGERY.\n" msgstr "" -#: g10/pkclist.c:375 +#: g10/pkclist.c:373 msgid "" "WARNING: This key is not certified with sufficiently trusted signatures!\n" msgstr "" -#: g10/pkclist.c:378 +#: g10/pkclist.c:376 msgid " It is not certain that the signature belongs to the owner.\n" msgstr "" -#: g10/pkclist.c:423 +#: g10/pkclist.c:421 msgid "" "You did not specify a user ID. (you may use \"-r\")\n" "\n" msgstr "" -#: g10/pkclist.c:427 +#: g10/pkclist.c:425 msgid "pklist.user_id.enter" msgstr "" "Enter the user id of the addresse to whom you want to send the message." -#: g10/pkclist.c:428 +#: g10/pkclist.c:426 msgid "Enter the user ID: " msgstr "" -#: g10/pkclist.c:439 +#: g10/pkclist.c:437 msgid "No such user ID.\n" msgstr "" -#: g10/pkclist.c:473 g10/pkclist.c:500 +#: g10/pkclist.c:471 g10/pkclist.c:498 #, c-format msgid "%s: skipped: %s\n" msgstr "" -#: g10/pkclist.c:481 +#: g10/pkclist.c:479 #, c-format msgid "%s: error checking key: %s\n" msgstr "" -#: g10/pkclist.c:507 +#: g10/pkclist.c:505 msgid "no valid addressees\n" msgstr "" @@ -708,22 +897,22 @@ msgstr "" msgid " (%d) ElGamal (sign and encrypt)\n" msgstr "" -#: g10/keygen.c:387 +#: g10/keygen.c:388 #, c-format msgid " (%d) ElGamal (encrypt only)\n" msgstr "" -#: g10/keygen.c:388 +#: g10/keygen.c:389 #, c-format msgid " (%d) DSA (sign only)\n" msgstr "" -#: g10/keygen.c:389 +#: g10/keygen.c:390 #, c-format msgid " (%d) ElGamal in a v3 packet\n" msgstr "" -#: g10/keygen.c:393 +#: g10/keygen.c:394 msgid "keygen.algo" msgstr "" "Select the algorithm to use.\n" @@ -741,16 +930,15 @@ msgstr "" "You should not select the \"ElGamal in a v3 packet\", because that key is\n" "not compatible to other OpenPGP implementations." - -#: g10/keygen.c:393 +#: g10/keygen.c:394 msgid "Your selection? " msgstr "" -#: g10/keygen.c:419 +#: g10/keygen.c:420 msgid "Invalid selection.\n" msgstr "" -#: g10/keygen.c:431 +#: g10/keygen.c:432 #, c-format msgid "" "About to generate a new %s keypair.\n" @@ -759,61 +947,61 @@ msgid "" " highest suggested keysize is 2048 bits\n" msgstr "" -#: g10/keygen.c:437 +#: g10/keygen.c:438 msgid "keygen.size" msgstr "" -#: g10/keygen.c:438 +#: g10/keygen.c:439 msgid "What keysize do you want? (1024) " msgstr "" -#: g10/keygen.c:443 +#: g10/keygen.c:444 msgid "DSA only allows keysizes from 512 to 1024\n" msgstr "" -#: g10/keygen.c:445 +#: g10/keygen.c:446 msgid "keysize too small; 768 is smallest value allowed.\n" msgstr "" -#: g10/keygen.c:448 +#: g10/keygen.c:449 msgid "" "Keysizes larger than 2048 are not suggested because\n" "computations take REALLY long!\n" msgstr "" -#: g10/keygen.c:450 +#: g10/keygen.c:451 msgid "keygen.size.huge.okay" msgstr "" -#: g10/keygen.c:451 +#: g10/keygen.c:452 msgid "Are you sure that you want this keysize? " msgstr "" -#: g10/keygen.c:452 +#: g10/keygen.c:453 msgid "" "Okay, but keep in mind that your monitor and keyboard radiation is also very " "vulnerable to attacks!\n" msgstr "" -#: g10/keygen.c:459 +#: g10/keygen.c:460 msgid "keygen.size.large.okay" msgstr "" -#: g10/keygen.c:460 +#: g10/keygen.c:461 msgid "Do you really need such a large keysize? " msgstr "" -#: g10/keygen.c:466 +#: g10/keygen.c:467 #, c-format msgid "Requested keysize is %u bits\n" msgstr "" -#: g10/keygen.c:469 g10/keygen.c:473 +#: g10/keygen.c:470 g10/keygen.c:474 #, c-format msgid "rounded up to %u bits\n" msgstr "" -#: g10/keygen.c:485 +#: g10/keygen.c:486 msgid "" "Please specify how long the key should be valid.\n" " 0 = key does not expire\n" @@ -823,37 +1011,37 @@ msgid "" " y = key expires in n years\n" msgstr "" -#: g10/keygen.c:500 +#: g10/keygen.c:501 msgid "keygen.valid" msgstr "" -#: g10/keygen.c:500 +#: g10/keygen.c:501 msgid "Key is valid for? (0) " msgstr "" -#: g10/keygen.c:511 +#: g10/keygen.c:512 msgid "invalid value\n" msgstr "" -#: g10/keygen.c:516 +#: g10/keygen.c:517 msgid "Key does not expire at all\n" msgstr "" #. print the date when the key expires -#: g10/keygen.c:519 +#: g10/keygen.c:520 #, c-format msgid "Key expires at %s\n" msgstr "" -#: g10/keygen.c:524 +#: g10/keygen.c:525 msgid "keygen.valid.okay" msgstr "" -#: g10/keygen.c:525 +#: g10/keygen.c:526 msgid "Is this correct (y/n)? " msgstr "" -#: g10/keygen.c:553 +#: g10/keygen.c:554 msgid "" "\n" "You need a User-ID to identify your key; the software constructs the user " @@ -863,51 +1051,51 @@ msgid "" "\n" msgstr "" -#: g10/keygen.c:564 +#: g10/keygen.c:565 msgid "keygen.name" msgstr "" -#: g10/keygen.c:564 +#: g10/keygen.c:565 msgid "Real name: " msgstr "" -#: g10/keygen.c:568 +#: g10/keygen.c:569 msgid "Invalid character in name\n" msgstr "" -#: g10/keygen.c:570 +#: g10/keygen.c:571 msgid "Name may not start with a digit\n" msgstr "" -#: g10/keygen.c:572 +#: g10/keygen.c:573 msgid "Name must be at least 5 characters long\n" msgstr "" -#: g10/keygen.c:580 +#: g10/keygen.c:581 msgid "keygen.email" msgstr "" -#: g10/keygen.c:580 +#: g10/keygen.c:581 msgid "Email address: " msgstr "" -#: g10/keygen.c:592 +#: g10/keygen.c:593 msgid "Not a valid email address\n" msgstr "" -#: g10/keygen.c:600 +#: g10/keygen.c:601 msgid "keygen.comment" msgstr "" -#: g10/keygen.c:600 +#: g10/keygen.c:601 msgid "Comment: " msgstr "" -#: g10/keygen.c:606 +#: g10/keygen.c:607 msgid "Invalid character in comment\n" msgstr "" -#: g10/keygen.c:626 +#: g10/keygen.c:627 #, c-format msgid "" "You selected this USER-ID:\n" @@ -915,11 +1103,11 @@ msgid "" "\n" msgstr "" -#: g10/keygen.c:629 +#: g10/keygen.c:630 msgid "NnCcEeOoQq" msgstr "" -#: g10/keygen.c:638 +#: g10/keygen.c:639 msgid "keygen.userid.cmd" msgstr "" "N to change the name.\n" @@ -928,21 +1116,21 @@ msgstr "" "O to continue with key generation.\n" "Q to to quit the key generation." -#: g10/keygen.c:639 +#: g10/keygen.c:640 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? " msgstr "" -#: g10/keygen.c:686 +#: g10/keygen.c:687 msgid "" "You need a Passphrase to protect your secret key.\n" "\n" msgstr "" -#: g10/keyedit.c:377 g10/keygen.c:694 +#: g10/keyedit.c:388 g10/keygen.c:695 msgid "passphrase not correctly repeated; try again.\n" msgstr "" -#: g10/keygen.c:700 +#: g10/keygen.c:701 msgid "" "You don't want a passphrase - this is probably a *bad* idea!\n" "I will do it anyway. You can change your passphrase at any time,\n" @@ -950,7 +1138,7 @@ msgid "" "\n" msgstr "" -#: g10/keygen.c:721 +#: g10/keygen.c:722 msgid "" "We need to generate a lot of random bytes. It is a good idea to perform\n" "some other action (work in another window, move the mouse, utilize the\n" @@ -958,48 +1146,48 @@ msgid "" "number generator a better chance to gain enough entropy.\n" msgstr "" -#: g10/keygen.c:788 +#: g10/keygen.c:789 msgid "Key generation can only be used in interactive mode\n" msgstr "" -#: g10/keygen.c:796 +#: g10/keygen.c:797 msgid "DSA keypair will have 1024 bits.\n" msgstr "" -#: g10/keygen.c:802 +#: g10/keygen.c:803 msgid "Key generation cancelled.\n" msgstr "" -#: g10/keygen.c:812 -#, c-format -msgid "writing public certificate to '%s'\n" -msgstr "" - #: g10/keygen.c:813 #, c-format +msgid "writing public certificate to '%s'\n" +msgstr "" + +#: g10/keygen.c:814 +#, c-format msgid "writing secret certificate to '%s'\n" msgstr "" -#: g10/keygen.c:890 +#: g10/keygen.c:891 msgid "public and secret key created and signed.\n" msgstr "" -#: g10/keygen.c:892 +#: g10/keygen.c:893 msgid "" "Note that this key cannot be used for encryption. You may want to use\n" "the command \"--add-key\" to generate a secondary key for this purpose.\n" msgstr "" -#: g10/keygen.c:906 g10/keygen.c:990 +#: g10/keygen.c:907 g10/keygen.c:991 #, c-format msgid "Key generation failed: %s\n" msgstr "" -#: g10/keygen.c:967 +#: g10/keygen.c:968 msgid "keygen.sub.okay" msgstr "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key." -#: g10/keygen.c:968 +#: g10/keygen.c:969 msgid "Really create? " msgstr "" @@ -1033,7 +1221,7 @@ msgstr "" msgid "using secondary key %08lX instead of primary key %08lX\n" msgstr "" -#: g10/import.c:105 g10/trustdb.c:1349 +#: g10/import.c:105 g10/trustdb.c:1389 #, c-format msgid "can't open file: %s\n" msgstr "" @@ -1043,7 +1231,7 @@ msgstr "" msgid "skipping block of type %d\n" msgstr "" -#: g10/import.c:131 g10/trustdb.c:1427 +#: g10/import.c:131 g10/trustdb.c:1464 #, c-format msgid "read error: %s\n" msgstr "" @@ -1279,338 +1467,343 @@ msgstr "" msgid "%d user ids without valid self-signatures detected\n" msgstr "" -#: g10/keyedit.c:249 +#: g10/keyedit.c:257 #, c-format msgid "Already signed by key %08lX\n" msgstr "" -#: g10/keyedit.c:257 +#: g10/keyedit.c:265 #, c-format msgid "Nothing to sign with key %08lX\n" msgstr "" -#: g10/keyedit.c:265 +#: g10/keyedit.c:274 msgid "" "Are you really sure that you want to sign this key\n" "with your key: \"" msgstr "" -#: g10/keyedit.c:272 +#: g10/keyedit.c:281 msgid "sign_uid.okay" msgstr "" -#: g10/keyedit.c:272 +#: g10/keyedit.c:281 msgid "Really sign? " msgstr "" -#: g10/keyedit.c:293 +#: g10/keyedit.c:302 #, c-format msgid "signing failed: %s\n" msgstr "" -#: g10/keyedit.c:344 +#: g10/keyedit.c:355 msgid "This key is not protected.\n" msgstr "" -#: g10/keyedit.c:347 +#: g10/keyedit.c:358 msgid "Key is protected.\n" msgstr "" -#: g10/keyedit.c:364 +#: g10/keyedit.c:375 #, c-format msgid "Can't edit this key: %s\n" msgstr "" -#: g10/keyedit.c:369 +#: g10/keyedit.c:380 msgid "" "Enter the new passphrase for this secret key.\n" "\n" msgstr "" -#: g10/keyedit.c:381 +#: g10/keyedit.c:392 msgid "" "You don't want a passphrase - this is probably a *bad* idea!\n" "\n" msgstr "" -#: g10/keyedit.c:383 +#: g10/keyedit.c:394 msgid "change_passwd.empty.okay" msgstr "" -#: g10/keyedit.c:384 +#: g10/keyedit.c:395 msgid "Do you really want to do this? " msgstr "" -#: g10/keyedit.c:439 +#: g10/keyedit.c:450 msgid "quit" msgstr "" -#: g10/keyedit.c:439 +#: g10/keyedit.c:450 msgid "quit this menu" msgstr "" -#: g10/keyedit.c:440 +#: g10/keyedit.c:451 msgid "q" msgstr "" -#: g10/keyedit.c:441 +#: g10/keyedit.c:452 msgid "save" msgstr "" -#: g10/keyedit.c:441 +#: g10/keyedit.c:452 msgid "save and quit" msgstr "" -#: g10/keyedit.c:442 +#: g10/keyedit.c:453 msgid "help" msgstr "" -#: g10/keyedit.c:442 +#: g10/keyedit.c:453 msgid "show this help" msgstr "" -#: g10/keyedit.c:444 +#: g10/keyedit.c:455 msgid "fpr" msgstr "" -#: g10/keyedit.c:444 +#: g10/keyedit.c:455 msgid "show fingerprint" msgstr "" -#: g10/keyedit.c:445 +#: g10/keyedit.c:456 msgid "list" msgstr "" -#: g10/keyedit.c:445 +#: g10/keyedit.c:456 msgid "list key and user ids" msgstr "" -#: g10/keyedit.c:446 +#: g10/keyedit.c:457 msgid "l" msgstr "" -#: g10/keyedit.c:447 +#: g10/keyedit.c:458 msgid "uid" msgstr "" -#: g10/keyedit.c:447 +#: g10/keyedit.c:458 msgid "select user id N" msgstr "" -#: g10/keyedit.c:448 +#: g10/keyedit.c:459 msgid "key" msgstr "" -#: g10/keyedit.c:448 +#: g10/keyedit.c:459 msgid "select secondary key N" msgstr "" -#: g10/keyedit.c:449 +#: g10/keyedit.c:460 msgid "check" msgstr "" -#: g10/keyedit.c:449 +#: g10/keyedit.c:460 msgid "list signatures" msgstr "" -#: g10/keyedit.c:450 +#: g10/keyedit.c:461 msgid "c" msgstr "" -#: g10/keyedit.c:451 +#: g10/keyedit.c:462 msgid "sign" msgstr "" -#: g10/keyedit.c:451 +#: g10/keyedit.c:462 msgid "sign the key" msgstr "" -#: g10/keyedit.c:452 +#: g10/keyedit.c:463 msgid "s" msgstr "" -#: g10/keyedit.c:453 +#: g10/keyedit.c:464 msgid "debug" msgstr "" -#: g10/keyedit.c:454 +#: g10/keyedit.c:465 msgid "adduid" msgstr "" -#: g10/keyedit.c:454 +#: g10/keyedit.c:465 msgid "add a user id" msgstr "" -#: g10/keyedit.c:455 +#: g10/keyedit.c:466 msgid "deluid" msgstr "" -#: g10/keyedit.c:455 +#: g10/keyedit.c:466 msgid "delete user id" msgstr "" -#: g10/keyedit.c:456 +#: g10/keyedit.c:467 msgid "addkey" msgstr "" -#: g10/keyedit.c:456 +#: g10/keyedit.c:467 msgid "add a secondary key" msgstr "" -#: g10/keyedit.c:457 +#: g10/keyedit.c:468 msgid "delkey" msgstr "" -#: g10/keyedit.c:457 +#: g10/keyedit.c:468 msgid "delete a secondary key" msgstr "" -#: g10/keyedit.c:458 +#: g10/keyedit.c:469 msgid "toggle" msgstr "" -#: g10/keyedit.c:458 +#: g10/keyedit.c:469 msgid "toggle between secret and public key listing" msgstr "" -#: g10/keyedit.c:460 +#: g10/keyedit.c:471 msgid "t" msgstr "" -#: g10/keyedit.c:461 +#: g10/keyedit.c:472 msgid "pref" msgstr "" -#: g10/keyedit.c:461 +#: g10/keyedit.c:472 msgid "list preferences" msgstr "" -#: g10/keyedit.c:462 +#: g10/keyedit.c:473 msgid "passwd" msgstr "" -#: g10/keyedit.c:462 +#: g10/keyedit.c:473 msgid "change the passphrase" msgstr "" -#: g10/keyedit.c:463 +#: g10/keyedit.c:474 msgid "trust" msgstr "" -#: g10/keyedit.c:463 +#: g10/keyedit.c:474 msgid "change the ownertrust" msgstr "" -#: g10/keyedit.c:481 +#: g10/keyedit.c:492 msgid "can't do that in batchmode\n" msgstr "" #. check that they match #. FIXME: check that they both match -#: g10/keyedit.c:504 +#: g10/keyedit.c:515 msgid "Secret key is available.\n" msgstr "" -#: g10/keyedit.c:520 +#: g10/keyedit.c:531 msgid "keyedit.cmd" msgstr "Please enter \"help\"." -#: g10/keyedit.c:520 +#: g10/keyedit.c:531 msgid "Command> " msgstr "" -#: g10/keyedit.c:545 +#: g10/keyedit.c:556 msgid "Need the secret key to to this.\n" msgstr "" -#: g10/keyedit.c:564 +#: g10/keyedit.c:575 msgid "keyedit.save.okay" msgstr "" -#: g10/keyedit.c:565 +#: g10/keyedit.c:576 msgid "Save changes? " msgstr "" -#: g10/keyedit.c:567 +#: g10/keyedit.c:578 msgid "keyedit.cancel.okay" msgstr "" -#: g10/keyedit.c:568 +#: g10/keyedit.c:579 msgid "Quit without saving? " msgstr "" -#: g10/keyedit.c:578 +#: g10/keyedit.c:589 #, c-format msgid "update failed: %s\n" msgstr "" -#: g10/keyedit.c:585 +#: g10/keyedit.c:596 #, c-format msgid "update secret failed: %s\n" msgstr "" -#: g10/keyedit.c:593 +#: g10/keyedit.c:603 msgid "Key not changed so no update needed.\n" msgstr "" -#: g10/keyedit.c:623 +#: g10/keyedit.c:606 g10/keyedit.c:664 +#, c-format +msgid "update of trust db failed: %s\n" +msgstr "" + +#: g10/keyedit.c:637 msgid "keyedit.sign_all.okay" msgstr "" -#: g10/keyedit.c:624 +#: g10/keyedit.c:638 msgid "Really sign all user ids? " msgstr "" -#: g10/keyedit.c:625 +#: g10/keyedit.c:639 msgid "Hint: Select the user ids to sign\n" msgstr "" -#: g10/keyedit.c:653 +#: g10/keyedit.c:675 msgid "You must select at least one user id.\n" msgstr "" -#: g10/keyedit.c:655 +#: g10/keyedit.c:677 msgid "You can't delete the last user id!\n" msgstr "" -#: g10/keyedit.c:657 +#: g10/keyedit.c:679 msgid "keyedit.remove.uid.okay" msgstr "" -#: g10/keyedit.c:658 +#: g10/keyedit.c:680 msgid "Really remove all selected user ids? " msgstr "" -#: g10/keyedit.c:659 +#: g10/keyedit.c:681 msgid "Really remove this user id? " msgstr "" -#: g10/keyedit.c:682 +#: g10/keyedit.c:704 msgid "You must select at least one key.\n" msgstr "" -#: g10/keyedit.c:684 +#: g10/keyedit.c:706 msgid "keyedit.remove.subkey.okay" msgstr "" -#: g10/keyedit.c:686 +#: g10/keyedit.c:708 msgid "Do you really want to delete the selected keys? " msgstr "" -#: g10/keyedit.c:687 +#: g10/keyedit.c:709 msgid "Do you really want to delete this key? " msgstr "" -#: g10/keyedit.c:724 +#: g10/keyedit.c:746 msgid "Invalid command (try \"help\")\n" msgstr "" -#: g10/keyedit.c:1104 +#: g10/keyedit.c:1129 #, c-format msgid "No user id with index %d\n" msgstr "" -#: g10/keyedit.c:1149 +#: g10/keyedit.c:1174 #, c-format msgid "No secondary key with index %d\n" msgstr "" @@ -1634,15 +1827,15 @@ msgstr "" msgid "Signature made %.*s using %s key ID %08lX\n" msgstr "" -#: g10/mainproc.c:852 +#: g10/mainproc.c:854 msgid "BAD signature from \"" msgstr "" -#: g10/mainproc.c:853 +#: g10/mainproc.c:855 msgid "Good signature from \"" msgstr "" -#: g10/mainproc.c:864 +#: g10/mainproc.c:866 #, c-format msgid "Can't check signature: %s\n" msgstr "" @@ -1721,77 +1914,76 @@ msgstr "" msgid "warning: signature key expired %s\n" msgstr "" -#: g10/trustdb.c:318 -#, c-format -msgid "error reading sigrec: %s\n" +#: g10/trustdb.c:127 +msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n" msgstr "" -#: g10/trustdb.c:323 +#: g10/trustdb.c:406 #, c-format msgid "chained sigrec %lu has a wrong owner\n" msgstr "" -#: g10/trustdb.c:370 +#: g10/trustdb.c:453 #, c-format msgid "key %08lX: secret key without public key\n" msgstr "" -#: g10/trustdb.c:375 +#: g10/trustdb.c:458 #, c-format msgid "key %08lX: secret and public key don't match\n" msgstr "" -#: g10/trustdb.c:386 +#: g10/trustdb.c:469 #, c-format msgid "key %08lX: can't put it into the trustdb\n" msgstr "" -#: g10/trustdb.c:392 +#: g10/trustdb.c:475 #, c-format msgid "key %08lX: query record failed\n" msgstr "" -#: g10/trustdb.c:401 +#: g10/trustdb.c:484 #, c-format msgid "key %08lX: already in ultikey_table\n" msgstr "" -#: g10/trustdb.c:408 +#: g10/trustdb.c:491 #, c-format msgid "enum_secret_keys failed: %s\n" msgstr "" -#: g10/trustdb.c:913 +#: g10/trustdb.c:964 #, c-format msgid "key %08lX.%lu, uid %02X%02X: no public key for signature %08lX\n" msgstr "" -#: g10/trustdb.c:920 +#: g10/trustdb.c:971 #, c-format msgid "key %08lX.%lu, uid %02X%02X: invalid %ssignature: %s\n" msgstr "" -#: g10/trustdb.c:1624 +#: g10/trustdb.c:1658 #, c-format msgid "key %08lX: insert trust record failed: %s\n" msgstr "" -#: g10/trustdb.c:1628 +#: g10/trustdb.c:1662 #, c-format msgid "key %08lX.%lu: inserted into trustdb\n" msgstr "" -#: g10/trustdb.c:1639 +#: g10/trustdb.c:1670 #, c-format msgid "key %08lX.%lu: created in future (time warp or clock problem)\n" msgstr "" -#: g10/trustdb.c:1647 +#: g10/trustdb.c:1678 #, c-format msgid "key %08lX.%lu: expired at %s\n" msgstr "" -#: g10/trustdb.c:1656 +#: g10/trustdb.c:1687 #, c-format msgid "key %08lX.%lu: trust check failed: %s\n" msgstr "" diff --git a/po/fr.po b/po/fr.po index ddc51a7c7..8d0e34644 100644 --- a/po/fr.po +++ b/po/fr.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg-0.4.0\n" -"POT-Creation-Date: 1998-09-30 19:01+0200\n" +"POT-Creation-Date: 1998-10-07 14:24+0200\n" "PO-Revision-Date: 1998-09-17 03:14+0200\n" "Last-Translator: Gaël Quéri \n" "Language-Team: French \n" @@ -25,12 +25,214 @@ msgstr "oui" msgid "yY" msgstr "oO" -#: cipher/rand-dummy.c:106 +#: util/errors.c:54 +msgid "General error" +msgstr "" + +#: util/errors.c:55 +msgid "Unknown packet type" +msgstr "" + +#: util/errors.c:56 +msgid "Unknown version" +msgstr "" + +#: util/errors.c:57 +msgid "Unknown pubkey algorithm" +msgstr "" + +#: util/errors.c:58 +msgid "Unknown digest algorithm" +msgstr "" + +#: util/errors.c:59 +#, fuzzy +msgid "Bad public key" +msgstr "pas de porte-clés public par défaut\n" + +#: util/errors.c:60 +#, fuzzy +msgid "Bad secret key" +msgstr "lister les clés secrètes" + +#: util/errors.c:61 +#, fuzzy +msgid "Bad signature" +msgstr "une mauvaise signature\n" + +#: util/errors.c:62 +msgid "Checksum error" +msgstr "" + +#: util/errors.c:63 +#, fuzzy +msgid "Bad passphrase" +msgstr "Répétez le mot de passe: " + +#: util/errors.c:64 +#, fuzzy +msgid "Public key not found" +msgstr "clé %08lX: clé publique pas trouvée: %s\n" + +#: util/errors.c:65 +#, fuzzy +msgid "Unknown cipher algorithm" +msgstr "|NOM|utiliser l'algorithme de cryptage NOM" + +#: util/errors.c:66 +#, fuzzy +msgid "Can't open the keyring" +msgstr "ne peut écrire le porte-clés\n" + +#: util/errors.c:67 +#, fuzzy +msgid "Invalid packet" +msgstr "valeur invalide\n" + +#: util/errors.c:68 +msgid "Invalid armor" +msgstr "" + +#: util/errors.c:69 +#, fuzzy +msgid "No such user id" +msgstr "Pas de tel utilisateur.\n" + +#: util/errors.c:70 +#, fuzzy +msgid "Secret key not available" +msgstr "La clé secrète est disponible.\n" + +#: util/errors.c:71 +#, fuzzy +msgid "Wrong secret key used" +msgstr "lister les clés secrètes" + +#: util/errors.c:72 +msgid "Not supported" +msgstr "" + +#: util/errors.c:73 +#, fuzzy +msgid "Bad key" +msgstr "aj.clé" + +#: util/errors.c:74 +#, fuzzy +msgid "File read error" +msgstr "erreur de lecture: %s\n" + +#: util/errors.c:75 +msgid "File write error" +msgstr "" + +#: util/errors.c:76 +#, fuzzy +msgid "Unknown compress algorithm" +msgstr "|N|utiliser l'algorithme de compression N" + +#: util/errors.c:77 +msgid "File open error" +msgstr "" + +#: util/errors.c:78 +msgid "File create error" +msgstr "" + +#: util/errors.c:79 +#, fuzzy +msgid "Invalid passphrase" +msgstr "Entrez le mot de passe: " + +#: util/errors.c:80 +msgid "Unimplemented pubkey algorithm" +msgstr "" + +#: util/errors.c:81 +#, fuzzy +msgid "Unimplemented cipher algorithm" +msgstr "l'algorithme de cryptage sélectionné est invalide\n" + +#: util/errors.c:82 +msgid "Unknown signature class" +msgstr "" + +#: util/errors.c:83 +msgid "Trust database error" +msgstr "" + +#: util/errors.c:84 +msgid "Bad MPI" +msgstr "" + +#: util/errors.c:85 +msgid "Resource limit" +msgstr "" + +#: util/errors.c:86 +#, fuzzy +msgid "Invalid keyring" +msgstr "Choix invalide.\n" + +#: util/errors.c:87 +msgid "Bad certificate" +msgstr "" + +#: util/errors.c:88 +#, fuzzy +msgid "Malformed user id" +msgstr "ajouter un utilisateur" + +#: util/errors.c:89 +msgid "File close error" +msgstr "" + +#: util/errors.c:90 +msgid "File rename error" +msgstr "" + +#: util/errors.c:91 +msgid "File delete error" +msgstr "" + +#: util/errors.c:92 +msgid "Unexpected data" +msgstr "" + +#: util/errors.c:93 +msgid "Timestamp conflict" +msgstr "" + +#: util/errors.c:94 +#, fuzzy +msgid "Unusable pubkey algorithm" +msgstr "|N|utiliser l'algorithme de compression N" + +#: util/errors.c:95 +#, fuzzy +msgid "File exists" +msgstr "Le fichier '%s' existe. " + +#: util/errors.c:96 +msgid "Weak key" +msgstr "" + +#: util/logger.c:177 +#, c-format +msgid "Ohhhh jeeee ... this is a bug (%s:%d:%s)\n" +msgstr "" + +#: util/logger.c:183 +#, c-format +msgid "you found a bug ... (%s:%d)\n" +msgstr "" + +#: cipher/rand-dummy.c:112 msgid "warning: using insecure random number generator!!\n" msgstr "" "attention: utilisation d'un générateur de nombres aléatoires peu sûr!!\n" -#: cipher/rand-dummy.c:107 +#: cipher/rand-dummy.c:113 msgid "" "The random number generator is only a kludge to let\n" "it compile - it is in no way a strong RNG!\n" @@ -55,7 +257,7 @@ msgstr "" "Il n'y a pas assez d'octets aléatoires disponibles. Faites autre chose\n" "pour que l'OS puisse amasser plus d'entropie! (il faut %d octets de plus)\n" -#: g10/g10.c:146 +#: g10/g10.c:147 msgid "" "@Commands:\n" " " @@ -63,115 +265,119 @@ msgstr "" "@Commandes:\n" " " -#: g10/g10.c:149 +#: g10/g10.c:150 msgid "|[file]|make a signature" msgstr "|[fichier]|faire une signature" -#: g10/g10.c:150 +#: g10/g10.c:151 msgid "|[file]|make a clear text signature" msgstr "|[fichier]|faire une signature en texte clair" -#: g10/g10.c:151 +#: g10/g10.c:152 msgid "make a detached signature" msgstr "faire une signature détachée" -#: g10/g10.c:152 +#: g10/g10.c:153 msgid "encrypt data" msgstr "crypter les données" -#: g10/g10.c:153 +#: g10/g10.c:154 msgid "encryption only with symmetric cipher" msgstr "cryptage symétrique seumement" -#: g10/g10.c:154 +#: g10/g10.c:155 msgid "store only" msgstr "pas d'action" -#: g10/g10.c:155 +#: g10/g10.c:156 msgid "decrypt data (default)" msgstr "décrypter les données (défaut)" -#: g10/g10.c:156 +#: g10/g10.c:157 msgid "verify a signature" msgstr "vérifier une signature" -#: g10/g10.c:158 +#: g10/g10.c:159 msgid "list keys" msgstr "lister les clés" -#: g10/g10.c:159 +#: g10/g10.c:160 msgid "list keys and signatures" msgstr "lister les clés et les signatures" -#: g10/g10.c:160 +#: g10/g10.c:161 msgid "check key signatures" msgstr "vérifier les signatures des clés" -#: g10/g10.c:161 +#: g10/g10.c:162 msgid "list keys and fingerprints" msgstr "lister les clés et les empreintes" -#: g10/g10.c:162 +#: g10/g10.c:163 msgid "list secret keys" msgstr "lister les clés secrètes" -#: g10/g10.c:164 +#: g10/g10.c:165 msgid "generate a new key pair" msgstr "générer une nouvelle paire de clés" -#: g10/g10.c:166 +#: g10/g10.c:167 msgid "remove key from the public keyring" msgstr "enlever la clé du porte-clés public" -#: g10/g10.c:168 +#: g10/g10.c:169 msgid "sign or edit a key" msgstr "signer ou éditer une clé" -#: g10/g10.c:169 +#: g10/g10.c:170 msgid "generate a revocation certificate" msgstr "générer un certificat de révocation" -#: g10/g10.c:171 +#: g10/g10.c:172 msgid "export keys" msgstr "exporter les clés" -#: g10/g10.c:174 +#: g10/g10.c:175 msgid "import/merge keys" msgstr "importer/fusionner les clés" -#: g10/g10.c:175 +#: g10/g10.c:176 msgid "list only the sequence of packets" msgstr "ne lister qu'une suite de paquets" -#: g10/g10.c:177 +#: g10/g10.c:178 msgid "export the ownertrust values" msgstr "exporter les valeurs de confiance" -#: g10/g10.c:178 +#: g10/g10.c:179 msgid "import ownertrust values" msgstr "importer les valeurs de confiance" -#: g10/g10.c:179 +#: g10/g10.c:180 msgid "|[NAMES]|check the trust database" msgstr "|[NOMS]|vérifier la base de confiance" -#: g10/g10.c:180 +#: g10/g10.c:181 +msgid "fix a corrupted trust database" +msgstr "" + +#: g10/g10.c:182 msgid "De-Armor a file or stdin" msgstr "Enlever l'armure d'un fichier ou de stdin" -#: g10/g10.c:181 +#: g10/g10.c:183 msgid "En-Armor a file or stdin" msgstr "Mettre une armure à un fichier ou à stdin" -#: g10/g10.c:182 +#: g10/g10.c:184 msgid "|algo [files]|print message digests" msgstr "|alg. [fich.]|indiquer les fonctions de hachage" -#: g10/g10.c:183 +#: g10/g10.c:185 msgid "print all message digests" msgstr "écrire toutes les fonctions de hachage" -#: g10/g10.c:190 +#: g10/g10.c:192 msgid "" "@\n" "Options:\n" @@ -181,128 +387,128 @@ msgstr "" "Options:\n" " " -#: g10/g10.c:192 +#: g10/g10.c:194 msgid "create ascii armored output" msgstr "créer une sortie ascii armurée" -#: g10/g10.c:194 +#: g10/g10.c:196 msgid "use this user-id to sign or decrypt" msgstr "utiliser ce nom d'utilisateur pour signer/décrypter" -#: g10/g10.c:195 +#: g10/g10.c:197 msgid "use this user-id for encryption" msgstr "utiliser ce nom d'utilisateur pour crypter" -#: g10/g10.c:196 +#: g10/g10.c:198 msgid "|N|set compress level N (0 disables)" msgstr "|N|niveau de compression N (0 désactive)" -#: g10/g10.c:197 +#: g10/g10.c:199 msgid "use canonical text mode" msgstr "utiliser le mode de texte canonique" -#: g10/g10.c:199 +#: g10/g10.c:201 msgid "use as output file" msgstr "utiliser comme fichier de sortie" -#: g10/g10.c:200 +#: g10/g10.c:202 msgid "verbose" msgstr "bavard" #. { oDryRun, "dry-run", 0, N_("do not make any changes") }, -#: g10/g10.c:202 +#: g10/g10.c:204 msgid "batch mode: never ask" msgstr "mode automatique: ne jamais demander" -#: g10/g10.c:203 +#: g10/g10.c:205 msgid "assume yes on most questions" msgstr "supposer oui à la plupart des questions" -#: g10/g10.c:204 +#: g10/g10.c:206 msgid "assume no on most questions" msgstr "supposer non à la plupart des questions" -#: g10/g10.c:205 +#: g10/g10.c:207 msgid "add this keyring to the list of keyrings" msgstr "ajouter ce porte-clés à la liste des porte-clés" -#: g10/g10.c:206 +#: g10/g10.c:208 msgid "add this secret keyring to the list" msgstr "ajouter ce porte-clés secret à la liste" -#: g10/g10.c:207 +#: g10/g10.c:209 msgid "|NAME|use NAME as default secret key" msgstr "|NOM|utiliser NOM comme clé secrète par défaut" -#: g10/g10.c:208 +#: g10/g10.c:210 msgid "read options from file" msgstr "lire les options du fichier" -#: g10/g10.c:210 +#: g10/g10.c:212 msgid "set debugging flags" msgstr "choisir les attributs de déboguage" -#: g10/g10.c:211 +#: g10/g10.c:213 msgid "enable full debugging" msgstr "permettre un déboguage complet" -#: g10/g10.c:212 +#: g10/g10.c:214 msgid "|FD|write status info to this FD" msgstr "|FD|écrire les informations d'état sur ce descripteur" -#: g10/g10.c:213 +#: g10/g10.c:215 msgid "do not write comment packets" msgstr "ne pas écrire de paquets de commentaire" -#: g10/g10.c:214 +#: g10/g10.c:216 msgid "(default is 1)" msgstr "(1 par défaut)" -#: g10/g10.c:215 +#: g10/g10.c:217 msgid "(default is 3)" msgstr "(3 par défaut)" -#: g10/g10.c:216 +#: g10/g10.c:218 #, fuzzy msgid "|FILE|load extension module FILE" msgstr "|fich|charger un module d'extension" -#: g10/g10.c:217 +#: g10/g10.c:219 msgid "emulate the mode described in RFC1991" msgstr "émuler le mode décrit dans la RFC1991" -#: g10/g10.c:218 +#: g10/g10.c:220 #, fuzzy msgid "|N|use passphrase mode N" msgstr "Entrez le mot de passe: " -#: g10/g10.c:220 +#: g10/g10.c:222 #, fuzzy msgid "|NAME|use message digest algorithm NAME for passphrases" msgstr "|NOM|utiliser la fonction de hachage NOM" -#: g10/g10.c:222 +#: g10/g10.c:224 #, fuzzy msgid "|NAME|use cipher algorithm NAME for passphrases" msgstr "|NOM|utiliser l'algorithme de cryptage NOM" -#: g10/g10.c:224 +#: g10/g10.c:226 msgid "|NAME|use cipher algorithm NAME" msgstr "|NOM|utiliser l'algorithme de cryptage NOM" -#: g10/g10.c:225 +#: g10/g10.c:227 msgid "|NAME|use message digest algorithm NAME" msgstr "|NOM|utiliser la fonction de hachage NOM" -#: g10/g10.c:226 +#: g10/g10.c:228 msgid "|N|use compress algorithm N" msgstr "|N|utiliser l'algorithme de compression N" -#: g10/g10.c:227 +#: g10/g10.c:229 msgid "throw keyid field of encrypted packets" msgstr "enlever l'idendification de la clé des paquets cryptés" -#: g10/g10.c:235 +#: g10/g10.c:237 #, fuzzy msgid "" "@\n" @@ -323,19 +529,19 @@ msgstr "" " --list-keys [utilisateur] montrer les clés\n" " --fingerprint [utilisateur] montrer les empreintes\n" -#: g10/g10.c:310 +#: g10/g10.c:312 msgid "Please report bugs to .\n" msgstr "Rapporter toutes anomalies à .\n" -#: g10/g10.c:315 +#: g10/g10.c:317 msgid "Usage: gpgm [options] [files] (-h for help)" msgstr "Utilisation: gpgm [options] [fichiers] (-h pour l'aide)" -#: g10/g10.c:317 +#: g10/g10.c:319 msgid "Usage: gpg [options] [files] (-h for help)" msgstr "Utilisation: gpg [options] [fichiers] (-h pour l'aide)" -#: g10/g10.c:322 +#: g10/g10.c:324 msgid "" "Syntax: gpgm [options] [files]\n" "GNUPG maintenance utility\n" @@ -343,7 +549,7 @@ msgstr "" "Syntaxe: gpgm [options] [fichiers]\n" "utilitaire de maitenance de GNUPG\n" -#: g10/g10.c:325 +#: g10/g10.c:327 msgid "" "Syntax: gpg [options] [files]\n" "sign, check, encrypt or decrypt\n" @@ -353,7 +559,7 @@ msgstr "" "signer, vérifier, crypter ou décrypter\n" "l'opération par défaut dépend des données entrées\n" -#: g10/g10.c:331 +#: g10/g10.c:333 msgid "" "\n" "Supported algorithms:\n" @@ -361,141 +567,141 @@ msgstr "" "\n" "Algorithmes supportés:\n" -#: g10/g10.c:406 +#: g10/g10.c:408 msgid "usage: gpgm [options] " msgstr "utilisation: gpgm [options] " -#: g10/g10.c:408 +#: g10/g10.c:410 msgid "usage: gpg [options] " msgstr "utilisation: gpg [options] " -#: g10/g10.c:449 +#: g10/g10.c:451 msgid "conflicting commands\n" msgstr "commandes en conflit\n" -#: g10/g10.c:588 +#: g10/g10.c:590 #, c-format msgid "note: no default option file '%s'\n" msgstr "note: pas de fichier d'options par défaut '%s'\n" -#: g10/g10.c:592 +#: g10/g10.c:594 #, c-format msgid "option file '%s': %s\n" msgstr "fichier d'options '%s' : %s\n" -#: g10/g10.c:599 +#: g10/g10.c:601 #, c-format msgid "reading options from '%s'\n" msgstr "lire les options de '%s'\n" -#: g10/g10.c:765 g10/g10.c:777 +#: g10/g10.c:768 g10/g10.c:780 msgid "selected cipher algorithm is invalid\n" msgstr "l'algorithme de cryptage sélectionné est invalide\n" -#: g10/g10.c:771 g10/g10.c:783 +#: g10/g10.c:774 g10/g10.c:786 msgid "selected digest algorithm is invalid\n" msgstr "la fonction de hachage sélectionnée est invalide\n" -#: g10/g10.c:786 +#: g10/g10.c:789 #, c-format msgid "compress algorithm must be in range %d..%d\n" msgstr "l'algorithme de compression doit faire partie de l'échelle %d..%d\n" -#: g10/g10.c:788 +#: g10/g10.c:791 msgid "completes-needed must be greater than 0\n" msgstr "le nombre de signatures complètes minimal doit être supérieur à 0\n" -#: g10/g10.c:790 +#: g10/g10.c:793 msgid "marginals-needed must be greater than 1\n" msgstr "le nombre de singatures marginales minimal doit être supérieur à 1\n" -#: g10/g10.c:793 +#: g10/g10.c:796 msgid "note: simple S2K mode (0) is strongly discouraged\n" msgstr "" -#: g10/g10.c:797 +#: g10/g10.c:800 msgid "invalid S2K mode; must be 0, 1 or 3\n" msgstr "" -#: g10/g10.c:872 +#: g10/g10.c:876 #, c-format msgid "failed to initialize the TrustDB: %s\n" msgstr "n'a pas pu initialiser la base de confiance: %s\n" -#: g10/g10.c:878 +#: g10/g10.c:882 msgid "--store [filename]" msgstr "--store [nom du fichier]" -#: g10/g10.c:886 +#: g10/g10.c:890 msgid "--symmetric [filename]" msgstr "--symmetric [nom du fichier]" -#: g10/g10.c:894 +#: g10/g10.c:898 msgid "--encrypt [filename]" msgstr "--encrypt [nom du fichier]" -#: g10/g10.c:907 +#: g10/g10.c:911 msgid "--sign [filename]" msgstr "--sign [nom du fichier]" -#: g10/g10.c:920 +#: g10/g10.c:924 msgid "--sign --encrypt [filename]" msgstr "--sign --encrypt [nom du fichier]" -#: g10/g10.c:934 +#: g10/g10.c:938 msgid "--clearsign [filename]" msgstr "--clearsign [nom du fichier]" -#: g10/g10.c:946 +#: g10/g10.c:950 msgid "--decrypt [filename]" msgstr "--decrypt [nom du fichier]" -#: g10/g10.c:955 +#: g10/g10.c:959 msgid "--edit-key username" msgstr "--edit-key utilisateur" -#: g10/g10.c:963 +#: g10/g10.c:967 msgid "--delete-secret-key username" msgstr "--delete-secret-key utilisateur" -#: g10/g10.c:966 +#: g10/g10.c:970 msgid "--delete-key username" msgstr "--delete-key utilisateur" -#: g10/encode.c:213 g10/g10.c:989 g10/keylist.c:79 +#: g10/encode.c:213 g10/g10.c:993 g10/keylist.c:79 #, c-format msgid "can't open %s: %s\n" msgstr "ne peut ouvrir %s: %s\n" -#: g10/g10.c:1000 +#: g10/g10.c:1004 msgid "-k[v][v][v][c] [userid] [keyring]" msgstr "-k[v][v][v][c] [utilisateur] [porte-clés]" -#: g10/g10.c:1055 +#: g10/g10.c:1059 #, c-format msgid "dearmoring failed: %s\n" msgstr "suppression d'armure non réussie: %s\n" -#: g10/g10.c:1063 +#: g10/g10.c:1067 #, c-format msgid "enarmoring failed: %s\n" msgstr "mise d'armure non réussie:%s \n" -#: g10/g10.c:1124 +#: g10/g10.c:1128 #, c-format msgid "invalid hash algorithm '%s'\n" msgstr "algorithme de hachage invalide '%s'\n" -#: g10/g10.c:1194 +#: g10/g10.c:1204 msgid "[filename]" msgstr "[nom du fichier]" -#: g10/decrypt.c:59 g10/g10.c:1196 g10/verify.c:66 +#: g10/decrypt.c:59 g10/g10.c:1206 g10/verify.c:66 #, c-format msgid "can't open '%s'\n" msgstr "ne peut ouvrir '%s'\n" -#: g10/g10.c:1241 +#: g10/g10.c:1251 msgid "" "RSA keys are deprecated; please consider creating a new key and use this key " "in the future\n" @@ -628,7 +834,7 @@ 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" -#: g10/pkclist.c:170 +#: g10/pkclist.c:168 msgid "" "No owner trust values changed.\n" "\n" @@ -636,16 +842,16 @@ msgstr "" "Pas de valeur de confiance changée.\n" "\n" -#: g10/pkclist.c:190 +#: g10/pkclist.c:188 msgid "revoked_key.override" msgstr "" "Si vous voulez utiliser cette clé révoquée quand-même, répondez \"oui\"." -#: g10/pkclist.c:191 g10/pkclist.c:281 +#: g10/pkclist.c:189 g10/pkclist.c:279 msgid "Use this key anyway? " msgstr "Utiliser cette clé quand-même? " -#: g10/pkclist.c:276 +#: g10/pkclist.c:274 msgid "" "It is NOT certain that the key belongs to its owner.\n" "If you *really* know what you are doing, you may answer\n" @@ -657,57 +863,57 @@ msgstr "" "oui à la prochaine question\n" "\n" -#: g10/pkclist.c:280 +#: g10/pkclist.c:278 msgid "untrusted_key.override" msgstr "" "Si vous voulez utiliser cette clé peu sûre quand-même, répondez \"oui\"." -#: g10/pkclist.c:285 +#: g10/pkclist.c:283 msgid "WARNING: Using untrusted key!\n" msgstr "ATTENTION: Utilisation d'une clé sans confiance!\n" -#: g10/pkclist.c:321 +#: g10/pkclist.c:319 msgid "WARNING: This key has been revoked by its owner!\n" msgstr "ATTENTION: Cette clé à été révoquée par son propriétaire\n" -#: g10/pkclist.c:322 +#: g10/pkclist.c:320 msgid " This could mean that the signature is forgery.\n" msgstr " Cela pourrait signifier que la signature est fausse.\n" -#: g10/pkclist.c:343 +#: g10/pkclist.c:341 msgid "Note: This key has expired!\n" msgstr "Note: Cette clé a expiré!\n" -#: g10/pkclist.c:350 +#: g10/pkclist.c:348 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" -#: g10/pkclist.c:352 +#: g10/pkclist.c:350 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" -#: g10/pkclist.c:367 +#: g10/pkclist.c:365 msgid "WARNING: We do NOT trust this key!\n" msgstr "ATTENTION: On ne fait PAS confiance à cette clé\n" -#: g10/pkclist.c:368 +#: g10/pkclist.c:366 msgid " The signature is probably a FORGERY.\n" msgstr " La signature est certainement FAUSSE.\n" -#: g10/pkclist.c:375 +#: g10/pkclist.c:373 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" -#: g10/pkclist.c:378 +#: g10/pkclist.c:376 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" -#: g10/pkclist.c:423 +#: g10/pkclist.c:421 msgid "" "You did not specify a user ID. (you may use \"-r\")\n" "\n" @@ -715,29 +921,29 @@ msgstr "" "Vous n'avez pas spécifié un nom d'utilisateur. (vous pouvez utiliser " "\"-r\")\n" -#: g10/pkclist.c:427 +#: g10/pkclist.c:425 msgid "pklist.user_id.enter" msgstr "Entrez le nom de l'adresse à qui vous voulez envoyer le message." -#: g10/pkclist.c:428 +#: g10/pkclist.c:426 msgid "Enter the user ID: " msgstr "Entrez le nom d'utilisateur: " -#: g10/pkclist.c:439 +#: g10/pkclist.c:437 msgid "No such user ID.\n" msgstr "Pas de tel utilisateur.\n" -#: g10/pkclist.c:473 g10/pkclist.c:500 +#: g10/pkclist.c:471 g10/pkclist.c:498 #, c-format msgid "%s: skipped: %s\n" msgstr "%s: sauté: %s\n" -#: g10/pkclist.c:481 +#: g10/pkclist.c:479 #, c-format msgid "%s: error checking key: %s\n" msgstr "%s: erreur pendant la vérification de la clé: %s\n" -#: g10/pkclist.c:507 +#: g10/pkclist.c:505 msgid "no valid addressees\n" msgstr "pas de destinataire valide\n" @@ -765,34 +971,34 @@ msgstr " (%d) DSA et ElGamal (d msgid " (%d) ElGamal (sign and encrypt)\n" msgstr " (%d) ElGamal (signature et cryptage)\n" -#: g10/keygen.c:387 +#: g10/keygen.c:388 #, c-format msgid " (%d) ElGamal (encrypt only)\n" msgstr " (%d) ElGamal (cryptage seulement)\n" -#: g10/keygen.c:388 +#: g10/keygen.c:389 #, c-format msgid " (%d) DSA (sign only)\n" msgstr " (%d) DSA (signature seulement)\n" -#: g10/keygen.c:389 +#: g10/keygen.c:390 #, c-format msgid " (%d) ElGamal in a v3 packet\n" msgstr " (%d) ElGamal dans un paquet v3\n" -#: g10/keygen.c:393 +#: g10/keygen.c:394 msgid "keygen.algo" msgstr "Sélectionnez l'algorithme à utiliser:" -#: g10/keygen.c:393 +#: g10/keygen.c:394 msgid "Your selection? " msgstr "Votre choix? " -#: g10/keygen.c:419 +#: g10/keygen.c:420 msgid "Invalid selection.\n" msgstr "Choix invalide.\n" -#: g10/keygen.c:431 +#: g10/keygen.c:432 #, c-format msgid "" "About to generate a new %s keypair.\n" @@ -805,23 +1011,23 @@ msgstr "" " la taille par défaut est 1024 bits\n" " la taille maximale conseillée est 2048 bits\n" -#: g10/keygen.c:437 +#: g10/keygen.c:438 msgid "keygen.size" msgstr "" -#: g10/keygen.c:438 +#: g10/keygen.c:439 msgid "What keysize do you want? (1024) " msgstr "Quelle taille de clé désirez-vous? (1024) " -#: g10/keygen.c:443 +#: g10/keygen.c:444 msgid "DSA only allows keysizes from 512 to 1024\n" msgstr "DSA permet seulement des tailles comprises entre 512 et 1024\n" -#: g10/keygen.c:445 +#: g10/keygen.c:446 msgid "keysize too small; 768 is smallest value allowed.\n" msgstr "taille trop petite; 768 est la plus petite valeur permise.\n" -#: g10/keygen.c:448 +#: g10/keygen.c:449 msgid "" "Keysizes larger than 2048 are not suggested because\n" "computations take REALLY long!\n" @@ -829,15 +1035,15 @@ msgstr "" "Les tailles supérieures à 2048 ne sont pas conseillées car\n" "les calculs sont VRAIMENT longs!\n" -#: g10/keygen.c:450 +#: g10/keygen.c:451 msgid "keygen.size.huge.okay" msgstr "" -#: g10/keygen.c:451 +#: g10/keygen.c:452 msgid "Are you sure that you want this keysize? " msgstr "Etes-vous sûr que vous voulez cette taille? " -#: g10/keygen.c:452 +#: g10/keygen.c:453 msgid "" "Okay, but keep in mind that your monitor and keyboard radiation is also very " "vulnerable to attacks!\n" @@ -845,25 +1051,25 @@ msgstr "" "D'accord, mais n'oubliez pas que votre écran et les radiations du clavier " "sont aussi très vulnérables aux attaques!\n" -#: g10/keygen.c:459 +#: g10/keygen.c:460 msgid "keygen.size.large.okay" msgstr "" -#: g10/keygen.c:460 +#: g10/keygen.c:461 msgid "Do you really need such a large keysize? " msgstr "Avez-vous réellement besoin d'une taille aussi grande? " -#: g10/keygen.c:466 +#: g10/keygen.c:467 #, c-format msgid "Requested keysize is %u bits\n" msgstr "La taille demandée est %u bits\n" -#: g10/keygen.c:469 g10/keygen.c:473 +#: g10/keygen.c:470 g10/keygen.c:474 #, c-format msgid "rounded up to %u bits\n" msgstr "arrondie à %u bits\n" -#: g10/keygen.c:485 +#: g10/keygen.c:486 msgid "" "Please specify how long the key should be valid.\n" " 0 = key does not expire\n" @@ -879,37 +1085,37 @@ msgstr "" " m = la clé expire dans n mois\n" " y = la clé expire dans n ans\n" -#: g10/keygen.c:500 +#: g10/keygen.c:501 msgid "keygen.valid" msgstr "" -#: g10/keygen.c:500 +#: g10/keygen.c:501 msgid "Key is valid for? (0) " msgstr "La clé est valide pour? (0) " -#: g10/keygen.c:511 +#: g10/keygen.c:512 msgid "invalid value\n" msgstr "valeur invalide\n" -#: g10/keygen.c:516 +#: g10/keygen.c:517 msgid "Key does not expire at all\n" msgstr "La clé n'expire pas du tout\n" #. print the date when the key expires -#: g10/keygen.c:519 +#: g10/keygen.c:520 #, c-format msgid "Key expires at %s\n" msgstr "La clé expire le %s\n" -#: g10/keygen.c:524 +#: g10/keygen.c:525 msgid "keygen.valid.okay" msgstr "" -#: g10/keygen.c:525 +#: g10/keygen.c:526 msgid "Is this correct (y/n)? " msgstr "Est-ce correct (o/n)? " -#: g10/keygen.c:553 +#: g10/keygen.c:554 msgid "" "\n" "You need a User-ID to identify your key; the software constructs the user " @@ -925,51 +1131,51 @@ msgstr "" " \"Heinrich Heine (Der Dichter) " msgstr "Commande> " -#: g10/keyedit.c:545 +#: g10/keyedit.c:556 msgid "Need the secret key to to this.\n" msgstr "Il faut la clé secrète pour faire cela.\n" -#: g10/keyedit.c:564 +#: g10/keyedit.c:575 msgid "keyedit.save.okay" msgstr "" -#: g10/keyedit.c:565 +#: g10/keyedit.c:576 msgid "Save changes? " msgstr "Enregistrer les changements? " -#: g10/keyedit.c:567 +#: g10/keyedit.c:578 msgid "keyedit.cancel.okay" msgstr "" -#: g10/keyedit.c:568 +#: g10/keyedit.c:579 msgid "Quit without saving? " msgstr "Quitter sans enregistrer? " -#: g10/keyedit.c:578 +#: g10/keyedit.c:589 #, c-format msgid "update failed: %s\n" msgstr "la mise à jour a échoué: %s\n" -#: g10/keyedit.c:585 +#: g10/keyedit.c:596 #, c-format msgid "update secret failed: %s\n" msgstr "la mise à jour de la clé secrète a échoué: %s\n" -#: g10/keyedit.c:593 +#: g10/keyedit.c:603 msgid "Key not changed so no update needed.\n" msgstr "La clé n'a pas changé donc la mise à jour est inutile.\n" -#: g10/keyedit.c:623 +#: g10/keyedit.c:606 g10/keyedit.c:664 +#, fuzzy, c-format +msgid "update of trust db failed: %s\n" +msgstr "la mise à jour de la clé secrète a échoué: %s\n" + +#: g10/keyedit.c:637 msgid "keyedit.sign_all.okay" msgstr "" -#: g10/keyedit.c:624 +#: g10/keyedit.c:638 msgid "Really sign all user ids? " msgstr "Signer vraiment tous les utilisateurs? " -#: g10/keyedit.c:625 +#: g10/keyedit.c:639 msgid "Hint: Select the user ids to sign\n" msgstr "Aide: Sélectionner les utilisateurs à signer\n" -#: g10/keyedit.c:653 +#: g10/keyedit.c:675 msgid "You must select at least one user id.\n" msgstr "Vous devez sélectionner au moins un utilisateur.\n" -#: g10/keyedit.c:655 +#: g10/keyedit.c:677 msgid "You can't delete the last user id!\n" msgstr "Vous ne pouvez pas supprimer le dernier utilisateur!\n" -#: g10/keyedit.c:657 +#: g10/keyedit.c:679 msgid "keyedit.remove.uid.okay" msgstr "" -#: g10/keyedit.c:658 +#: g10/keyedit.c:680 msgid "Really remove all selected user ids? " msgstr "Enlever réellement tous les utilisateurs sélectionnés? " -#: g10/keyedit.c:659 +#: g10/keyedit.c:681 msgid "Really remove this user id? " msgstr "Enlever réellement cet utilisateur? " -#: g10/keyedit.c:682 +#: g10/keyedit.c:704 msgid "You must select at least one key.\n" msgstr "Vous devez sélectionner au moins une clé.\n" -#: g10/keyedit.c:684 +#: g10/keyedit.c:706 msgid "keyedit.remove.subkey.okay" msgstr "" -#: g10/keyedit.c:686 +#: g10/keyedit.c:708 msgid "Do you really want to delete the selected keys? " msgstr "Voulez-vous supprimer les clés sélectionnées? " -#: g10/keyedit.c:687 +#: g10/keyedit.c:709 msgid "Do you really want to delete this key? " msgstr "Voulez-vous vraiment supprimer cette clé? " -#: g10/keyedit.c:724 +#: g10/keyedit.c:746 msgid "Invalid command (try \"help\")\n" msgstr "Commande invalide (essayez \"aide\")\n" -#: g10/keyedit.c:1104 +#: g10/keyedit.c:1129 #, c-format msgid "No user id with index %d\n" msgstr "Pas d'utilisateur avec l'index %d\n" -#: g10/keyedit.c:1149 +#: g10/keyedit.c:1174 #, c-format msgid "No secondary key with index %d\n" msgstr "Pas de clé secondaire avec l'index %d\n" @@ -1723,15 +1934,15 @@ msgstr "" msgid "Signature made %.*s using %s key ID %08lX\n" msgstr "Signature faite %.*s avec %s clé ID %08lX\n" -#: g10/mainproc.c:852 +#: g10/mainproc.c:854 msgid "BAD signature from \"" msgstr "MAUVAISE signature de \"" -#: g10/mainproc.c:853 +#: g10/mainproc.c:855 msgid "Good signature from \"" msgstr "Bonne signature de \"" -#: g10/mainproc.c:864 +#: g10/mainproc.c:866 #, c-format msgid "Can't check signature: %s\n" msgstr "Ne peut vérifier la signature: %s\n" @@ -1814,77 +2025,76 @@ msgstr "cl msgid "warning: signature key expired %s\n" msgstr "attention: la clé de signatute a expiré le %s\n" -#: g10/trustdb.c:318 -#, c-format -msgid "error reading sigrec: %s\n" -msgstr "erreur pendant la lecture de l'enregistrement de signature: %s\n" +#: g10/trustdb.c:127 +msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n" +msgstr "" -#: g10/trustdb.c:323 +#: g10/trustdb.c:406 #, c-format msgid "chained sigrec %lu has a wrong owner\n" msgstr "l'enregistrement de signature %lu a un mauvais propriétaire\n" -#: g10/trustdb.c:370 +#: g10/trustdb.c:453 #, c-format msgid "key %08lX: secret key without public key\n" msgstr "clé %08lX: clé secrète sans clé publique\n" -#: g10/trustdb.c:375 +#: g10/trustdb.c:458 #, c-format msgid "key %08lX: secret and public key don't match\n" msgstr "clé %08lX: les clés secrète et publique ne correspondent pas\n" -#: g10/trustdb.c:386 +#: g10/trustdb.c:469 #, c-format msgid "key %08lX: can't put it into the trustdb\n" msgstr "clé %08lX: ne peut mettre cela dans la base de confiance\n" -#: g10/trustdb.c:392 +#: g10/trustdb.c:475 #, c-format msgid "key %08lX: query record failed\n" msgstr "clé %08lX: l'enregistrement de requête a échoué\n" -#: g10/trustdb.c:401 +#: g10/trustdb.c:484 #, c-format msgid "key %08lX: already in ultikey_table\n" msgstr "clé %08lX: déja dans ultikey_table\n" -#: g10/trustdb.c:408 +#: g10/trustdb.c:491 #, c-format msgid "enum_secret_keys failed: %s\n" msgstr "enum_secret_keys a échoué: %s\n" -#: g10/trustdb.c:913 +#: g10/trustdb.c:964 #, fuzzy, c-format msgid "key %08lX.%lu, uid %02X%02X: no public key for signature %08lX\n" msgstr "clé %08lX: pas d'utilisateur pour la signature\n" -#: g10/trustdb.c:920 +#: g10/trustdb.c:971 #, fuzzy, c-format msgid "key %08lX.%lu, uid %02X%02X: invalid %ssignature: %s\n" msgstr "clé %08lX: auto-signature invalide\n" -#: g10/trustdb.c:1624 +#: g10/trustdb.c:1658 #, c-format msgid "key %08lX: insert trust record failed: %s\n" msgstr "clé %08lX: l'insertion d'enregistrement de confiance a échoué: %s\n" -#: g10/trustdb.c:1628 +#: g10/trustdb.c:1662 #, c-format msgid "key %08lX.%lu: inserted into trustdb\n" msgstr "clé %08lX.%lu: insérée dans la base de confiance\n" -#: g10/trustdb.c:1639 +#: g10/trustdb.c:1670 #, c-format msgid "key %08lX.%lu: created in future (time warp or clock problem)\n" msgstr "clé %08lX.%lu: créée dans le futur (problème d'horloge)\n" -#: g10/trustdb.c:1647 +#: g10/trustdb.c:1678 #, c-format msgid "key %08lX.%lu: expired at %s\n" msgstr "clé %08lX.%lu: a expiré le %s\n" -#: g10/trustdb.c:1656 +#: g10/trustdb.c:1687 #, c-format msgid "key %08lX.%lu: trust check failed: %s\n" msgstr "clé %08lX.%lu: la vérification de confiance a échoué: %s\n" @@ -1945,5 +2155,5 @@ msgstr "" "ne peut éviter une mauvaise clé pour le chiffrement symétrique: \n" "%d essais ont eu lieu!\n" -#~ msgid "can't write keyring\n" -#~ msgstr "ne peut écrire le porte-clés\n" +#~ msgid "error reading sigrec: %s\n" +#~ msgstr "erreur pendant la lecture de l'enregistrement de signature: %s\n" diff --git a/po/it.po b/po/it.po index 3e022b0c4..2dbfb0882 100644 --- a/po/it.po +++ b/po/it.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: gnupg-0.4.0\n" -"POT-Creation-Date: 1998-09-30 19:01+0200\n" +"POT-Creation-Date: 1998-10-07 14:24+0200\n" "PO-Revision-Date: 1998-09-20 16:15+02:00\n" "Last-Translator: Marco d'Itri \n" "Language-Team: Italian \n" @@ -25,12 +25,213 @@ msgstr "s msgid "yY" msgstr "sS" -#: cipher/rand-dummy.c:106 +#: util/errors.c:54 +msgid "General error" +msgstr "" + +#: util/errors.c:55 +msgid "Unknown packet type" +msgstr "" + +#: util/errors.c:56 +msgid "Unknown version" +msgstr "" + +#: util/errors.c:57 +msgid "Unknown pubkey algorithm" +msgstr "" + +#: util/errors.c:58 +msgid "Unknown digest algorithm" +msgstr "" + +#: util/errors.c:59 +#, fuzzy +msgid "Bad public key" +msgstr "nessun portachiavi pubblico predefinito\n" + +#: util/errors.c:60 +#, fuzzy +msgid "Bad secret key" +msgstr "elenca le chiavi segrete" + +#: util/errors.c:61 +#, fuzzy +msgid "Bad signature" +msgstr "una firma non corretta\n" + +#: util/errors.c:62 +msgid "Checksum error" +msgstr "" + +#: util/errors.c:63 +#, fuzzy +msgid "Bad passphrase" +msgstr "Ripeti la passphrase: " + +#: util/errors.c:64 +#, fuzzy +msgid "Public key not found" +msgstr "chiave %08lX: chiave pubblica non trovata: %s\n" + +#: util/errors.c:65 +#, fuzzy +msgid "Unknown cipher algorithm" +msgstr "|NAME|usa l'algoritmo di cifratura NOME" + +#: util/errors.c:66 +#, fuzzy +msgid "Can't open the keyring" +msgstr "impossibile scrivere il portachiavi\n" + +#: util/errors.c:67 +#, fuzzy +msgid "Invalid packet" +msgstr "valore non valido\n" + +#: util/errors.c:68 +msgid "Invalid armor" +msgstr "" + +#: util/errors.c:69 +#, fuzzy +msgid "No such user id" +msgstr "User ID inesistente.\n" + +#: util/errors.c:70 +#, fuzzy +msgid "Secret key not available" +msgstr "È disponibile una chiave segreta.\n" + +#: util/errors.c:71 +#, fuzzy +msgid "Wrong secret key used" +msgstr "elenca le chiavi segrete" + +#: util/errors.c:72 +msgid "Not supported" +msgstr "" + +#: util/errors.c:73 +msgid "Bad key" +msgstr "" + +#: util/errors.c:74 +#, fuzzy +msgid "File read error" +msgstr "errore di lettura: %s\n" + +#: util/errors.c:75 +msgid "File write error" +msgstr "" + +#: util/errors.c:76 +#, fuzzy +msgid "Unknown compress algorithm" +msgstr "|N|usa l'algoritmo di compressione N" + +#: util/errors.c:77 +msgid "File open error" +msgstr "" + +#: util/errors.c:78 +msgid "File create error" +msgstr "" + +#: util/errors.c:79 +#, fuzzy +msgid "Invalid passphrase" +msgstr "Inserisci la passphrase: " + +#: util/errors.c:80 +msgid "Unimplemented pubkey algorithm" +msgstr "" + +#: util/errors.c:81 +#, fuzzy +msgid "Unimplemented cipher algorithm" +msgstr "l'algoritmo di cifratura selezionato non è valido\n" + +#: util/errors.c:82 +msgid "Unknown signature class" +msgstr "" + +#: util/errors.c:83 +msgid "Trust database error" +msgstr "" + +#: util/errors.c:84 +msgid "Bad MPI" +msgstr "" + +#: util/errors.c:85 +msgid "Resource limit" +msgstr "" + +#: util/errors.c:86 +#, fuzzy +msgid "Invalid keyring" +msgstr "Scelta non valida.\n" + +#: util/errors.c:87 +msgid "Bad certificate" +msgstr "" + +#: util/errors.c:88 +#, fuzzy +msgid "Malformed user id" +msgstr "aggiungi un user id" + +#: util/errors.c:89 +msgid "File close error" +msgstr "" + +#: util/errors.c:90 +msgid "File rename error" +msgstr "" + +#: util/errors.c:91 +msgid "File delete error" +msgstr "" + +#: util/errors.c:92 +msgid "Unexpected data" +msgstr "" + +#: util/errors.c:93 +msgid "Timestamp conflict" +msgstr "" + +#: util/errors.c:94 +#, fuzzy +msgid "Unusable pubkey algorithm" +msgstr "|N|usa l'algoritmo di compressione N" + +#: util/errors.c:95 +#, fuzzy +msgid "File exists" +msgstr "Il file '%s' esiste. " + +#: util/errors.c:96 +msgid "Weak key" +msgstr "" + +#: util/logger.c:177 +#, c-format +msgid "Ohhhh jeeee ... this is a bug (%s:%d:%s)\n" +msgstr "" + +#: util/logger.c:183 +#, c-format +msgid "you found a bug ... (%s:%d)\n" +msgstr "" + +#: cipher/rand-dummy.c:112 msgid "warning: using insecure random number generator!!\n" msgstr "" "Attenzione: si sta usando un generatore di numeri casuali non sicuro!!\n" -#: cipher/rand-dummy.c:107 +#: cipher/rand-dummy.c:113 msgid "" "The random number generator is only a kludge to let\n" "it compile - it is in no way a strong RNG!\n" @@ -53,7 +254,7 @@ msgstr "" "altra cosa per dare all'OS la possibilità di raccogliere altra entropia!\n" "(Servono ancora %d altri byte)\n" -#: g10/g10.c:146 +#: g10/g10.c:147 msgid "" "@Commands:\n" " " @@ -61,115 +262,119 @@ msgstr "" "@Comandi:\n" " " -#: g10/g10.c:149 +#: g10/g10.c:150 msgid "|[file]|make a signature" msgstr "|[file]|fai una firma" -#: g10/g10.c:150 +#: g10/g10.c:151 msgid "|[file]|make a clear text signature" msgstr "|[file]|fai una firma mantenendo il testo in chiaro" -#: g10/g10.c:151 +#: g10/g10.c:152 msgid "make a detached signature" msgstr "fai una firma separata" -#: g10/g10.c:152 +#: g10/g10.c:153 msgid "encrypt data" msgstr "cifra dati" -#: g10/g10.c:153 +#: g10/g10.c:154 msgid "encryption only with symmetric cipher" msgstr "cifra solo con un cifrario simmetrico" -#: g10/g10.c:154 +#: g10/g10.c:155 msgid "store only" msgstr "immagazzina soltanto" -#: g10/g10.c:155 +#: g10/g10.c:156 msgid "decrypt data (default)" msgstr "decifra dati (predefinito)" -#: g10/g10.c:156 +#: g10/g10.c:157 msgid "verify a signature" msgstr "verifica una firma" -#: g10/g10.c:158 +#: g10/g10.c:159 msgid "list keys" msgstr "elenca le chiavi" -#: g10/g10.c:159 +#: g10/g10.c:160 msgid "list keys and signatures" msgstr "elenca le chiavi e le firme" -#: g10/g10.c:160 +#: g10/g10.c:161 msgid "check key signatures" msgstr "controlla le firme delle chiavi" -#: g10/g10.c:161 +#: g10/g10.c:162 msgid "list keys and fingerprints" msgstr "elenca le chiavi e le impronte digitali" -#: g10/g10.c:162 +#: g10/g10.c:163 msgid "list secret keys" msgstr "elenca le chiavi segrete" -#: g10/g10.c:164 +#: g10/g10.c:165 msgid "generate a new key pair" msgstr "genera una nuova coppia di chiavi" -#: g10/g10.c:166 +#: g10/g10.c:167 msgid "remove key from the public keyring" msgstr "rimuove una chiave dal portachiavi pubblico" -#: g10/g10.c:168 +#: g10/g10.c:169 msgid "sign or edit a key" msgstr "firma o modifica una chiave" -#: g10/g10.c:169 +#: g10/g10.c:170 msgid "generate a revocation certificate" msgstr "genera un certificato di revoca" -#: g10/g10.c:171 +#: g10/g10.c:172 msgid "export keys" msgstr "esporta delle chiavi" -#: g10/g10.c:174 +#: g10/g10.c:175 msgid "import/merge keys" msgstr "importa/aggiungi delle chiavi" -#: g10/g10.c:175 +#: g10/g10.c:176 msgid "list only the sequence of packets" msgstr "elenca solo la sequenza dei pacchetti" -#: g10/g10.c:177 +#: g10/g10.c:178 msgid "export the ownertrust values" msgstr "esporta i valori di fiducia" -#: g10/g10.c:178 +#: g10/g10.c:179 msgid "import ownertrust values" msgstr "importa i valori di fiducia" -#: g10/g10.c:179 +#: g10/g10.c:180 msgid "|[NAMES]|check the trust database" msgstr "|[NAMES]|controlla il TrustDB" -#: g10/g10.c:180 +#: g10/g10.c:181 +msgid "fix a corrupted trust database" +msgstr "" + +#: g10/g10.c:182 msgid "De-Armor a file or stdin" msgstr "rimuovi l'armatura a un file o a stdin" -#: g10/g10.c:181 +#: g10/g10.c:183 msgid "En-Armor a file or stdin" msgstr "crea l'armatura a un file o a stdin" -#: g10/g10.c:182 +#: g10/g10.c:184 msgid "|algo [files]|print message digests" msgstr "|algo [files]|stampa tutti i message digests" -#: g10/g10.c:183 +#: g10/g10.c:185 msgid "print all message digests" msgstr "stampa tutti i message digests" -#: g10/g10.c:190 +#: g10/g10.c:192 msgid "" "@\n" "Options:\n" @@ -179,128 +384,128 @@ msgstr "" "Opzioni:\n" " " -#: g10/g10.c:192 +#: g10/g10.c:194 msgid "create ascii armored output" msgstr "crea un output ascii con armatura" -#: g10/g10.c:194 +#: g10/g10.c:196 msgid "use this user-id to sign or decrypt" msgstr "usa questo user-id per firmare o decifrare" -#: g10/g10.c:195 +#: g10/g10.c:197 msgid "use this user-id for encryption" msgstr "usa questo user-id per cifrare" -#: g10/g10.c:196 +#: g10/g10.c:198 msgid "|N|set compress level N (0 disables)" msgstr "|N|imposta il livello di compressione (0 disabilita)" -#: g10/g10.c:197 +#: g10/g10.c:199 msgid "use canonical text mode" msgstr "usa il modo testo canonico" -#: g10/g10.c:199 +#: g10/g10.c:201 msgid "use as output file" msgstr "usa come file di output" -#: g10/g10.c:200 +#: g10/g10.c:202 msgid "verbose" msgstr "prolisso" #. { oDryRun, "dry-run", 0, N_("do not make any changes") }, -#: g10/g10.c:202 +#: g10/g10.c:204 msgid "batch mode: never ask" msgstr "modo batch: non fare domande" -#: g10/g10.c:203 +#: g10/g10.c:205 msgid "assume yes on most questions" msgstr "assumi \"sì\" a quasi tutte le domande" -#: g10/g10.c:204 +#: g10/g10.c:206 msgid "assume no on most questions" msgstr "assumi \"no\" a quasi tutte le domande" -#: g10/g10.c:205 +#: g10/g10.c:207 msgid "add this keyring to the list of keyrings" msgstr "aggiungi questo portachiavi alla lista" -#: g10/g10.c:206 +#: g10/g10.c:208 msgid "add this secret keyring to the list" msgstr "aggiungi questo portachiavi segreto alla lista" -#: g10/g10.c:207 +#: g10/g10.c:209 msgid "|NAME|use NAME as default secret key" msgstr "|NOME|usa NOME come chiave segreta predefinita" -#: g10/g10.c:208 +#: g10/g10.c:210 msgid "read options from file" msgstr "leggi le opzioni dal file" -#: g10/g10.c:210 +#: g10/g10.c:212 msgid "set debugging flags" msgstr "imposta i flag di debugging" -#: g10/g10.c:211 +#: g10/g10.c:213 msgid "enable full debugging" msgstr "abilita il debugging completo" -#: g10/g10.c:212 +#: g10/g10.c:214 msgid "|FD|write status info to this FD" msgstr "|FD|scrivi le informazioni di stato su questo fd" -#: g10/g10.c:213 +#: g10/g10.c:215 msgid "do not write comment packets" msgstr "non scrivere pacchetti di commento" -#: g10/g10.c:214 +#: g10/g10.c:216 msgid "(default is 1)" msgstr "(predefinito è 1)" -#: g10/g10.c:215 +#: g10/g10.c:217 msgid "(default is 3)" msgstr "(predefinito è 3)" -#: g10/g10.c:216 +#: g10/g10.c:218 #, fuzzy msgid "|FILE|load extension module FILE" msgstr "|file|carica un modulo di estensione" -#: g10/g10.c:217 +#: g10/g10.c:219 msgid "emulate the mode described in RFC1991" msgstr "emula il modo descritto nel RFC1991" -#: g10/g10.c:218 +#: g10/g10.c:220 #, fuzzy msgid "|N|use passphrase mode N" msgstr "Inserisci la passphrase: " -#: g10/g10.c:220 +#: g10/g10.c:222 #, fuzzy msgid "|NAME|use message digest algorithm NAME for passphrases" msgstr "|NAME|usa l'algoritmo di message digest NOME" -#: g10/g10.c:222 +#: g10/g10.c:224 #, fuzzy msgid "|NAME|use cipher algorithm NAME for passphrases" msgstr "|NAME|usa l'algoritmo di cifratura NOME" -#: g10/g10.c:224 +#: g10/g10.c:226 msgid "|NAME|use cipher algorithm NAME" msgstr "|NAME|usa l'algoritmo di cifratura NOME" -#: g10/g10.c:225 +#: g10/g10.c:227 msgid "|NAME|use message digest algorithm NAME" msgstr "|NAME|usa l'algoritmo di message digest NOME" -#: g10/g10.c:226 +#: g10/g10.c:228 msgid "|N|use compress algorithm N" msgstr "|N|usa l'algoritmo di compressione N" -#: g10/g10.c:227 +#: g10/g10.c:229 msgid "throw keyid field of encrypted packets" msgstr "elimina il campo keyid dei pacchetti crittografati" -#: g10/g10.c:235 +#: g10/g10.c:237 #, fuzzy msgid "" "@\n" @@ -321,19 +526,19 @@ msgstr "" " --list-keys [names] mostra le chiavi\n" " --fingerprint [names] mostra le impronte digitali\n" -#: g10/g10.c:310 +#: g10/g10.c:312 msgid "Please report bugs to .\n" msgstr "Per favore segnala i bug a .\n" -#: g10/g10.c:315 +#: g10/g10.c:317 msgid "Usage: gpgm [options] [files] (-h for help)" msgstr "Uso: gpgm [opzioni] [file] (-h per l'aiuto)" -#: g10/g10.c:317 +#: g10/g10.c:319 msgid "Usage: gpg [options] [files] (-h for help)" msgstr "Uso: gpg [opzioni] [file] (-h per l'aiuto)" -#: g10/g10.c:322 +#: g10/g10.c:324 msgid "" "Syntax: gpgm [options] [files]\n" "GNUPG maintenance utility\n" @@ -341,7 +546,7 @@ msgstr "" "Sintassi: gpgm [opzioni] [file]\n" "Utility di manutenzione di GNUPG\n" -#: g10/g10.c:325 +#: g10/g10.c:327 msgid "" "Syntax: gpg [options] [files]\n" "sign, check, encrypt or decrypt\n" @@ -351,7 +556,7 @@ msgstr "" "firma, controlla, cifra o decifra\n" "l'operazione predefinita dipende dai dati di input\n" -#: g10/g10.c:331 +#: g10/g10.c:333 msgid "" "\n" "Supported algorithms:\n" @@ -359,141 +564,141 @@ msgstr "" "\n" "Algoritmi gestiti:\n" -#: g10/g10.c:406 +#: g10/g10.c:408 msgid "usage: gpgm [options] " msgstr "uso: gpgm [options] " -#: g10/g10.c:408 +#: g10/g10.c:410 msgid "usage: gpg [options] " msgstr "uso: gpg [options] " -#: g10/g10.c:449 +#: g10/g10.c:451 msgid "conflicting commands\n" msgstr "comandi in conflitto\n" -#: g10/g10.c:588 +#: g10/g10.c:590 #, c-format msgid "note: no default option file '%s'\n" msgstr "nota: nessun file con opzioni predefinite '%s'\n" -#: g10/g10.c:592 +#: g10/g10.c:594 #, c-format msgid "option file '%s': %s\n" msgstr "file con opzioni predefinite '%s': %s\n" -#: g10/g10.c:599 +#: g10/g10.c:601 #, c-format msgid "reading options from '%s'\n" msgstr "lettura delle opzioni da '%s'\n" -#: g10/g10.c:765 g10/g10.c:777 +#: g10/g10.c:768 g10/g10.c:780 msgid "selected cipher algorithm is invalid\n" msgstr "l'algoritmo di cifratura selezionato non è valido\n" -#: g10/g10.c:771 g10/g10.c:783 +#: g10/g10.c:774 g10/g10.c:786 msgid "selected digest algorithm is invalid\n" msgstr "l'algoritmo di digest selezionato non è valido\n" -#: g10/g10.c:786 +#: g10/g10.c:789 #, c-format msgid "compress algorithm must be in range %d..%d\n" msgstr "l'algoritmo di compressione deve essere tra %d e %d\n" -#: g10/g10.c:788 +#: g10/g10.c:791 msgid "completes-needed must be greater than 0\n" msgstr "completes-needed deve essere maggiore di 0\n" -#: g10/g10.c:790 +#: g10/g10.c:793 msgid "marginals-needed must be greater than 1\n" msgstr "marginals-needed deve essere maggiore di 1\n" -#: g10/g10.c:793 +#: g10/g10.c:796 msgid "note: simple S2K mode (0) is strongly discouraged\n" msgstr "" -#: g10/g10.c:797 +#: g10/g10.c:800 msgid "invalid S2K mode; must be 0, 1 or 3\n" msgstr "" -#: g10/g10.c:872 +#: g10/g10.c:876 #, c-format msgid "failed to initialize the TrustDB: %s\n" msgstr "inizializzazione del trustdb fallita: %s\n" -#: g10/g10.c:878 +#: g10/g10.c:882 msgid "--store [filename]" msgstr "--store [nomefile]" -#: g10/g10.c:886 +#: g10/g10.c:890 msgid "--symmetric [filename]" msgstr "--symmetric [nomefile]" -#: g10/g10.c:894 +#: g10/g10.c:898 msgid "--encrypt [filename]" msgstr "--encrypt [nomefile]" -#: g10/g10.c:907 +#: g10/g10.c:911 msgid "--sign [filename]" msgstr "--sign [nomefile]" -#: g10/g10.c:920 +#: g10/g10.c:924 msgid "--sign --encrypt [filename]" msgstr "--sign --encrypt [nomefile]" -#: g10/g10.c:934 +#: g10/g10.c:938 msgid "--clearsign [filename]" msgstr "--clearsign [nomefile]" -#: g10/g10.c:946 +#: g10/g10.c:950 msgid "--decrypt [filename]" msgstr "--decrypt [nomefile]" -#: g10/g10.c:955 +#: g10/g10.c:959 msgid "--edit-key username" msgstr "--edit-key nomeutente" -#: g10/g10.c:963 +#: g10/g10.c:967 msgid "--delete-secret-key username" msgstr "--delete-secret-key nomeutente" -#: g10/g10.c:966 +#: g10/g10.c:970 msgid "--delete-key username" msgstr "--delete-key nomeutente" -#: g10/encode.c:213 g10/g10.c:989 g10/keylist.c:79 +#: g10/encode.c:213 g10/g10.c:993 g10/keylist.c:79 #, c-format msgid "can't open %s: %s\n" msgstr "impossibile aprire '%s': %s\n" -#: g10/g10.c:1000 +#: g10/g10.c:1004 msgid "-k[v][v][v][c] [userid] [keyring]" msgstr "-k[v][v][v][c] [userid] [portachiavi]" -#: g10/g10.c:1055 +#: g10/g10.c:1059 #, c-format msgid "dearmoring failed: %s\n" msgstr "rimozione dell'armatura fallita: %s\n" -#: g10/g10.c:1063 +#: g10/g10.c:1067 #, c-format msgid "enarmoring failed: %s\n" msgstr "creazione dell'armatura fallita: %s\n" -#: g10/g10.c:1124 +#: g10/g10.c:1128 #, c-format msgid "invalid hash algorithm '%s'\n" msgstr "algoritmo di hash non valido '%s'\n" -#: g10/g10.c:1194 +#: g10/g10.c:1204 msgid "[filename]" msgstr "[nomefile]" -#: g10/decrypt.c:59 g10/g10.c:1196 g10/verify.c:66 +#: g10/decrypt.c:59 g10/g10.c:1206 g10/verify.c:66 #, c-format msgid "can't open '%s'\n" msgstr "impossibile aprire '%s'\n" -#: g10/g10.c:1241 +#: g10/g10.c:1251 msgid "" "RSA keys are deprecated; please consider creating a new key and use this key " "in the future\n" @@ -625,7 +830,7 @@ msgstr "" "se possiamo assegnare qualche valore di fiducia del proprietario mancante.\n" "\n" -#: g10/pkclist.c:170 +#: g10/pkclist.c:168 msgid "" "No owner trust values changed.\n" "\n" @@ -633,15 +838,15 @@ msgstr "" "Nessun valore di fiducia del proprietario modificato.\n" "\n" -#: g10/pkclist.c:190 +#: g10/pkclist.c:188 msgid "revoked_key.override" msgstr "" -#: g10/pkclist.c:191 g10/pkclist.c:281 +#: g10/pkclist.c:189 g10/pkclist.c:279 msgid "Use this key anyway? " msgstr "Uso lo stesso questa chiave? " -#: g10/pkclist.c:276 +#: g10/pkclist.c:274 msgid "" "It is NOT certain that the key belongs to its owner.\n" "If you *really* know what you are doing, you may answer\n" @@ -653,55 +858,55 @@ msgstr "" "prossima domanda.\n" "\n" -#: g10/pkclist.c:280 +#: g10/pkclist.c:278 msgid "untrusted_key.override" msgstr "" -#: g10/pkclist.c:285 +#: g10/pkclist.c:283 msgid "WARNING: Using untrusted key!\n" msgstr "ATTENZIONE: uso di una chiave non fidata!\n" -#: g10/pkclist.c:321 +#: g10/pkclist.c:319 msgid "WARNING: This key has been revoked by its owner!\n" msgstr "ATTENZIONE: questa chiave è stata revocata dal suo proprietario!\n" -#: g10/pkclist.c:322 +#: g10/pkclist.c:320 msgid " This could mean that the signature is forgery.\n" msgstr " Questo può significare che la firma è stata falsificata.\n" -#: g10/pkclist.c:343 +#: g10/pkclist.c:341 msgid "Note: This key has expired!\n" msgstr "Nota: questa chiave è scaduta!\n" -#: g10/pkclist.c:350 +#: g10/pkclist.c:348 msgid "WARNING: This key is not certified with a trusted signature!\n" msgstr "ATTENZIONE: questa chiave non è certificata con una firma fidata!\n" -#: g10/pkclist.c:352 +#: g10/pkclist.c:350 msgid "" " There is no indication that the signature belongs to the owner.\n" msgstr "" " Non ci sono indicazioni che la firma appartenga al proprietario.\n" -#: g10/pkclist.c:367 +#: g10/pkclist.c:365 msgid "WARNING: We do NOT trust this key!\n" msgstr "ATTENZIONE: NON ci fidiamo di questa chiave!\n" -#: g10/pkclist.c:368 +#: g10/pkclist.c:366 msgid " The signature is probably a FORGERY.\n" msgstr " La firma è probabilmente un FALSO.\n" -#: g10/pkclist.c:375 +#: g10/pkclist.c:373 msgid "" "WARNING: This key is not certified with sufficiently trusted signatures!\n" msgstr "" "ATTENZIONE: questa chiave non è certificata con firme abbastanza fidate!\n" -#: g10/pkclist.c:378 +#: g10/pkclist.c:376 msgid " It is not certain that the signature belongs to the owner.\n" msgstr " Non è sicuro che la firma appartenga al proprietario.\n" -#: g10/pkclist.c:423 +#: g10/pkclist.c:421 msgid "" "You did not specify a user ID. (you may use \"-r\")\n" "\n" @@ -709,29 +914,29 @@ msgstr "" "Non hai specificato un user ID. (puoi usare \"-r\")\n" "\n" -#: g10/pkclist.c:427 +#: g10/pkclist.c:425 msgid "pklist.user_id.enter" msgstr "" -#: g10/pkclist.c:428 +#: g10/pkclist.c:426 msgid "Enter the user ID: " msgstr "Inserisci l'user ID: " -#: g10/pkclist.c:439 +#: g10/pkclist.c:437 msgid "No such user ID.\n" msgstr "User ID inesistente.\n" -#: g10/pkclist.c:473 g10/pkclist.c:500 +#: g10/pkclist.c:471 g10/pkclist.c:498 #, c-format msgid "%s: skipped: %s\n" msgstr "%s: saltata: %s\n" -#: g10/pkclist.c:481 +#: g10/pkclist.c:479 #, c-format msgid "%s: error checking key: %s\n" msgstr "%s: errore nel controllare la chiave: %s\n" -#: g10/pkclist.c:507 +#: g10/pkclist.c:505 msgid "no valid addressees\n" msgstr "nessun indirizzo valido\n" @@ -757,34 +962,34 @@ msgstr " (%d) DSA e ElGamal (default)\n" msgid " (%d) ElGamal (sign and encrypt)\n" msgstr " (%d) ElGamal (firma e crittografa)\n" -#: g10/keygen.c:387 +#: g10/keygen.c:388 #, c-format msgid " (%d) ElGamal (encrypt only)\n" msgstr " (%d) ElGamal (crittografa solo)\n" -#: g10/keygen.c:388 +#: g10/keygen.c:389 #, c-format msgid " (%d) DSA (sign only)\n" msgstr " (%d) DSA (firma solo)\n" -#: g10/keygen.c:389 +#: g10/keygen.c:390 #, c-format msgid " (%d) ElGamal in a v3 packet\n" msgstr " (%d) ElGamal in un pacchetto v3\n" -#: g10/keygen.c:393 +#: g10/keygen.c:394 msgid "keygen.algo" msgstr "" -#: g10/keygen.c:393 +#: g10/keygen.c:394 msgid "Your selection? " msgstr "Cosa scegli? " -#: g10/keygen.c:419 +#: g10/keygen.c:420 msgid "Invalid selection.\n" msgstr "Scelta non valida.\n" -#: g10/keygen.c:431 +#: g10/keygen.c:432 #, c-format msgid "" "About to generate a new %s keypair.\n" @@ -797,23 +1002,23 @@ msgstr "" " la dimensione predefinita è 1024 bit\n" " la dimensione massima consigliata è 2048 bit\n" -#: g10/keygen.c:437 +#: g10/keygen.c:438 msgid "keygen.size" msgstr "" -#: g10/keygen.c:438 +#: g10/keygen.c:439 msgid "What keysize do you want? (1024) " msgstr "Di che dimensioni vuoi la chiave? (1024) " -#: g10/keygen.c:443 +#: g10/keygen.c:444 msgid "DSA only allows keysizes from 512 to 1024\n" msgstr "DSA permette solo chiavi di dimensioni da 512 a 1024\n" -#: g10/keygen.c:445 +#: g10/keygen.c:446 msgid "keysize too small; 768 is smallest value allowed.\n" msgstr "la chiave è troppo corta; 768 è il minimo valore permesso.\n" -#: g10/keygen.c:448 +#: g10/keygen.c:449 msgid "" "Keysizes larger than 2048 are not suggested because\n" "computations take REALLY long!\n" @@ -821,15 +1026,15 @@ msgstr "" "Chiavi più lunghe di 2048 non sono consigliate perchè i calcoli sono \n" "VERAMENTE lunghi!\n" -#: g10/keygen.c:450 +#: g10/keygen.c:451 msgid "keygen.size.huge.okay" msgstr "" -#: g10/keygen.c:451 +#: g10/keygen.c:452 msgid "Are you sure that you want this keysize? " msgstr "Sei sicuro di volere una chiave di queste dimensioni? " -#: g10/keygen.c:452 +#: g10/keygen.c:453 msgid "" "Okay, but keep in mind that your monitor and keyboard radiation is also very " "vulnerable to attacks!\n" @@ -837,25 +1042,25 @@ msgstr "" "Va bene, ma ricordati che anche le radiazioni emesse dal tuo monitor e dalla " "tua tastiera sono molto vulnerabili ad attacchi!\n" -#: g10/keygen.c:459 +#: g10/keygen.c:460 msgid "keygen.size.large.okay" msgstr "" -#: g10/keygen.c:460 +#: g10/keygen.c:461 msgid "Do you really need such a large keysize? " msgstr "Ti serve davvero una chiave così lunga? " -#: g10/keygen.c:466 +#: g10/keygen.c:467 #, c-format msgid "Requested keysize is %u bits\n" msgstr "Le dimensioni della chiave richieste sono %u bit\n" -#: g10/keygen.c:469 g10/keygen.c:473 +#: g10/keygen.c:470 g10/keygen.c:474 #, c-format msgid "rounded up to %u bits\n" msgstr "arrotondate a %u bit\n" -#: g10/keygen.c:485 +#: g10/keygen.c:486 msgid "" "Please specify how long the key should be valid.\n" " 0 = key does not expire\n" @@ -870,37 +1075,37 @@ msgstr "" " m = la chiave scadrà dopo n mesi\n" " y = la chiave scadrà dopo n anni\n" -#: g10/keygen.c:500 +#: g10/keygen.c:501 msgid "keygen.valid" msgstr "" -#: g10/keygen.c:500 +#: g10/keygen.c:501 msgid "Key is valid for? (0) " msgstr "Chiave valida per? (0) " -#: g10/keygen.c:511 +#: g10/keygen.c:512 msgid "invalid value\n" msgstr "valore non valido\n" -#: g10/keygen.c:516 +#: g10/keygen.c:517 msgid "Key does not expire at all\n" msgstr "La chiave non scade\n" #. print the date when the key expires -#: g10/keygen.c:519 +#: g10/keygen.c:520 #, c-format msgid "Key expires at %s\n" msgstr "La chiave scadrà il %s\n" -#: g10/keygen.c:524 +#: g10/keygen.c:525 msgid "keygen.valid.okay" msgstr "" -#: g10/keygen.c:525 +#: g10/keygen.c:526 msgid "Is this correct (y/n)? " msgstr "È giusto (s/n)? " -#: g10/keygen.c:553 +#: g10/keygen.c:554 msgid "" "\n" "You need a User-ID to identify your key; the software constructs the user " @@ -916,51 +1121,51 @@ msgstr "" " \"Heinrich Heine (Der Dichter) \"\n" "\n" -#: g10/keygen.c:564 +#: g10/keygen.c:565 msgid "keygen.name" msgstr "" -#: g10/keygen.c:564 +#: g10/keygen.c:565 msgid "Real name: " msgstr "Nome e Cognome: " -#: g10/keygen.c:568 +#: g10/keygen.c:569 msgid "Invalid character in name\n" msgstr "Carattere non valido nel nome\n" -#: g10/keygen.c:570 +#: g10/keygen.c:571 msgid "Name may not start with a digit\n" msgstr "Il nome non può iniziare con una cifra\n" -#: g10/keygen.c:572 +#: g10/keygen.c:573 msgid "Name must be at least 5 characters long\n" msgstr "Il nome deve essere lungo almeno 5 caratteri\n" -#: g10/keygen.c:580 +#: g10/keygen.c:581 msgid "keygen.email" msgstr "" -#: g10/keygen.c:580 +#: g10/keygen.c:581 msgid "Email address: " msgstr "Indirizzo di Email: " -#: g10/keygen.c:592 +#: g10/keygen.c:593 msgid "Not a valid email address\n" msgstr "L'indirizzo di email non è valido\n" -#: g10/keygen.c:600 +#: g10/keygen.c:601 msgid "keygen.comment" msgstr "" -#: g10/keygen.c:600 +#: g10/keygen.c:601 msgid "Comment: " msgstr "Commento: " -#: g10/keygen.c:606 +#: g10/keygen.c:607 msgid "Invalid character in comment\n" msgstr "Carattere non valido nel commento\n" -#: g10/keygen.c:626 +#: g10/keygen.c:627 #, c-format msgid "" "You selected this USER-ID:\n" @@ -971,19 +1176,19 @@ msgstr "" " \"%s\"\n" "\n" -#: g10/keygen.c:629 +#: g10/keygen.c:630 msgid "NnCcEeOoQq" msgstr "" -#: g10/keygen.c:638 +#: g10/keygen.c:639 msgid "keygen.userid.cmd" msgstr "" -#: g10/keygen.c:639 +#: g10/keygen.c:640 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? " msgstr "Modifica (N)ome, (C)ommento, (E)mail oppure (O)kay/(Q)uit? " -#: g10/keygen.c:686 +#: g10/keygen.c:687 msgid "" "You need a Passphrase to protect your secret key.\n" "\n" @@ -991,11 +1196,11 @@ msgstr "" "Ti serve una passphrase per proteggere la tua chiave segreta.\n" "\n" -#: g10/keyedit.c:377 g10/keygen.c:694 +#: g10/keyedit.c:388 g10/keygen.c:695 msgid "passphrase not correctly repeated; try again.\n" msgstr "passphrase non ripetuta correttamente; riprova.\n" -#: g10/keygen.c:700 +#: g10/keygen.c:701 msgid "" "You don't want a passphrase - this is probably a *bad* idea!\n" "I will do it anyway. You can change your passphrase at any time,\n" @@ -1007,7 +1212,7 @@ msgstr "" "programma con l'opzione \"--edit-key\".\n" "\n" -#: g10/keygen.c:721 +#: g10/keygen.c:722 msgid "" "We need to generate a lot of random bytes. It is a good idea to perform\n" "some other action (work in another window, move the mouse, utilize the\n" @@ -1021,33 +1226,33 @@ msgstr "" "generatore di numeri casuali la possibilità di raccogliere abbastanza\n" "entropia.\n" -#: g10/keygen.c:788 +#: g10/keygen.c:789 msgid "Key generation can only be used in interactive mode\n" msgstr "Una chiave può essere generata solo in modo interattivo\n" -#: g10/keygen.c:796 +#: g10/keygen.c:797 msgid "DSA keypair will have 1024 bits.\n" msgstr "La coppia DSA avrà 1024 bit.\n" -#: g10/keygen.c:802 +#: g10/keygen.c:803 msgid "Key generation cancelled.\n" msgstr "Generazione della chiave annullata.\n" -#: g10/keygen.c:812 +#: g10/keygen.c:813 #, c-format msgid "writing public certificate to '%s'\n" msgstr "scrittura del certificato pubblico in '%s'\n" -#: g10/keygen.c:813 +#: g10/keygen.c:814 #, c-format msgid "writing secret certificate to '%s'\n" msgstr "scrittura del certificato privato in '%s'\n" -#: g10/keygen.c:890 +#: g10/keygen.c:891 msgid "public and secret key created and signed.\n" msgstr "chiavi pubbliche e segrete create e firmate.\n" -#: g10/keygen.c:892 +#: g10/keygen.c:893 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" @@ -1056,16 +1261,16 @@ msgstr "" "vorrai usare il comando \"--add-key\" per generare una chiave secondaria\n" "per questo scopo.\n" -#: g10/keygen.c:906 g10/keygen.c:990 +#: g10/keygen.c:907 g10/keygen.c:991 #, c-format msgid "Key generation failed: %s\n" msgstr "Generazione della chiave fallita: %s\n" -#: g10/keygen.c:967 +#: g10/keygen.c:968 msgid "keygen.sub.okay" msgstr "" -#: g10/keygen.c:968 +#: g10/keygen.c:969 msgid "Really create? " msgstr "Crea davvero? " @@ -1099,7 +1304,7 @@ msgstr "%s crittografato per: %s\n" msgid "using secondary key %08lX instead of primary key %08lX\n" msgstr "" -#: g10/import.c:105 g10/trustdb.c:1349 +#: g10/import.c:105 g10/trustdb.c:1389 #, c-format msgid "can't open file: %s\n" msgstr "impossibile aprire il file: %s\n" @@ -1109,7 +1314,7 @@ msgstr "impossibile aprire il file: %s\n" msgid "skipping block of type %d\n" msgstr "salto un blocco di tipo %d\n" -#: g10/import.c:131 g10/trustdb.c:1427 +#: g10/import.c:131 g10/trustdb.c:1464 #, c-format msgid "read error: %s\n" msgstr "errore di lettura: %s\n" @@ -1347,17 +1552,17 @@ msgstr "Trovato 1 user id senza autofirma valida\n" msgid "%d user ids without valid self-signatures detected\n" msgstr "Trovati %d user id senza autofirme valide\n" -#: g10/keyedit.c:249 +#: g10/keyedit.c:257 #, c-format msgid "Already signed by key %08lX\n" msgstr "Già firmato dalla chiave %08lX\n" -#: g10/keyedit.c:257 +#: g10/keyedit.c:265 #, c-format msgid "Nothing to sign with key %08lX\n" msgstr "Niente da firmare con la chiave %08lX\n" -#: g10/keyedit.c:265 +#: g10/keyedit.c:274 msgid "" "Are you really sure that you want to sign this key\n" "with your key: \"" @@ -1365,33 +1570,33 @@ msgstr "" "Sei davvero sicuro di volere firmare questa chiave\n" "con la tua chiave: \"" -#: g10/keyedit.c:272 +#: g10/keyedit.c:281 msgid "sign_uid.okay" msgstr "" -#: g10/keyedit.c:272 +#: g10/keyedit.c:281 msgid "Really sign? " msgstr "Firmo davvero? " -#: g10/keyedit.c:293 +#: g10/keyedit.c:302 #, c-format msgid "signing failed: %s\n" msgstr "firma fallita: %s\n" -#: g10/keyedit.c:344 +#: g10/keyedit.c:355 msgid "This key is not protected.\n" msgstr "Questa chiave non è protetta.\n" -#: g10/keyedit.c:347 +#: g10/keyedit.c:358 msgid "Key is protected.\n" msgstr "La chiave è protetta.\n" -#: g10/keyedit.c:364 +#: g10/keyedit.c:375 #, c-format msgid "Can't edit this key: %s\n" msgstr "Impossibile modificare questa chiave: %s\n" -#: g10/keyedit.c:369 +#: g10/keyedit.c:380 msgid "" "Enter the new passphrase for this secret key.\n" "\n" @@ -1399,7 +1604,7 @@ msgstr "" "Inserisci la nuova passphrase per questa chiave segreta.\n" "\n" -#: g10/keyedit.c:381 +#: g10/keyedit.c:392 msgid "" "You don't want a passphrase - this is probably a *bad* idea!\n" "\n" @@ -1407,284 +1612,289 @@ msgstr "" "Non vuoi una passphrase - questa è probabilmente una *cattiva* idea!\n" "\n" -#: g10/keyedit.c:383 +#: g10/keyedit.c:394 msgid "change_passwd.empty.okay" msgstr "" -#: g10/keyedit.c:384 +#: g10/keyedit.c:395 msgid "Do you really want to do this? " msgstr "Vuoi veramente farlo?" -#: g10/keyedit.c:439 +#: g10/keyedit.c:450 msgid "quit" msgstr "" -#: g10/keyedit.c:439 +#: g10/keyedit.c:450 msgid "quit this menu" msgstr "abbandona questo menù" -#: g10/keyedit.c:440 +#: g10/keyedit.c:451 msgid "q" msgstr "" -#: g10/keyedit.c:441 +#: g10/keyedit.c:452 msgid "save" msgstr "" -#: g10/keyedit.c:441 +#: g10/keyedit.c:452 msgid "save and quit" msgstr "salva ed esci" -#: g10/keyedit.c:442 +#: g10/keyedit.c:453 msgid "help" msgstr "" -#: g10/keyedit.c:442 +#: g10/keyedit.c:453 msgid "show this help" msgstr "mostra questo aiuto" -#: g10/keyedit.c:444 +#: g10/keyedit.c:455 msgid "fpr" msgstr "" -#: g10/keyedit.c:444 +#: g10/keyedit.c:455 msgid "show fingerprint" msgstr "mostra le impronte digitali" -#: g10/keyedit.c:445 +#: g10/keyedit.c:456 msgid "list" msgstr "" -#: g10/keyedit.c:445 +#: g10/keyedit.c:456 msgid "list key and user ids" msgstr "elenca le chiavi e gli user id" -#: g10/keyedit.c:446 +#: g10/keyedit.c:457 msgid "l" msgstr "" -#: g10/keyedit.c:447 +#: g10/keyedit.c:458 msgid "uid" msgstr "" -#: g10/keyedit.c:447 +#: g10/keyedit.c:458 msgid "select user id N" msgstr "scegli l'user id N" -#: g10/keyedit.c:448 +#: g10/keyedit.c:459 msgid "key" msgstr "" -#: g10/keyedit.c:448 +#: g10/keyedit.c:459 msgid "select secondary key N" msgstr "scegli la chiave secondaria N" -#: g10/keyedit.c:449 +#: g10/keyedit.c:460 msgid "check" msgstr "" -#: g10/keyedit.c:449 +#: g10/keyedit.c:460 msgid "list signatures" msgstr "elenca le firme" -#: g10/keyedit.c:450 +#: g10/keyedit.c:461 msgid "c" msgstr "" -#: g10/keyedit.c:451 +#: g10/keyedit.c:462 msgid "sign" msgstr "" -#: g10/keyedit.c:451 +#: g10/keyedit.c:462 msgid "sign the key" msgstr "firma la chiave" -#: g10/keyedit.c:452 +#: g10/keyedit.c:463 msgid "s" msgstr "" -#: g10/keyedit.c:453 +#: g10/keyedit.c:464 msgid "debug" msgstr "" -#: g10/keyedit.c:454 +#: g10/keyedit.c:465 msgid "adduid" msgstr "" -#: g10/keyedit.c:454 +#: g10/keyedit.c:465 msgid "add a user id" msgstr "aggiungi un user id" -#: g10/keyedit.c:455 +#: g10/keyedit.c:466 msgid "deluid" msgstr "" -#: g10/keyedit.c:455 +#: g10/keyedit.c:466 msgid "delete user id" msgstr "cancella un user id" -#: g10/keyedit.c:456 +#: g10/keyedit.c:467 msgid "addkey" msgstr "" -#: g10/keyedit.c:456 +#: g10/keyedit.c:467 msgid "add a secondary key" msgstr "aggiungi una chiave secondaria" -#: g10/keyedit.c:457 +#: g10/keyedit.c:468 msgid "delkey" msgstr "" -#: g10/keyedit.c:457 +#: g10/keyedit.c:468 msgid "delete a secondary key" msgstr "cancella una chiave secondaria" -#: g10/keyedit.c:458 +#: g10/keyedit.c:469 msgid "toggle" msgstr "" -#: g10/keyedit.c:458 +#: g10/keyedit.c:469 msgid "toggle between secret and public key listing" msgstr "cambia tra visualizzare la chiave segreta e la chiave pubblica" -#: g10/keyedit.c:460 +#: g10/keyedit.c:471 msgid "t" msgstr "" -#: g10/keyedit.c:461 +#: g10/keyedit.c:472 msgid "pref" msgstr "" -#: g10/keyedit.c:461 +#: g10/keyedit.c:472 msgid "list preferences" msgstr "elenca le impostazioni" -#: g10/keyedit.c:462 +#: g10/keyedit.c:473 msgid "passwd" msgstr "" -#: g10/keyedit.c:462 +#: g10/keyedit.c:473 msgid "change the passphrase" msgstr "cambia la passphrase" -#: g10/keyedit.c:463 +#: g10/keyedit.c:474 msgid "trust" msgstr "" -#: g10/keyedit.c:463 +#: g10/keyedit.c:474 msgid "change the ownertrust" msgstr "cambia il valore di fiducia" -#: g10/keyedit.c:481 +#: g10/keyedit.c:492 msgid "can't do that in batchmode\n" msgstr "impossibile fare questo in batch mode\n" #. check that they match #. FIXME: check that they both match -#: g10/keyedit.c:504 +#: g10/keyedit.c:515 msgid "Secret key is available.\n" msgstr "È disponibile una chiave segreta.\n" -#: g10/keyedit.c:520 +#: g10/keyedit.c:531 msgid "keyedit.cmd" msgstr "" -#: g10/keyedit.c:520 +#: g10/keyedit.c:531 msgid "Command> " msgstr "Comando> " -#: g10/keyedit.c:545 +#: g10/keyedit.c:556 msgid "Need the secret key to to this.\n" msgstr "Per fare questo serve la chiave segreta.\n" -#: g10/keyedit.c:564 +#: g10/keyedit.c:575 msgid "keyedit.save.okay" msgstr "" -#: g10/keyedit.c:565 +#: g10/keyedit.c:576 msgid "Save changes? " msgstr "Salvo i cambiamenti? " -#: g10/keyedit.c:567 +#: g10/keyedit.c:578 msgid "keyedit.cancel.okay" msgstr "" -#: g10/keyedit.c:568 +#: g10/keyedit.c:579 msgid "Quit without saving? " msgstr "Esco senza salvare? " -#: g10/keyedit.c:578 +#: g10/keyedit.c:589 #, c-format msgid "update failed: %s\n" msgstr "aggiornamento fallito: %s\n" -#: g10/keyedit.c:585 +#: g10/keyedit.c:596 #, c-format msgid "update secret failed: %s\n" msgstr "aggiornamento della chiave segreta fallito: %s\n" -#: g10/keyedit.c:593 +#: g10/keyedit.c:603 msgid "Key not changed so no update needed.\n" msgstr "La chiave non è cambiata quindi non sono necessari aggiornamenti.\n" -#: g10/keyedit.c:623 +#: g10/keyedit.c:606 g10/keyedit.c:664 +#, fuzzy, c-format +msgid "update of trust db failed: %s\n" +msgstr "aggiornamento della chiave segreta fallito: %s\n" + +#: g10/keyedit.c:637 msgid "keyedit.sign_all.okay" msgstr "" -#: g10/keyedit.c:624 +#: g10/keyedit.c:638 msgid "Really sign all user ids? " msgstr "Firmo davvero tutti gli user id? " -#: g10/keyedit.c:625 +#: g10/keyedit.c:639 msgid "Hint: Select the user ids to sign\n" msgstr "Suggerimento: seleziona gli user id da firmare\n" -#: g10/keyedit.c:653 +#: g10/keyedit.c:675 msgid "You must select at least one user id.\n" msgstr "Devi selezionare almeno un user id.\n" -#: g10/keyedit.c:655 +#: g10/keyedit.c:677 msgid "You can't delete the last user id!\n" msgstr "Non puoi cancellare l'ultimo user id!\n" -#: g10/keyedit.c:657 +#: g10/keyedit.c:679 msgid "keyedit.remove.uid.okay" msgstr "" -#: g10/keyedit.c:658 +#: g10/keyedit.c:680 msgid "Really remove all selected user ids? " msgstr "Tolgo davvero tutti gli user id selezionati? " -#: g10/keyedit.c:659 +#: g10/keyedit.c:681 msgid "Really remove this user id? " msgstr "Tolgo davvero questo user id? " -#: g10/keyedit.c:682 +#: g10/keyedit.c:704 msgid "You must select at least one key.\n" msgstr "Devi selezionare almeno una chiave.\n" -#: g10/keyedit.c:684 +#: g10/keyedit.c:706 msgid "keyedit.remove.subkey.okay" msgstr "" -#: g10/keyedit.c:686 +#: g10/keyedit.c:708 msgid "Do you really want to delete the selected keys? " msgstr "Vuoi davvero cancellare le chiavi selezionate? " -#: g10/keyedit.c:687 +#: g10/keyedit.c:709 msgid "Do you really want to delete this key? " msgstr "Vuoi davvero cancellare questa chiave? " -#: g10/keyedit.c:724 +#: g10/keyedit.c:746 msgid "Invalid command (try \"help\")\n" msgstr "Comando non valido (prova \"help\")\n" -#: g10/keyedit.c:1104 +#: g10/keyedit.c:1129 #, c-format msgid "No user id with index %d\n" msgstr "Nessun user id con l'indice %d\n" -#: g10/keyedit.c:1149 +#: g10/keyedit.c:1174 #, c-format msgid "No secondary key with index %d\n" msgstr "Nessuna chiave secondaria con l'indice %d\n" @@ -1708,15 +1918,15 @@ msgstr "" msgid "Signature made %.*s using %s key ID %08lX\n" msgstr "Firma fatta %.*s usando %s key ID %08lX\n" -#: g10/mainproc.c:852 +#: g10/mainproc.c:854 msgid "BAD signature from \"" msgstr "Firma NON corretta da \"" -#: g10/mainproc.c:853 +#: g10/mainproc.c:855 msgid "Good signature from \"" msgstr "Buona firma da \"" -#: g10/mainproc.c:864 +#: g10/mainproc.c:866 #, c-format msgid "Can't check signature: %s\n" msgstr "Impossibile controllare la firma: %s\n" @@ -1800,79 +2010,78 @@ msgstr "" msgid "warning: signature key expired %s\n" msgstr "attenzione: firma della chiave scaduta il %s\n" -#: g10/trustdb.c:318 -#, c-format -msgid "error reading sigrec: %s\n" -msgstr "errore leggendo la sigrec: %s\n" +#: g10/trustdb.c:127 +msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n" +msgstr "" -#: g10/trustdb.c:323 +#: g10/trustdb.c:406 #, c-format msgid "chained sigrec %lu has a wrong owner\n" msgstr "la chained sigrec %lu ha il proprietario sbagliato\n" -#: g10/trustdb.c:370 +#: g10/trustdb.c:453 #, c-format msgid "key %08lX: secret key without public key\n" msgstr "chiave %08lX: chiave segreta senza chiave pubblica\n" -#: g10/trustdb.c:375 +#: g10/trustdb.c:458 #, c-format msgid "key %08lX: secret and public key don't match\n" msgstr "chiave %08lX: le chiavi segreta e pubblica non corrispondono\n" -#: g10/trustdb.c:386 +#: g10/trustdb.c:469 #, c-format msgid "key %08lX: can't put it into the trustdb\n" msgstr "chiave %08lX: impossibile metterla nel trustdb\n" -#: g10/trustdb.c:392 +#: g10/trustdb.c:475 #, c-format msgid "key %08lX: query record failed\n" msgstr "chiave %08lX: richiesta del record fallita\n" -#: g10/trustdb.c:401 +#: g10/trustdb.c:484 #, c-format msgid "key %08lX: already in ultikey_table\n" msgstr "chiave %08lX: già in ultikey_table\n" -#: g10/trustdb.c:408 +#: g10/trustdb.c:491 #, c-format msgid "enum_secret_keys failed: %s\n" msgstr "enum_secret_keys fallito: %s\n" -#: g10/trustdb.c:913 +#: g10/trustdb.c:964 #, fuzzy, c-format msgid "key %08lX.%lu, uid %02X%02X: no public key for signature %08lX\n" msgstr "chiave %08lX: nessun user id per la firma\n" -#: g10/trustdb.c:920 +#: g10/trustdb.c:971 #, fuzzy, c-format msgid "key %08lX.%lu, uid %02X%02X: invalid %ssignature: %s\n" msgstr "chiave %08lX: autofirma non valida\n" -#: g10/trustdb.c:1624 +#: g10/trustdb.c:1658 #, c-format msgid "key %08lX: insert trust record failed: %s\n" msgstr "chiave %08lX: inserimento del record della fiducia fallito: %s\n" -#: g10/trustdb.c:1628 +#: g10/trustdb.c:1662 #, c-format msgid "key %08lX.%lu: inserted into trustdb\n" msgstr "chiave %08lX.%lu: inserita nel trustdb\n" -#: g10/trustdb.c:1639 +#: g10/trustdb.c:1670 #, c-format msgid "key %08lX.%lu: created in future (time warp or clock problem)\n" msgstr "" "chiave %08lX.%lu: creata nel futuro (salto nel tempo o problema\n" "con l'orologio)\n" -#: g10/trustdb.c:1647 +#: g10/trustdb.c:1678 #, c-format msgid "key %08lX.%lu: expired at %s\n" msgstr "chiave %08lX.%lu: scaduta il %s\n" -#: g10/trustdb.c:1656 +#: g10/trustdb.c:1687 #, c-format msgid "key %08lX.%lu: trust check failed: %s\n" msgstr "chiave %08lX.%lu: controllo della fiducia fallito: %s\n" @@ -1932,5 +2141,5 @@ msgstr "" "Impossibile evitare una chiave debole per il cifrario simmetrico;\n" "ho provato %d volte!\n" -#~ msgid "can't write keyring\n" -#~ msgstr "impossibile scrivere il portachiavi\n" +#~ msgid "error reading sigrec: %s\n" +#~ msgstr "errore leggendo la sigrec: %s\n"