summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>1998-10-07 15:30:43 +0200
committerWerner Koch <wk@gnupg.org>1998-10-07 15:30:43 +0200
commit786a2870dfc48e9676476a5604a5115f4fe8c5e5 (patch)
treeb9ba3bb28e0c65e129994b4526a5c98519c756e0
parentwindoze version works again (diff)
downloadgnupg2-786a2870dfc48e9676476a5604a5115f4fe8c5e5.tar.xz
gnupg2-786a2870dfc48e9676476a5604a5115f4fe8c5e5.zip
a new releaseV0-4-1
-rw-r--r--Makefile.am10
-rw-r--r--NEWS4
-rw-r--r--README15
-rw-r--r--TODO9
-rw-r--r--VERSION2
-rwxr-xr-xchecks/genkey1024.test1
-rwxr-xr-xchecks/run-gpg2
-rw-r--r--doc/DETAILS8
-rw-r--r--g10/ChangeLog17
-rw-r--r--g10/g10.c10
-rw-r--r--g10/keyedit.c35
-rw-r--r--g10/pkclist.c4
-rw-r--r--g10/tdbio.c96
-rw-r--r--g10/tdbio.h8
-rw-r--r--g10/trustdb.c758
-rw-r--r--g10/trustdb.h2
-rw-r--r--po/ChangeLog4
-rw-r--r--po/Makefile.in.in9
-rw-r--r--po/de.po580
-rw-r--r--po/en.po756
-rw-r--r--po/fr.po778
-rw-r--r--po/it.po777
22 files changed, 2241 insertions, 1644 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 <gnupg-bugs@gnu.org> or better
post them to the mailing list <g10@net.lut.ac.uk> (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 [-- -]<maxdepth> <username>");
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( orig_pk->local_id )
- log_bug("pk->local_id=%lu\n", (ulong)orig_pk->local_id );
+ if( pk->local_id )
+ log_bug("pk->local_id=%lu\n", 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 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;
- }
+ write_record( &dirrec );
- /* 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);
- }
+ leave:
+ 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 <wk@frodo>\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 <gnupg-bugs@gnu.org>.\n"
msgstr "Berichte über Wanzen bitte an <gnupg-bugs@gnu.org>.\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 ""
" <n>m = Schlüssel verfällt nach n Monaten\n"
" <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) <heinrichh@duesseldorf.de>\"\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üsselt für: %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 "Kann die Datei nicht öffnen: %s\n"
@@ -1311,7 +1311,7 @@ msgstr "Kann die Datei nicht öffnen: %s\n"
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üssel %08lX: Ungültige Selbst-Signatur\n"
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 <wk@frodo>\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
+#: g10/g10.c:181
+msgid "fix a corrupted trust database"
+msgstr ""
+
+#: g10/g10.c:182
msgid "De-Armor a file or stdin"
msgstr ""
-#: g10/g10.c:181
+#: g10/g10.c:183
msgid "En-Armor a file or stdin"
msgstr ""
-#: g10/g10.c:182
+#: g10/g10.c:184
msgid "|algo [files]|print message digests"
msgstr ""
-#: g10/g10.c:183
+#: 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 <gnupg-bugs@gnu.org>.\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 ""
" <n>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
+#: g10/keygen.c:813
#, c-format
msgid "writing public certificate to '%s'\n"
msgstr ""
-#: g10/keygen.c:813
+#: 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 <gqueri@mail.dotcom.fr>\n"
"Language-Team: French <fr@li.org>\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 <gnupg-bugs@gnu.org>.\n"
msgstr "Rapporter toutes anomalies à <gnupg-bugs@gnu.org>.\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éfaut)\n"
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 ""
" <n>m = la clé expire dans n mois\n"
" <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) <heinrichh@duesseldorf.de\"\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 "Nom: "
-#: g10/keygen.c:568
+#: g10/keygen.c:569
msgid "Invalid character in name\n"
msgstr "Caractère invalide dans le nom\n"
-#: g10/keygen.c:570
+#: g10/keygen.c:571
msgid "Name may not start with a digit\n"
msgstr "Le nom ne doit pas commencer avec un chiffre\n"
-#: g10/keygen.c:572
+#: g10/keygen.c:573
msgid "Name must be at least 5 characters long\n"
msgstr "Le nom doit faire au moins 5 caractères de long\n"
-#: g10/keygen.c:580
+#: g10/keygen.c:581
msgid "keygen.email"
msgstr ""
-#: g10/keygen.c:580
+#: g10/keygen.c:581
msgid "Email address: "
msgstr "Adresse e-mail: "
-#: g10/keygen.c:592
+#: g10/keygen.c:593
msgid "Not a valid email address\n"
msgstr "Ce n'est pas une adresse e-mail valide\n"
-#: g10/keygen.c:600
+#: g10/keygen.c:601
msgid "keygen.comment"
msgstr ""
-#: g10/keygen.c:600
+#: g10/keygen.c:601
msgid "Comment: "
msgstr "Commentaire: "
-#: g10/keygen.c:606
+#: g10/keygen.c:607
msgid "Invalid character in comment\n"
msgstr "Caractère invalide dans le commentaire\n"
-#: g10/keygen.c:626
+#: g10/keygen.c:627
#, c-format
msgid ""
"You selected this USER-ID:\n"
@@ -980,11 +1186,11 @@ msgstr ""
" \"%s\"\n"
"\n"
-#: g10/keygen.c:629
+#: g10/keygen.c:630
msgid "NnCcEeOoQq"
msgstr "NnCcEeOoQq"
-#: g10/keygen.c:638
+#: g10/keygen.c:639
msgid "keygen.userid.cmd"
msgstr ""
"N pour changer le nom.\n"
@@ -993,11 +1199,11 @@ msgstr ""
"O pour continuer à générer la clé.\n"
"Q pour arrêter de générer de clé."
-#: g10/keygen.c:639
+#: g10/keygen.c:640
msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
msgstr "Changer le (N)om, le (C)ommentaire, l'(E)-mail ou (O)K/(Q)uitter? "
-#: g10/keygen.c:686
+#: g10/keygen.c:687
msgid ""
"You need a Passphrase to protect your secret key.\n"
"\n"
@@ -1005,11 +1211,11 @@ msgstr ""
"Vous avez besoin d'un mot de passe pour protéger votre clé secrète.\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 "le mot de passe n'a pas été correctement répété; recommencez.\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"
@@ -1021,7 +1227,7 @@ msgstr ""
"le désirez, en utilisant ce programme avec l'option \"--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"
@@ -1034,33 +1240,33 @@ msgstr ""
"premiers; cela permet au générateur de nombres aléatoires de gagner assez\n"
"d'entropie plus facilement.\n"
-#: g10/keygen.c:788
+#: g10/keygen.c:789
msgid "Key generation can only be used in interactive mode\n"
msgstr "La génération de clé ne peut être faite qu'en mode interactif\n"
-#: g10/keygen.c:796
+#: g10/keygen.c:797
msgid "DSA keypair will have 1024 bits.\n"
msgstr "La paire de clés DSA fera 1024 bits.\n"
-#: g10/keygen.c:802
+#: g10/keygen.c:803
msgid "Key generation cancelled.\n"
msgstr "La génération a été annulée.\n"
-#: g10/keygen.c:812
+#: g10/keygen.c:813
#, c-format
msgid "writing public certificate to '%s'\n"
msgstr "écriture d'un certificat public à '%s'\n"
-#: g10/keygen.c:813
+#: g10/keygen.c:814
#, c-format
msgid "writing secret certificate to '%s'\n"
msgstr "écriture d'un certificat secret à '%s'\n"
-#: g10/keygen.c:890
+#: g10/keygen.c:891
msgid "public and secret key created and signed.\n"
msgstr "les clés publique et secrète ont été créées et signées.\n"
-#: g10/keygen.c: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"
@@ -1069,16 +1275,16 @@ msgstr ""
"utiliser\n"
"la commande \"--add-key\" pour générer une clé secondaire à cette fin.\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 "La génération de clé a échoué: %s\n"
-#: g10/keygen.c:967
+#: g10/keygen.c:968
msgid "keygen.sub.okay"
msgstr "Répondez \"oui\" (ou simplement \"o\") pour générer la sous-clé"
-#: g10/keygen.c:968
+#: g10/keygen.c:969
msgid "Really create? "
msgstr "Créer vraiment? "
@@ -1112,7 +1318,7 @@ msgstr "%s crypté pour: %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 "ne peut ouvrir le fichier: %s\n"
@@ -1122,7 +1328,7 @@ msgstr "ne peut ouvrir le fichier: %s\n"
msgid "skipping block of type %d\n"
msgstr "ne prend pas en compte le bloc du type %d\n"
-#: g10/import.c:131 g10/trustdb.c:1427
+#: g10/import.c:131 g10/trustdb.c:1464
#, c-format
msgid "read error: %s\n"
msgstr "erreur de lecture: %s\n"
@@ -1363,17 +1569,17 @@ msgstr "un nom d'utilisateur sans auto-signature valide détecté\n"
msgid "%d user ids without valid self-signatures detected\n"
msgstr "%d nom d'utilisateurs sans auto-signature valide détecté\n"
-#: g10/keyedit.c:249
+#: g10/keyedit.c:257
#, c-format
msgid "Already signed by key %08lX\n"
msgstr "Déjà signé par la clé %08lX\n"
-#: g10/keyedit.c:257
+#: g10/keyedit.c:265
#, c-format
msgid "Nothing to sign with key %08lX\n"
msgstr "Rien à signer avec la clé %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: \""
@@ -1381,39 +1587,39 @@ msgstr ""
"Etes-vous vraiment sûr(e) que vous voulez signer cette clé\n"
"avec votre clé: \""
-#: 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 "Signer réellement? "
-#: g10/keyedit.c:293
+#: g10/keyedit.c:302
#, c-format
msgid "signing failed: %s\n"
msgstr "la signature a échoué: %s\n"
-#: g10/keyedit.c:344
+#: g10/keyedit.c:355
msgid "This key is not protected.\n"
msgstr "Cette clé n'est pas protégée.\n"
-#: g10/keyedit.c:347
+#: g10/keyedit.c:358
msgid "Key is protected.\n"
msgstr "La clé est protégée.\n"
-#: g10/keyedit.c:364
+#: g10/keyedit.c:375
#, c-format
msgid "Can't edit this key: %s\n"
msgstr "Ne peut éditer cette clé: %s\n"
-#: g10/keyedit.c:369
+#: g10/keyedit.c:380
msgid ""
"Enter the new passphrase for this secret key.\n"
"\n"
msgstr "Entrez le nouveau mot de passe pour cette clé secrète.\n"
-#: g10/keyedit.c:381
+#: g10/keyedit.c:392
msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"\n"
@@ -1421,285 +1627,290 @@ msgstr ""
"Vous ne voulez pas de mot de passe - cela est certainement une *mauvaise* "
"idée\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 "Voulez-vous vraiment faire cela? "
-#: g10/keyedit.c:439
+#: g10/keyedit.c:450
msgid "quit"
msgstr "quitter"
-#: g10/keyedit.c:439
+#: g10/keyedit.c:450
msgid "quit this menu"
msgstr "quitter ce menu"
-#: g10/keyedit.c:440
+#: g10/keyedit.c:451
msgid "q"
msgstr "q"
-#: g10/keyedit.c:441
+#: g10/keyedit.c:452
msgid "save"
msgstr "enregistrer"
-#: g10/keyedit.c:441
+#: g10/keyedit.c:452
msgid "save and quit"
msgstr "enregistrer et quitter"
-#: g10/keyedit.c:442
+#: g10/keyedit.c:453
msgid "help"
msgstr "aide"
-#: g10/keyedit.c:442
+#: g10/keyedit.c:453
msgid "show this help"
msgstr "montrer cette aide"
# g10/keyedit.c:556 ???
-#: g10/keyedit.c:444
+#: g10/keyedit.c:455
msgid "fpr"
msgstr ""
-#: g10/keyedit.c:444
+#: g10/keyedit.c:455
msgid "show fingerprint"
msgstr "montrer l'empreinte"
-#: g10/keyedit.c:445
+#: g10/keyedit.c:456
msgid "list"
msgstr "lister"
-#: g10/keyedit.c:445
+#: g10/keyedit.c:456
msgid "list key and user ids"
msgstr "lister la clé et les noms d'utilisateurs"
-#: g10/keyedit.c:446
+#: g10/keyedit.c:457
msgid "l"
msgstr "l"
-#: 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 "sélectionner le nom d'utilisateur N"
-#: g10/keyedit.c:448
+#: g10/keyedit.c:459
msgid "key"
msgstr "clé"
-#: g10/keyedit.c:448
+#: g10/keyedit.c:459
msgid "select secondary key N"
msgstr "sélectionner la clé secondaire N"
-#: g10/keyedit.c:449
+#: g10/keyedit.c:460
msgid "check"
msgstr "vérifier"
-#: g10/keyedit.c:449
+#: g10/keyedit.c:460
msgid "list signatures"
msgstr "lister les signatures"
-#: g10/keyedit.c:450
+#: g10/keyedit.c:461
msgid "c"
msgstr ""
-#: g10/keyedit.c:451
+#: g10/keyedit.c:462
msgid "sign"
msgstr "signer"
-#: g10/keyedit.c:451
+#: g10/keyedit.c:462
msgid "sign the key"
msgstr "signer la clé"
-#: g10/keyedit.c:452
+#: g10/keyedit.c:463
msgid "s"
msgstr ""
-#: g10/keyedit.c:453
+#: g10/keyedit.c:464
msgid "debug"
msgstr "déboguer"
-#: g10/keyedit.c:454
+#: g10/keyedit.c:465
msgid "adduid"
msgstr "aj.ut"
-#: g10/keyedit.c:454
+#: g10/keyedit.c:465
msgid "add a user id"
msgstr "ajouter un utilisateur"
-#: g10/keyedit.c:455
+#: g10/keyedit.c:466
msgid "deluid"
msgstr "suppr.ut"
-#: g10/keyedit.c:455
+#: g10/keyedit.c:466
msgid "delete user id"
msgstr "enlever un utilisateur"
-#: g10/keyedit.c:456
+#: g10/keyedit.c:467
msgid "addkey"
msgstr "aj.clé"
-#: g10/keyedit.c:456
+#: g10/keyedit.c:467
msgid "add a secondary key"
msgstr "ajouter une clé secondaire"
-#: g10/keyedit.c:457
+#: g10/keyedit.c:468
msgid "delkey"
msgstr "suppr.clé"
-#: g10/keyedit.c:457
+#: g10/keyedit.c:468
msgid "delete a secondary key"
msgstr "enlever une clé secondaire"
-#: g10/keyedit.c:458
+#: g10/keyedit.c:469
msgid "toggle"
msgstr "changer"
-#: g10/keyedit.c:458
+#: g10/keyedit.c:469
msgid "toggle between secret and public key listing"
msgstr "passer de la liste des clés secrètes aux clés privées et inversement"
-#: g10/keyedit.c: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 "lister les préférences"
-#: g10/keyedit.c:462
+#: g10/keyedit.c:473
msgid "passwd"
msgstr "mot.pas"
-#: g10/keyedit.c:462
+#: g10/keyedit.c:473
msgid "change the passphrase"
msgstr "changer le mot de passe"
-#: g10/keyedit.c:463
+#: g10/keyedit.c:474
msgid "trust"
msgstr "confi."
-#: g10/keyedit.c:463
+#: g10/keyedit.c:474
msgid "change the ownertrust"
msgstr "changer la confiance"
-#: g10/keyedit.c:481
+#: g10/keyedit.c:492
msgid "can't do that in batchmode\n"
msgstr "ne peut faire cela en mode automatique\n"
#. check that they match
#. FIXME: check that they both match
-#: g10/keyedit.c:504
+#: g10/keyedit.c:515
msgid "Secret key is available.\n"
msgstr "La clé secrète est disponible.\n"
-#: g10/keyedit.c:520
+#: g10/keyedit.c:531
msgid "keyedit.cmd"
msgstr "Entrez \"aide\" s'il vous plaît."
-#: g10/keyedit.c:520
+#: g10/keyedit.c:531
msgid "Command> "
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é publique créée dans le futur (problème d'horloge)\n"
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 <md@linux.it>\n"
"Language-Team: Italian <it@li.org>\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 <gnupg-bugs@gnu.org>.\n"
msgstr "Per favore segnala i bug a <gnupg-bugs@gnu.org>.\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 ""
" <n>m = la chiave scadrà dopo n mesi\n"
" <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) <heinrichh@duesseldorf.de>\"\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"