aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>1999-10-04 19:27:02 +0000
committerWerner Koch <[email protected]>1999-10-04 19:27:02 +0000
commit296f9de0bc100bcd1d134b661e966bda5c3fa87e (patch)
treeb77ff657be553d067763c81c8729e650a47726c7
parentSee ChangeLog: Tue Sep 28 20:56:34 CEST 1999 Werner Koch (diff)
downloadgnupg-296f9de0bc100bcd1d134b661e966bda5c3fa87e.tar.gz
gnupg-296f9de0bc100bcd1d134b661e966bda5c3fa87e.zip
See ChangeLog: Mon Oct 4 21:23:04 CEST 1999 Werner Koch
-rw-r--r--NEWS6
-rw-r--r--TODO6
-rw-r--r--VERSION2
-rwxr-xr-xchecks/mkdemodirs8
-rw-r--r--cipher/ChangeLog5
-rw-r--r--cipher/md.c2
-rw-r--r--g10/ChangeLog41
-rw-r--r--g10/g10.c15
-rw-r--r--g10/import.c84
-rw-r--r--g10/main.h2
-rw-r--r--g10/mainproc.c13
-rw-r--r--g10/options.h1
-rw-r--r--g10/passphrase.c8
-rw-r--r--g10/pkclist.c24
-rw-r--r--g10/tdbdump.c1
-rw-r--r--g10/tdbio.c2
-rw-r--r--g10/tdbio.h3
-rw-r--r--g10/trustdb.c215
-rw-r--r--g10/trustdb.h1
-rw-r--r--include/ChangeLog4
-rw-r--r--include/errors.h1
-rw-r--r--po/ChangeLog4
-rw-r--r--po/pl.po495
-rw-r--r--util/errors.c1
24 files changed, 583 insertions, 361 deletions
diff --git a/NEWS b/NEWS
index aa1b82837..ce8dea514 100644
--- a/NEWS
+++ b/NEWS
@@ -6,6 +6,12 @@
* Add Indonesian and Portugese translations.
+ * Fixed a bug with symmetric-only encryption using the non-default 3DES.
+ The option --emulate-3des-s2k-bug may be used to decrypt documents
+ which have been encrypted this way; this should be done immediately
+ as this workaround will be remove in 1.1
+
+
Noteworthy changes in version 1.0.0 (1999-09-07)
-----------------------------------
diff --git a/TODO b/TODO
index 735841c4e..e8b8c1f36 100644
--- a/TODO
+++ b/TODO
@@ -1,8 +1,4 @@
- * try to do --verify even if the files are swapped on the commandline
- (requested by Herny Spencer) or change the error message to
- a more clear one.
-
Scheduled for 1.1
-----------------
@@ -27,7 +23,7 @@ Scheduled for 1.1
* Check the beginning of file to detect already compressed files (gzip,
bzip2, xdelta and some picture formats)
- * Delay the read of the passphrase-fd afte a NEED_PASSPHRASE. But this
+ * Delay the read of the passphrase-fd after a NEED_PASSPHRASE. But this
may break some scripts.
diff --git a/VERSION b/VERSION
index 0327041ad..3e46810c8 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.0.0c
+1.0.0d
diff --git a/checks/mkdemodirs b/checks/mkdemodirs
index b0755ab48..cdd945cbf 100755
--- a/checks/mkdemodirs
+++ b/checks/mkdemodirs
@@ -24,10 +24,10 @@ for name in $NAMES; do
/bin/echo " $name\c"
[ -d $name ] && rm -r $name
mkdir $name
- $GPGDEMO --export-secret-key -o - $name | tee $name/Secret.gpg | \
- $GPG --homedir $name --import
- $GPGDEMO --export -o - $name | tee $name/Public.gpg | \
- $GPG --homedir $name --import
+ $GPGDEMO --export-secret-key -o - $name > $name/Secret.gpg
+ $GPG --homedir $name --import $name/Secret.gpg
+ $GPGDEMO --export -o - $name > $name/Public.gpg
+ $GPG --homedir $name --import $name/Public.gpg
[ -f $name/pubring.gpg~ ] && rm $name/pubring.gpg~
done
echo "."
diff --git a/cipher/ChangeLog b/cipher/ChangeLog
index dd8c0b033..d5e77e579 100644
--- a/cipher/ChangeLog
+++ b/cipher/ChangeLog
@@ -1,3 +1,8 @@
+Mon Oct 4 21:23:04 CEST 1999 Werner Koch <[email protected]>
+
+ * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
+ fixing this bug.
+
Sat Sep 18 12:51:51 CEST 1999 Werner Koch <[email protected]>
diff --git a/cipher/md.c b/cipher/md.c
index be921e4b0..9313fc068 100644
--- a/cipher/md.c
+++ b/cipher/md.c
@@ -291,7 +291,7 @@ md_reset( MD_HANDLE a )
{
struct md_digest_list_s *r;
- a->bufcount = 0;
+ a->bufcount = a->finalized = 0;
for( r=a->list; r; r = r->next ) {
memset( r->context.c, 0, r->contextsize );
(*r->init)( &r->context.c );
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 83620ff73..acfed581d 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,44 @@
+Mon Oct 4 21:23:04 CEST 1999 Werner Koch <[email protected]>
+
+ * import.c (import_keys): Changed calling interface, adjusted caller.
+ (import): Moved printing of stats out ...
+ (print_stats): New. ... to here.
+ (import_keys_stream): Call stats print here.
+ (import_keys): Print stats as totals for all files.
+
+ * tdbio.h (DIRF_NEWKEYS): New
+ * tdbio.c (tdbio_dump_record): Print the new flag.
+ * trustdb.c (check_trust_record): New arg sigs_only. Adapted all
+ callers.
+ (do_update_trust_record): Removed recheck arg and add a new sigs_only
+ do we can later improve on the performance. Changed all callers too.
+ (check_trustdb): Evalutate the new flag and add a status output.
+ Do a check when the dir record has not been checked.
+ (build_cert_tree): Evaluate the new flag.
+ (check_trust): Ditto. Do a trust_record check, when the dir record
+ is not marked as checked.
+ (mark_fresh_keys): New.
+ (clear_lid_table): New.
+ (sync_trustdb): New.
+ * import.c (import_keys): Call sync_trustdb() after processing.
+ (import_keys_stream): Ditto.
+ * tdbdump.c (import_ownertrust): Ditto.
+
+ * import.c (import_revoke_cert): Notify the trust DB.
+ (do_update_trust_record): Use |= to set the REVOKED bit and not &=;
+ shame on me for this bad copy+paste introduced bug.
+ (do_we_trust): Add trustmask to allow revoked key override to work.
+ Chnaged are to allow return of a mofified trustlevel. Adapted the
+ one caller.
+
+ * g10.c: New options --emulate-3des-s2k-bug
+ * passphrase.c (hash_passphrase): Implemented above.
+
+ * mainproc.c (proc_tree): Check for standalone signatures.
+ (do_check_sig): Print a notice for a standalone revocation
+ (check_sig_and_print): Do not print an error for unchecked standalone
+ revocations.
+
Tue Sep 28 20:54:37 CEST 1999 Werner Koch <[email protected]>
* encode.c (encode_simple): Use new CTB when we don't have the
diff --git a/g10/g10.c b/g10/g10.c
index 7a9e9238d..500f2a1a7 100644
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -179,6 +179,7 @@ enum cmd_and_opt_values { aNull = 0,
oNoLiteral,
oSetFilesize,
oEntropyDLLName,
+ oEmu3DESS2KBug, /* will be removed in 1.1 */
aTest };
@@ -346,6 +347,7 @@ static ARGPARSE_OPTS opts[] = {
{ oNoLiteral, "no-literal", 0, "@" },
{ oSetFilesize, "set-filesize", 20, "@" },
{ oEntropyDLLName, "entropy-dll-name", 2, "@" },
+ { oEmu3DESS2KBug, "emulate-3des-s2k-bug", 0, "@"},
{0} };
@@ -805,6 +807,7 @@ main( int argc, char **argv )
opt.s2k_cipher_algo = CIPHER_ALGO_BLOWFISH;
break;
case oEmuChecksumBug: opt.emulate_bugs |= EMUBUG_GPGCHKSUM; break;
+ case oEmu3DESS2KBug: opt.emulate_bugs |= EMUBUG_3DESS2K; break;
case oCompressSigs: opt.compress_sigs = 1; break;
case oRunAsShmCP:
#ifndef USE_SHM_COPROCESSING
@@ -1215,17 +1218,7 @@ main( int argc, char **argv )
case aFastImport:
case aImport:
- if( !argc ) {
- rc = import_keys( NULL, (cmd == aFastImport) );
- if( rc )
- log_error("import failed: %s\n", g10_errstr(rc) );
- }
- for( ; argc; argc--, argv++ ) {
- rc = import_keys( *argv, (cmd == aFastImport) );
- if( rc )
- log_error("import from `%s' failed: %s\n",
- *argv, g10_errstr(rc) );
- }
+ import_keys( argc? argv:NULL, argc, (cmd == aFastImport) );
break;
case aExport:
diff --git a/g10/import.c b/g10/import.c
index 92cd93c24..5a6f83f97 100644
--- a/g10/import.c
+++ b/g10/import.c
@@ -38,6 +38,7 @@
static struct {
+ ulong count;
ulong no_user_id;
ulong imported;
ulong imported_rsa;
@@ -53,6 +54,7 @@ static struct {
static int import( IOBUF inp, int fast, const char* fname );
+static void print_stats(void);
static int read_block( IOBUF a, PACKET **pending_pkt, KBNODE *ret_root );
static int import_one( const char *fname, KBNODE keyblock, int fast );
static int import_secret_one( const char *fname, KBNODE keyblock );
@@ -105,30 +107,48 @@ static int merge_keysigs( KBNODE dst, KBNODE src, int *n_sigs,
* Key revocation certificates have special handling.
*
*/
-int
-import_keys( const char *fname, int fast )
+void
+import_keys( char **fnames, int nnames, int fast )
{
- IOBUF inp = NULL;
- int rc;
-
- inp = iobuf_open(fname);
- if( !fname )
- fname = "[stdin]";
- if( !inp ) {
- log_error(_("can't open `%s': %s\n"), fname, strerror(errno) );
- return G10ERR_OPEN_FILE;
- }
+ int i;
- rc = import( inp, fast, fname );
+ /* fixme: don't use static variables */
+ memset( &stats, 0, sizeof( stats ) );
- iobuf_close(inp);
- return rc;
+ for(i=0; i < nnames; i++ ) {
+ const char *fname = fnames? fnames[i] : NULL;
+ IOBUF inp = iobuf_open(fname);
+ if( !fname )
+ fname = "[stdin]";
+ if( !inp )
+ log_error(_("can't open `%s': %s\n"), fname, strerror(errno) );
+ else {
+ int rc = import( inp, fast, fname );
+ iobuf_close(inp);
+ if( rc )
+ log_error("import from `%s' failed: %s\n", fname,
+ g10_errstr(rc) );
+ }
+ if( !fname )
+ break;
+ }
+ print_stats();
+ if( !fast )
+ sync_trustdb();
}
int
import_keys_stream( IOBUF inp, int fast )
{
- return import( inp, fast, "[stream]" );
+ int rc = 0;
+
+ /* fixme: don't use static variables */
+ memset( &stats, 0, sizeof( stats ) );
+ rc = import( inp, fast, "[stream]" );
+ print_stats();
+ if( !fast )
+ sync_trustdb();
+ return rc;
}
static int
@@ -137,10 +157,6 @@ import( IOBUF inp, int fast, const char* fname )
PACKET *pending_pkt = NULL;
KBNODE keyblock;
int rc = 0;
- ulong count=0;
-
- /* fixme: don't use static variables */
- memset( &stats, 0, sizeof( stats ) );
getkey_disable_caches();
@@ -165,16 +181,23 @@ import( IOBUF inp, int fast, const char* fname )
release_kbnode(keyblock);
if( rc )
break;
- if( !(++count % 100) && !opt.quiet )
- log_info(_("%lu keys so far processed\n"), count );
+ if( !(++stats.count % 100) && !opt.quiet )
+ log_info(_("%lu keys so far processed\n"), stats.count );
}
if( rc == -1 )
rc = 0;
else if( rc && rc != G10ERR_INV_KEYRING )
log_error( _("error reading `%s': %s\n"), fname, g10_errstr(rc));
+ return rc;
+}
+
+
+static void
+print_stats()
+{
if( !opt.quiet ) {
- log_info(_("Total number processed: %lu\n"), count );
+ log_info(_("Total number processed: %lu\n"), stats.count );
if( stats.no_user_id )
log_info(_(" w/o user IDs: %lu\n"), stats.no_user_id );
if( stats.imported || stats.imported_rsa ) {
@@ -202,9 +225,9 @@ import( IOBUF inp, int fast, const char* fname )
}
if( is_status_enabled() ) {
- char buf[12*16];
+ char buf[12*20];
sprintf(buf, "%lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu",
- count,
+ stats.count,
stats.no_user_id,
stats.imported,
stats.imported_rsa,
@@ -218,8 +241,6 @@ import( IOBUF inp, int fast, const char* fname )
stats.secret_dups);
write_status_text( STATUS_IMPORT_RES, buf );
}
-
- return rc;
}
@@ -678,6 +699,15 @@ import_revoke_cert( const char *fname, KBNODE node )
log_info( _("key %08lX: revocation certificate imported\n"),
(ulong)keyid[1]);
stats.n_revoc++;
+ if( clear_trust_checked_flag( pk ) ) {
+ /* seems that we have to insert the record first */
+ rc = insert_trust_record( keyblock );
+ if( rc )
+ log_error("key %08lX: trustdb insert failed: %s\n",
+ (ulong)keyid[1], g10_errstr(rc) );
+ else
+ rc = clear_trust_checked_flag( pk );
+ }
leave:
release_kbnode( keyblock );
diff --git a/g10/main.h b/g10/main.h
index 3cca94a11..32aa2652c 100644
--- a/g10/main.h
+++ b/g10/main.h
@@ -116,7 +116,7 @@ KBNODE make_comment_node( const char *s );
KBNODE make_mpi_comment_node( const char *s, MPI a );
/*-- import.c --*/
-int import_keys( const char *filename, int fast );
+void import_keys( char **fnames, int nnames, int fast );
int import_keys_stream( IOBUF inp, int fast );
int collapse_uids( KBNODE *keyblock );
diff --git a/g10/mainproc.c b/g10/mainproc.c
index 4c93b4877..59b460c81 100644
--- a/g10/mainproc.c
+++ b/g10/mainproc.c
@@ -507,6 +507,11 @@ do_check_sig( CTX c, KBNODE node, int *is_selfsig )
|| c->list->pkt->pkttype == PKT_PUBLIC_SUBKEY ) {
return check_key_signature( c->list, node, is_selfsig );
}
+ else if( sig->sig_class == 0x20 ) {
+ log_info(_("standalone revocation - "
+ "use \"gpg --import\" to apply\n"), sig->sig_class);
+ return G10ERR_NOT_PROCESSED;
+ }
else {
log_error("invalid root packet for sigclass %02x\n",
sig->sig_class);
@@ -1114,7 +1119,8 @@ check_sig_and_print( CTX c, KBNODE node )
buf[16] = 0;
write_status_text( STATUS_NO_PUBKEY, buf );
}
- log_error(_("Can't check signature: %s\n"), g10_errstr(rc) );
+ if( rc != G10ERR_NOT_PROCESSED )
+ log_error(_("Can't check signature: %s\n"), g10_errstr(rc) );
}
return rc;
}
@@ -1174,7 +1180,10 @@ proc_tree( CTX c, KBNODE node )
else if( node->pkt->pkttype == PKT_SIGNATURE ) {
PKT_signature *sig = node->pkt->pkt.signature;
- if( !c->have_data ) {
+ if( sig->sig_class != 0x00 && sig->sig_class != 0x01 )
+ log_info(_("standalone signature of class 0x%02x\n"),
+ sig->sig_class);
+ else if( !c->have_data ) {
/* detached signature */
free_md_filter_context( &c->mfx );
c->mfx.md = md_open(sig->digest_algo, 0);
diff --git a/g10/options.h b/g10/options.h
index 02613e3cc..650df8d88 100644
--- a/g10/options.h
+++ b/g10/options.h
@@ -87,6 +87,7 @@ struct {
#define EMUBUG_GPGCHKSUM 1
+#define EMUBUG_3DESS2K 2
#define DBG_PACKET_VALUE 1 /* debug packet reading/writing */
#define DBG_MPI_VALUE 2 /* debug mpi details */
diff --git a/g10/passphrase.c b/g10/passphrase.c
index bee78660f..219238321 100644
--- a/g10/passphrase.c
+++ b/g10/passphrase.c
@@ -242,7 +242,13 @@ hash_passphrase( DEK *dek, char *pw, STRING2KEY *s2k, int create )
md = md_open( s2k->hash_algo, 1);
for(pass=0; used < dek->keylen ; pass++ ) {
if( pass ) {
- md_reset(md);
+ if( (opt.emulate_bugs & EMUBUG_3DESS2K)) {
+ int tmp = md->finalized;
+ md_reset( md );
+ md->finalized = tmp;
+ }
+ else
+ md_reset(md);
for(i=0; i < pass; i++ ) /* preset the hash context */
md_putc(md, 0 );
}
diff --git a/g10/pkclist.c b/g10/pkclist.c
index 4bf1fc4bf..1e382ccff 100644
--- a/g10/pkclist.c
+++ b/g10/pkclist.c
@@ -337,16 +337,17 @@ _("Could not find a valid trust path to the key. Let's see whether we\n"
/****************
* Check whether we can trust this pk which has a trustlevel of TRUSTLEVEL
- * Returns: true if we trust.
+ * Returns: true if we trust. Might change the trustlevel
*/
static int
-do_we_trust( PKT_public_key *pk, int trustlevel )
+do_we_trust( PKT_public_key *pk, int *trustlevel )
{
int rc;
int did_add = 0;
+ int trustmask = 0;
retry:
- if( (trustlevel & TRUST_FLAG_REVOKED) ) {
+ if( (*trustlevel & TRUST_FLAG_REVOKED) ) {
log_info(_("key %08lX: key has been revoked!\n"),
(ulong)keyid_from_pk( pk, NULL) );
if( opt.batch )
@@ -355,8 +356,9 @@ do_we_trust( PKT_public_key *pk, int trustlevel )
if( !cpr_get_answer_is_yes("revoked_key.override",
_("Use this key anyway? ")) )
return 0;
+ trustmask |= TRUST_FLAG_REVOKED;
}
- else if( (trustlevel & TRUST_FLAG_SUB_REVOKED) ) {
+ else if( (*trustlevel & TRUST_FLAG_SUB_REVOKED) ) {
log_info(_("key %08lX: subkey has been revoked!\n"),
(ulong)keyid_from_pk( pk, NULL) );
if( opt.batch )
@@ -365,10 +367,12 @@ do_we_trust( PKT_public_key *pk, int trustlevel )
if( !cpr_get_answer_is_yes("revoked_key.override",
_("Use this key anyway? ")) )
return 0;
+ trustmask |= TRUST_FLAG_SUB_REVOKED;
}
+ *trustlevel &= ~trustmask;
- switch( (trustlevel & TRUST_MASK) ) {
+ switch( (*trustlevel & TRUST_MASK) ) {
case TRUST_UNKNOWN: /* No pubkey in trustDB: Insert and check again */
rc = insert_trust_record_by_pk( pk );
if( rc ) {
@@ -376,11 +380,12 @@ do_we_trust( PKT_public_key *pk, int trustlevel )
g10_errstr(rc) );
return 0; /* no */
}
- rc = check_trust( pk, &trustlevel, NULL, NULL, NULL );
+ rc = check_trust( pk, trustlevel, NULL, NULL, NULL );
+ *trustlevel &= ~trustmask;
if( rc )
log_fatal("trust check after insert failed: %s\n",
g10_errstr(rc) );
- if( trustlevel == TRUST_UNKNOWN || trustlevel == TRUST_EXPIRED ) {
+ if( *trustlevel == TRUST_UNKNOWN || *trustlevel == TRUST_EXPIRED ) {
log_debug("do_we_trust: oops at %d\n", __LINE__ );
return 0;
}
@@ -398,7 +403,8 @@ do_we_trust( PKT_public_key *pk, int trustlevel )
else {
int quit;
- rc = add_ownertrust( pk, &quit, &trustlevel );
+ rc = add_ownertrust( pk, &quit, trustlevel );
+ *trustlevel &= ~trustmask;
if( !rc && !did_add && !quit ) {
did_add = 1;
goto retry;
@@ -444,7 +450,7 @@ do_we_trust_pre( PKT_public_key *pk, int trustlevel )
{
int rc;
- rc = do_we_trust( pk, trustlevel );
+ rc = do_we_trust( pk, &trustlevel );
if( (trustlevel & TRUST_FLAG_REVOKED) && !rc )
return 0;
diff --git a/g10/tdbdump.c b/g10/tdbdump.c
index 799309e05..e384b8be7 100644
--- a/g10/tdbdump.c
+++ b/g10/tdbdump.c
@@ -520,5 +520,6 @@ import_ownertrust( const char *fname )
if( !is_stdin )
fclose(fp);
do_sync();
+ sync_trustdb();
}
diff --git a/g10/tdbio.c b/g10/tdbio.c
index b840d723a..70fc530fd 100644
--- a/g10/tdbio.c
+++ b/g10/tdbio.c
@@ -1130,6 +1130,8 @@ tdbio_dump_record( TRUSTREC *rec, FILE *fp )
fputs(", expired", fp );
if( rec->r.dir.dirflags & DIRF_REVOKED )
fputs(", revoked", fp );
+ if( rec->r.dir.dirflags & DIRF_NEWKEYS )
+ fputs(", newkeys", fp );
}
putc('\n', fp);
break;
diff --git a/g10/tdbio.h b/g10/tdbio.h
index a64f21b5f..1c6630961 100644
--- a/g10/tdbio.h
+++ b/g10/tdbio.h
@@ -52,6 +52,7 @@
/* one uid with a selfsignature or an revocation */
#define DIRF_EXPIRED 4 /* the complete key has expired */
#define DIRF_REVOKED 8 /* the complete key has been revoked */
+#define DIRF_NEWKEYS 128 /* new keys are available: we can check the sigs */
#define KEYF_CHECKED 1 /* This key has been checked */
#define KEYF_VALID 2 /* This is a valid (sub)key */
@@ -121,7 +122,7 @@ struct trust_record {
} uid;
struct { /* preference record */
ulong lid; /* point back to the directory record */
- /* or 0 for a glocal pref record */
+ /* or 0 for a global pref record */
ulong next; /* points to next pref record */
byte data[ITEMS_PER_PREF_RECORD];
} pref;
diff --git a/g10/trustdb.c b/g10/trustdb.c
index 42a45aa64..78ff3de56 100644
--- a/g10/trustdb.c
+++ b/g10/trustdb.c
@@ -125,13 +125,22 @@ static int do_check( TRUSTREC *drec, unsigned *trustlevel,
unsigned *retflgs);
static int get_dir_record( PKT_public_key *pk, TRUSTREC *rec );
static int do_update_trust_record( KBNODE keyblock, TRUSTREC *drec,
- int recheck, int *modified );
-static int check_trust_record( TRUSTREC *drec );
+ int sigs_only, int *modified );
+static int check_trust_record( TRUSTREC *drec, int sigs_only );
+static void mark_fresh_keys(void);
/* a table used to keep track of ultimately trusted keys
* which are the ones from our secrings and the trusted keys */
static LOCAL_ID_TABLE ultikey_table;
+
+/* a table to keep track of newly importted keys. This one is
+ * create by the insert_trust_record function and from time to time
+ * used to verify key signature which have been done with these new keys */
+static LOCAL_ID_TABLE fresh_imported_keys;
+static int fresh_imported_keys_count;
+#define FRESH_KEY_CHECK_THRESHOLD 200
+
/* list of unused lid items and tables */
static LOCAL_ID_TABLE unused_lid_tables;
static struct local_id_item *unused_lid_items;
@@ -245,6 +254,27 @@ release_lid_table( LOCAL_ID_TABLE tbl )
}
#endif
+
+/****************
+ * Remove all items from a LID table
+ */
+static void
+clear_lid_table( LOCAL_ID_TABLE tbl )
+{
+ struct local_id_item *a, *a2;
+ int i;
+
+ for(i=0; i < 16; i++ ) {
+ for(a=tbl->items[i]; a; a = a2 ) {
+ a2 = a->next;
+ a->next = unused_lid_items;
+ unused_lid_items = a;
+ }
+ tbl->items[i] = NULL;
+ }
+}
+
+
/****************
* Add a new item to the table or return 1 if we already have this item
*/
@@ -572,6 +602,18 @@ init_trustdb()
+/****************
+ * This function should be called in certain cases to sync the internal state
+ * of the trustdb with the file image. Currently it is needed after
+ * a sequence of insert_trust_record() calls.
+ */
+void
+sync_trustdb()
+{
+ if( fresh_imported_keys && fresh_imported_keys_count )
+ mark_fresh_keys();
+}
+
/***********************************************
@@ -1082,7 +1124,7 @@ check_uidsigs( KBNODE keyblock, KBNODE keynode, u32 *mainkid, ulong lid,
static unsigned int
check_sig_record( KBNODE keyblock, KBNODE signode,
ulong siglid, int sigidx, u32 *keyid, ulong lid,
- u32 *r_expire )
+ u32 *r_expire, int *mod_down, int *mod_up )
{
PKT_signature *sig = signode->pkt->pkt.signature;
unsigned int sigflag = 0;
@@ -1114,16 +1156,16 @@ check_sig_record( KBNODE keyblock, KBNODE signode,
sigflag |= SIGF_CHECKED | SIGF_VALID;
if( revocation ) {
sigflag |= SIGF_REVOKED;
- /**mod_down = 1;*/
+ *mod_down = 1;
}
else
- /**mod_up = 1*/;
+ *mod_up = 1;
}
else if( rc == G10ERR_NO_PUBKEY ) {
/* This may happen if the key is still in the trustdb
* but not available in the keystorage */
sigflag |= SIGF_NOPUBKEY;
- /**mod_down = 1;*/
+ *mod_down = 1;
if( revocation )
sigflag |= SIGF_REVOKED;
}
@@ -1137,7 +1179,7 @@ check_sig_record( KBNODE keyblock, KBNODE signode,
sigflag |= SIGF_CHECKED;
if( revocation ) {
sigflag |= SIGF_REVOKED;
- /**mod_down = 1;*/
+ *mod_down = 1;
}
}
}
@@ -1168,7 +1210,8 @@ check_sig_record( KBNODE keyblock, KBNODE signode,
*/
static ulong
make_sig_records( KBNODE keyblock, KBNODE uidnode,
- ulong lid, u32 *mainkid, u32 *min_expire )
+ ulong lid, u32 *mainkid, u32 *min_expire,
+ int *mod_down, int *mod_up )
{
TRUSTREC *srecs, **s_end, *s=NULL, *s2;
KBNODE node;
@@ -1218,7 +1261,8 @@ make_sig_records( KBNODE keyblock, KBNODE uidnode,
s->r.sig.sig[sigidx].lid = siglid;
s->r.sig.sig[sigidx].flag= check_sig_record( keyblock, node,
siglid, sigidx,
- mainkid, lid, &expire );
+ mainkid, lid, &expire,
+ mod_down, mod_up );
sigidx++;
if( sigidx == SIGS_PER_RECORD ) {
@@ -1319,7 +1363,8 @@ make_pref_record( PKT_signature *sig, ulong lid )
static ulong
-make_uid_records( KBNODE keyblock, ulong lid, u32 *keyid, u32 *min_expire )
+make_uid_records( KBNODE keyblock, ulong lid, u32 *keyid, u32 *min_expire,
+ int *mod_down, int *mod_up )
{
TRUSTREC *urecs, **uend, *u, *u2;
KBNODE node;
@@ -1351,9 +1396,21 @@ make_uid_records( KBNODE keyblock, ulong lid, u32 *keyid, u32 *min_expire )
&& (u->r.uid.uidflags & UIDF_VALID) ) {
u->r.uid.prefrec = bestsig? make_pref_record( bestsig, lid ) : 0;
}
+
+ /* the next test is really bad because we should modify
+ * out modification timestamps only if we really have a change.
+ * But becuase we are deleting the uid records first it is somewhat
+ * difficult to track those changes. fixme */
+ if( !( u->r.uid.uidflags & UIDF_VALID )
+ || ( u->r.uid.uidflags & UIDF_REVOKED ) )
+ *mod_down=1;
+ else
+ *mod_up=1;
+
/* create the list of signatures */
u->r.uid.siglist = make_sig_records( keyblock, node,
- lid, keyid, min_expire );
+ lid, keyid, min_expire,
+ mod_down, mod_up );
}
uidrecno = urecs? urecs->recnum : 0;
@@ -1380,6 +1437,8 @@ update_trust_record( KBNODE keyblock, int recheck, int *modified )
TRUSTREC drec;
int rc;
+ /* NOTE: We don't need recheck anymore, but this might chnage again in
+ * the future */
if( opt.dry_run )
return 0;
if( modified )
@@ -1390,24 +1449,25 @@ update_trust_record( KBNODE keyblock, int recheck, int *modified )
if( rc )
return rc;
- rc = do_update_trust_record( keyblock, &drec, recheck, modified );
+ rc = do_update_trust_record( keyblock, &drec, 0, modified );
return rc;
}
/****************
- * Same as update_trust_record, but tghis functions expects the dir record.
- * On exit the dirrecord will reflect any changes made.
+ * Same as update_trust_record, but this functions expects the dir record.
+ * On exit the dir record will reflect any changes made.
+ * With sigs_only set only foreign key signatures are checked.
*/
static int
do_update_trust_record( KBNODE keyblock, TRUSTREC *drec,
- int recheck, int *modified )
+ int sigs_only, int *modified )
{
PKT_public_key *primary_pk;
TRUSTREC krec, urec, prec, helprec;
int i, rc = 0;
u32 keyid[2]; /* keyid of primary key */
-/* int mod_up = 0;
- int mod_down = 0; */
+ int mod_up = 0;
+ int mod_down = 0;
ulong recno, r2;
u32 expire;
@@ -1424,7 +1484,7 @@ do_update_trust_record( KBNODE keyblock, TRUSTREC *drec,
if( rc )
return rc;
- /* delete the old stuff */
+ /* delete the old stuff FIXME: implementend sigs_only */
for( recno=drec->r.dir.keylist; recno; recno = krec.r.key.next ) {
read_record( recno, &krec, RECTYPE_KEY );
delete_record( recno );
@@ -1447,22 +1507,13 @@ do_update_trust_record( KBNODE keyblock, TRUSTREC *drec,
/* insert new stuff */
drec->r.dir.dirflags &= ~DIRF_REVOKED;
+ drec->r.dir.dirflags &= ~DIRF_NEWKEYS;
drec->r.dir.keylist = make_key_records( keyblock, drec->recnum, keyid, &i );
if( i ) /* primary key has been revoked */
- drec->r.dir.dirflags &= DIRF_REVOKED;
+ drec->r.dir.dirflags |= DIRF_REVOKED;
expire = 0;
drec->r.dir.uidlist = make_uid_records( keyblock, drec->recnum, keyid,
- &expire );
- #if 0
- if( orig_uidflags != urec.r.uid.uidflags ) {
- write_record( &urec );
- if( !( urec.r.uid.uidflags & UIDF_VALID )
- || ( urec.r.uid.uidflags & UIDF_REVOKED ) )
- *mod_down=1;
- else
- *mod_up=1; /*(maybe a new user id)*/
- #endif
-
+ &expire, &mod_down, &mod_up );
if( rc )
rc = tdbio_cancel_transaction();
else {
@@ -1472,7 +1523,7 @@ do_update_trust_record( KBNODE keyblock, TRUSTREC *drec,
drec->r.dir.valcheck = 0;
drec->r.dir.checkat = expire;
write_record( drec );
- /*tdbio_write_modify_stamp( mod_up, mod_down );*/
+ tdbio_write_modify_stamp( mod_up, mod_down );
rc = tdbio_end_transaction();
}
return rc;
@@ -1537,16 +1588,28 @@ insert_trust_record( KBNODE keyblock )
}
}
+
/* mark tdb as modified upwards */
tdbio_write_modify_stamp( 1, 0 );
/* and put all the other stuff into the keydb */
- rc = do_update_trust_record( keyblock, &dirrec, 1, NULL );
+ rc = do_update_trust_record( keyblock, &dirrec, 0, NULL );
do_sync();
+
+ /* keep track of new keys */
+ if( !fresh_imported_keys )
+ fresh_imported_keys = new_lid_table();
+ ins_lid_table_item( fresh_imported_keys, pk->local_id, 0 );
+ if( ++fresh_imported_keys_count > FRESH_KEY_CHECK_THRESHOLD )
+ mark_fresh_keys();
+
return rc;
}
+
+
+
/****************
* Insert a trust record indentified by a PK into the TrustDB
*/
@@ -1584,7 +1647,7 @@ insert_trust_record_by_pk( PKT_public_key *pk )
* Currently we only do an update_trust_record.
*/
static int
-check_trust_record( TRUSTREC *drec )
+check_trust_record( TRUSTREC *drec, int sigs_only )
{
KBNODE keyblock;
int modified, rc;
@@ -1596,7 +1659,7 @@ check_trust_record( TRUSTREC *drec )
return rc;
}
- rc = do_update_trust_record( keyblock, drec, 0, &modified );
+ rc = do_update_trust_record( keyblock, drec, sigs_only, &modified );
release_kbnode( keyblock );
return rc;
@@ -1673,7 +1736,7 @@ update_trustdb()
/****************
- * Do all required check in the trustdb. This function walks over all
+ * Do all required checks in the trustdb. This function walks over all
* records in the trustdb and does scheduled processing.
*/
void
@@ -1681,7 +1744,7 @@ check_trustdb( const char *username )
{
TRUSTREC rec;
ulong recnum;
- ulong count=0, upd_count=0, err_count=0, skip_count=0;
+ ulong count=0, upd_count=0, err_count=0, skip_count=0, sigonly_count=0;
ulong current_time = make_timestamp();
if( username )
@@ -1690,15 +1753,25 @@ check_trustdb( const char *username )
init_trustdb();
for(recnum=0; !tdbio_read_record( recnum, &rec, 0); recnum++ ) {
+ int sigs_only;
+
if( rec.rectype != RECTYPE_DIR )
continue; /* we only want the dir records */
if( count && !(count % 100) && !opt.quiet )
log_info(_("%lu keys so far processed\n"), count);
count++;
- if( !rec.r.dir.checkat || rec.r.dir.checkat > current_time ) {
- skip_count++;
- continue; /* not scheduled for checking */
+ sigs_only = 0;
+
+ if( !(rec.r.dir.dirflags & DIRF_CHECKED) )
+ ;
+ else if( !rec.r.dir.checkat || rec.r.dir.checkat > current_time ) {
+ if( !(rec.r.dir.dirflags & DIRF_NEWKEYS) ) {
+ skip_count++;
+ continue; /* not scheduled for checking */
+ }
+ sigs_only = 1; /* new public keys - check them */
+ sigonly_count++;
}
if( !rec.r.dir.keylist ) {
@@ -1707,11 +1780,12 @@ check_trustdb( const char *username )
continue;
}
- check_trust_record( &rec );
-
+ check_trust_record( &rec, sigs_only );
}
log_info(_("%lu keys processed\n"), count);
+ if( sigonly_count )
+ log_info(_("\t%lu due to new pubkeys\n"), sigonly_count);
if( skip_count )
log_info(_("\t%lu keys skipped\n"), skip_count);
if( err_count )
@@ -1772,7 +1846,9 @@ build_cert_tree( ulong lid, int depth, int max_depth, TN helproot )
}
if( dirrec.r.dir.checkat && dirrec.r.dir.checkat <= make_timestamp() )
- check_trust_record( &dirrec );
+ check_trust_record( &dirrec, 0 );
+ else if( (dirrec.r.dir.dirflags & DIRF_NEWKEYS) )
+ check_trust_record( &dirrec, 1 );
keynode->n.k.ownertrust = dirrec.r.dir.ownertrust & TRUST_MASK;
@@ -2074,6 +2150,7 @@ do_check( TRUSTREC *dr, unsigned *validity,
}
else if( !add_fnc
&& tdbio_db_matches_options()
+ /* FIXME, TODO: This comparision is WRONG ! */
&& dr->r.dir.valcheck
> tdbio_read_modify_stamp( (dr->r.dir.validity < TRUST_FULLY) )
&& dr->r.dir.validity )
@@ -2241,8 +2318,13 @@ check_trust( PKT_public_key *pk, unsigned *r_trustlevel,
(ulong)keyid[1], pk->local_id );
return G10ERR_TIME_CONFLICT;
}
- if( rec.r.dir.checkat && rec.r.dir.checkat <= cur_time )
- check_trust_record( &rec );
+
+ if( !(rec.r.dir.dirflags & DIRF_CHECKED) )
+ check_trust_record( &rec, 0 );
+ else if( rec.r.dir.checkat && rec.r.dir.checkat <= cur_time )
+ check_trust_record( &rec, 0 );
+ else if( (rec.r.dir.dirflags & DIRF_NEWKEYS) )
+ check_trust_record( &rec, 1 );
if( pk->expiredate && pk->expiredate <= cur_time ) {
log_info(_("key %08lX.%lu: expired at %s\n"),
@@ -2298,6 +2380,51 @@ check_trust( PKT_public_key *pk, unsigned *r_trustlevel,
}
+/****************
+ * scan the whole trustdb and mark all signature records whose keys
+ * are freshly imported.
+ */
+static void
+mark_fresh_keys()
+{
+ TRUSTREC dirrec, rec;
+ ulong recnum, lid;
+ int i;
+
+ memset( &dirrec, 0, sizeof dirrec );
+
+ for(recnum=0; !tdbio_read_record( recnum, &rec, 0); recnum++ ) {
+ if( rec.rectype != RECTYPE_SIG )
+ continue;
+ /* if we have already have the dir record, we can check it now */
+ if( dirrec.recnum == rec.r.sig.lid
+ && (dirrec.r.dir.dirflags & DIRF_NEWKEYS) )
+ continue; /* flag is already set */
+
+ for(i=0; i < SIGS_PER_RECORD; i++ ) {
+ if( !(lid=rec.r.sig.sig[i].lid) )
+ continue; /* skip deleted sigs */
+ if( !(rec.r.sig.sig[i].flag & SIGF_CHECKED) )
+ continue; /* skip checked signatures */
+ if( qry_lid_table_flag( fresh_imported_keys, lid, NULL ) )
+ continue; /* not in the list of new keys */
+ read_record( rec.r.sig.lid, &dirrec, RECTYPE_DIR );
+ if( !(dirrec.r.dir.dirflags & DIRF_NEWKEYS) ) {
+ dirrec.r.dir.dirflags |= DIRF_NEWKEYS;
+ write_record( &dirrec );
+ }
+ break;
+ }
+ }
+
+ do_sync();
+
+ clear_lid_table( fresh_imported_keys );
+ fresh_imported_keys_count = 0;
+}
+
+
+
int
query_trust_info( PKT_public_key *pk, const byte *namehash )
{
diff --git a/g10/trustdb.h b/g10/trustdb.h
index 6396fde45..dc1e3d0c4 100644
--- a/g10/trustdb.h
+++ b/g10/trustdb.h
@@ -49,6 +49,7 @@ void check_trustdb( const char *username );
void update_trustdb( void );
int setup_trustdb( int level, const char *dbname );
void init_trustdb( void );
+void sync_trustdb( void );
int check_trust( PKT_public_key *pk, unsigned *r_trustlevel,
const byte* nh, int (*add_fnc)(ulong), unsigned *retflgs );
int query_trust_info( PKT_public_key *pk, const byte *nh );
diff --git a/include/ChangeLog b/include/ChangeLog
index e5c86ce85..de2d894ca 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+Mon Oct 4 21:23:04 CEST 1999 Werner Koch <[email protected]>
+
+ * errors.h (G10ERR_NOT_PROCESSED): New.
+
Wed Sep 15 16:22:17 CEST 1999 Werner Koch <[email protected]>
diff --git a/include/errors.h b/include/errors.h
index 247951271..11c97425f 100644
--- a/include/errors.h
+++ b/include/errors.h
@@ -71,6 +71,7 @@
#define G10ERR_UNKNOWN_HOST 49
#define G10ERR_SELFTEST_FAILED 50
#define G10ERR_NOT_ENCRYPTED 51
+#define G10ERR_NOT_PROCESSED 52
#ifndef HAVE_STRERROR
char *strerror( int n );
diff --git a/po/ChangeLog b/po/ChangeLog
index 1123807e1..183bc91f0 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,7 @@
+Mon Oct 4 21:23:04 CEST 1999 Werner Koch <[email protected]>
+
+ * pl.po: New version by Alex.
+
Thu Sep 23 06:26:28 1999 Werner Koch ([email protected])
* fr.po: Updated by Ga�l.
diff --git a/po/pl.po b/po/pl.po
index beb9df26c..efa616a59 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,9 +6,9 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: gnupg-0.9.11\n"
-"POT-Creation-Date: 1999-09-23 08:53+0200\n"
-"PO-Revision-Date: 1999-09-07 10:59+02:00\n"
+"Project-Id-Version: gnupg-1.0.0\n"
+"POT-Creation-Date: 1999-09-05 19:21+0200\n"
+"PO-Revision-Date: 1999-10-02 21:35+02:00\n"
"Last-Translator: Janusz A. Urbanowicz <[email protected]>\n"
"Language-Team: Polish <[email protected]>\n"
"MIME-Version: 1.0\n"
@@ -27,11 +27,11 @@ msgstr ""
msgid "Warning: using insecure memory!\n"
msgstr "Ostrze�enie: u�ywana pami�� nie jest pami�ci� bezpieczn�!\n"
-#: util/secmem.c:281
+#: util/secmem.c:275
msgid "operation is not possible without initialized secure memory\n"
msgstr "operacja niemo�liwa do wykonania bez dost�pnej pami�ci bezpiecznej\n"
-#: util/secmem.c:282
+#: util/secmem.c:276
msgid "(you may have used the wrong program for this task)\n"
msgstr "(prawdopodobnie u�ywany program jest niew�a�ciwy dlatego zadania)\n"
@@ -101,7 +101,7 @@ msgstr "niepoprawne wyra�enie przej�ciowe"
#: util/errors.c:64
msgid "public key not found"
-msgstr "klucz publiczny nie odnaleziony"
+msgstr "nie odnaleziono klucza publicznego"
#: util/errors.c:65
msgid "unknown cipher algorithm"
@@ -125,19 +125,19 @@ msgstr "brak takiego identyfikatora u�ytkownika."
#: util/errors.c:70
msgid "secret key not available"
-msgstr "klucz tajny jest niedost�pny"
+msgstr "klucz tajny nie jest dost�pny"
#: util/errors.c:71
msgid "wrong secret key used"
-msgstr "zosta� u�yty niew�a�ciwy klucz tajny"
+msgstr "u�yty zosta� niew�a�ciwy klucz tajny"
#: util/errors.c:72
msgid "not supported"
-msgstr "nie jet obs�ugiwany"
+msgstr "nie jest obs�ugiwany"
#: util/errors.c:73
msgid "bad key"
-msgstr "klucz niepoprawny"
+msgstr "niepoprawny klucz"
#: util/errors.c:74
msgid "file read error"
@@ -213,7 +213,7 @@ msgstr "b��d przy usuwaniu pliku"
#: util/errors.c:92
msgid "unexpected data"
-msgstr "nieoczekiowane dane"
+msgstr "nieoczekiwane dane"
#: util/errors.c:93
msgid "timestamp conflict"
@@ -241,7 +241,7 @@ msgstr "niepoprawny URI"
#: util/errors.c:99
msgid "unsupported URI"
-msgstr "URI typu nie obs�ugiwanego"
+msgstr "URI nie obs�ugiwanego typu"
#: util/errors.c:100
msgid "network error"
@@ -249,7 +249,7 @@ msgstr "b��d sieci"
#: util/errors.c:102
msgid "not encrypted"
-msgstr "nie zaszyfrowany"
+msgstr "nie jest zaszyfrowany"
#: util/logger.c:218
#, c-format
@@ -293,7 +293,7 @@ msgstr ""
"Prosz� kontynuowa� inne dzia�ania aby system m�g� zebra� odpowiedni�\n"
"ilo�� entropii do ich wygenerowania (brakuje %d bajt�w).\n"
-#: g10/g10.c:187
+#: g10/g10.c:185
msgid ""
"@Commands:\n"
" "
@@ -301,135 +301,135 @@ msgstr ""
"@Polecenia:\n"
" "
-#: g10/g10.c:189
+#: g10/g10.c:187
msgid "|[file]|make a signature"
msgstr "|[plik]|z�o�enie podpisu"
-#: g10/g10.c:190
+#: g10/g10.c:188
msgid "|[file]|make a clear text signature"
msgstr "|[plik]|z�o�enie podpisu na czytelnym dokumencie"
-#: g10/g10.c:191
+#: g10/g10.c:189
msgid "make a detached signature"
msgstr "sporz�dzenie podpisu oddzielonego od dokumentu"
-#: g10/g10.c:192
+#: g10/g10.c:190
msgid "encrypt data"
msgstr "szyfrowanie danych"
-#: g10/g10.c:193
+#: g10/g10.c:191
msgid "encryption only with symmetric cipher"
msgstr "szyfrowanie tylko szyfrem symetrycznym"
-#: g10/g10.c:194
+#: g10/g10.c:192
msgid "store only"
-msgstr "tylko zapis"
+msgstr "tylko zapis do pliku"
-#: g10/g10.c:195
+#: g10/g10.c:193
msgid "decrypt data (default)"
msgstr "odszyfrowywanie danych (domy�lnie)"
-#: g10/g10.c:196
+#: g10/g10.c:194
msgid "verify a signature"
msgstr "sprawdzenie podpisu"
-#: g10/g10.c:198
+#: g10/g10.c:195
msgid "list keys"
msgstr "lista kluczy"
-#: g10/g10.c:200
+#: g10/g10.c:197
msgid "list keys and signatures"
msgstr "lista kluczy i podpis�w"
-#: g10/g10.c:201
+#: g10/g10.c:198
msgid "check key signatures"
msgstr "sprawdzenie podpis�w kluczy"
-#: g10/g10.c:202
+#: g10/g10.c:199
msgid "list keys and fingerprints"
msgstr "lista kluczy i ich odcisk�w"
-#: g10/g10.c:203
+#: g10/g10.c:200
msgid "list secret keys"
msgstr "lista kluczy tajnych"
-#: g10/g10.c:204
+#: g10/g10.c:201
msgid "generate a new key pair"
msgstr "generacja nowej pary klucza"
-#: g10/g10.c:205
+#: g10/g10.c:202
msgid "remove key from the public keyring"
msgstr "usuni�cie klucza ze zbioru kluczy publicznych"
-#: g10/g10.c:206
+#: g10/g10.c:203
msgid "sign a key"
msgstr "z�o�enie podpisu na kluczu"
-#: g10/g10.c:207
+#: g10/g10.c:204
msgid "sign a key locally"
msgstr "z�o�enie lokalnego podpisu na kluczu"
-#: g10/g10.c:208
+#: g10/g10.c:205
msgid "sign or edit a key"
msgstr "podpisanie lub modyfikacja klucza"
-#: g10/g10.c:209
+#: g10/g10.c:206
msgid "generate a revocation certificate"
-msgstr "generacja certyfikatu uniewa�nienia klucza"
+msgstr "tworzenie certyfikatu uniewa�nienia klucza"
-#: g10/g10.c:210
+#: g10/g10.c:207
msgid "export keys"
msgstr "eksport kluczy do pliku"
-#: g10/g10.c:211
+#: g10/g10.c:208
msgid "export keys to a key server"
msgstr "eksport kluczy do serwera kluczy"
-#: g10/g10.c:212
+#: g10/g10.c:209
msgid "import keys from a key server"
msgstr "import kluczy z serwera kluczy"
-#: g10/g10.c:215
+#: g10/g10.c:212
msgid "import/merge keys"
-msgstr "import/do��czenie kluczy"
+msgstr "import/do��czanie kluczy"
-#: g10/g10.c:217
+#: g10/g10.c:214
msgid "list only the sequence of packets"
msgstr "wypisane sekwencji pakiet�w"
-#: g10/g10.c:219
+#: g10/g10.c:216
msgid "export the ownertrust values"
msgstr "eksport warto�ci zaufania"
-#: g10/g10.c:221
+#: g10/g10.c:218
msgid "import ownertrust values"
msgstr "wczytanie warto��i zaufania"
-#: g10/g10.c:223
+#: g10/g10.c:220
msgid "update the trust database"
msgstr "uaktualnienie bazy zaufania"
-#: g10/g10.c:225
+#: g10/g10.c:222
msgid "|[NAMES]|check the trust database"
msgstr "|[NAZWY]|sprawdzenie bazy zaufania"
-#: g10/g10.c:226
+#: g10/g10.c:223
msgid "fix a corrupted trust database"
-msgstr "naprawa uszkodzonej Bazy Zaufania"
+msgstr "naprawa uszkodzonej bazy zaufania"
-#: g10/g10.c:227
+#: g10/g10.c:224
msgid "De-Armor a file or stdin"
msgstr "zdj�cie opakowania ASCII pliku lub potoku"
-#: g10/g10.c:229
+#: g10/g10.c:225
msgid "En-Armor a file or stdin"
msgstr "opakowanie ASCII pliku lub potoku"
-#: g10/g10.c:231
+#: g10/g10.c:226
msgid "|algo [files]|print message digests"
msgstr "|algo [pliki]|skr�ty wiadomo�ci"
-#: g10/g10.c:235
+#: g10/g10.c:230
msgid ""
"@\n"
"Options:\n"
@@ -439,168 +439,168 @@ msgstr ""
"Opcje:\n"
" "
-#: g10/g10.c:237
+#: g10/g10.c:232
msgid "create ascii armored output"
-msgstr "plik wynikowy w opakowaniu ASCII"
+msgstr "plik wynikowy b�dzie w opakowaniu ASCII"
-#: g10/g10.c:239
+#: g10/g10.c:233
msgid "|NAME|encrypt for NAME"
-msgstr "|NAZWA|szyfrowanie dla odbiorcy NAZWA"
+msgstr "|NAZWA|szyfrowanie dla adresata NAZWA"
-#: g10/g10.c:242
+#: g10/g10.c:236
msgid "|NAME|use NAME as default recipient"
msgstr "|NAZWA|u�ycie NAZWA jako domy�lnego adresata"
-#: g10/g10.c:244
+#: g10/g10.c:238
msgid "use the default key as default recipient"
msgstr "domy�lny klucz jest domy�lnym adresatem"
-#: g10/g10.c:248
+#: g10/g10.c:242
msgid "use this user-id to sign or decrypt"
msgstr "identyfikator do podpisania lub odszyfrowania"
-#: g10/g10.c:249
+#: g10/g10.c:243
msgid "|N|set compress level N (0 disables)"
msgstr "|N|poziom kompresji N (0 - brak)"
-#: g10/g10.c:251
+#: g10/g10.c:245
msgid "use canonical text mode"
msgstr "kanoniczny format tekstowy"
-#: g10/g10.c:252
+#: g10/g10.c:246
msgid "use as output file"
msgstr "plik wyj�ciowy"
-#: g10/g10.c:253
+#: g10/g10.c:247
msgid "verbose"
msgstr "z informacjami dodatkowymi"
-#: g10/g10.c:254
+#: g10/g10.c:248
msgid "be somewhat more quiet"
msgstr "mniej komunikat�ww"
-#: g10/g10.c:255
+#: g10/g10.c:249
msgid "don't use the terminal at all"
msgstr "bez odwo�a� do terminala"
-#: g10/g10.c:256
+#: g10/g10.c:250
msgid "force v3 signatures"
msgstr "wymuszenie trzeciej wersji formatu podpis�w"
-#: g10/g10.c:257
+#: g10/g10.c:251
msgid "always use a MDC for encryption"
msgstr "do szyfrowania b�dzie u�ywany MDC"
-#: g10/g10.c:258
+#: g10/g10.c:252
msgid "do not make any changes"
msgstr "pozostawienie bez zmian"
#. { oInteractive, "interactive", 0, N_("prompt before overwriting") },
-#: g10/g10.c:260
+#: g10/g10.c:254
msgid "batch mode: never ask"
msgstr "tryb wsadowy: �adnych pyta�"
-#: g10/g10.c:261
+#: g10/g10.c:255
msgid "assume yes on most questions"
msgstr "automatyczna odpowied� tak na wi�kszo�� pyta�"
-#: g10/g10.c:262
+#: g10/g10.c:256
msgid "assume no on most questions"
msgstr "automatyczna odpowied� nie na wi�kszo�� pyta�"
-#: g10/g10.c:263
+#: g10/g10.c:257
msgid "add this keyring to the list of keyrings"
msgstr "doda� zbi�r kluczy do listy u�ywanych"
-#: g10/g10.c:264
+#: g10/g10.c:258
msgid "add this secret keyring to the list"
msgstr "doda� zbi�r kluczy tajnych do listy"
-#: g10/g10.c:265
+#: g10/g10.c:259
msgid "|NAME|use NAME as default secret key"
msgstr "|NAZWA|u�ycie NAZWA jako domy�lnego klucza tajnego"
-#: g10/g10.c:266
+#: g10/g10.c:260
msgid "|HOST|use this keyserver to lookup keys"
msgstr "|HOST|serwer kluczy w kt�rym b�d� poszukiwane"
-#: g10/g10.c:267
+#: g10/g10.c:261
msgid "|NAME|set terminal charset to NAME"
msgstr "|NAZWA|zestaw znak�w terminala NAZWA"
-#: g10/g10.c:268
+#: g10/g10.c:262
msgid "read options from file"
msgstr "wczytanie opcji z pliku"
-#: g10/g10.c:270
+#: g10/g10.c:264
msgid "set debugging flags"
msgstr "ustawienie opcji �ledzenia wykonania programu"
-#: g10/g10.c:271
+#: g10/g10.c:265
msgid "enable full debugging"
-msgstr "umo�liwienie pe�nego �ledzenia programu"
+msgstr "w��czenie pe�nego �ledzenia programu"
-#: g10/g10.c:272
+#: g10/g10.c:266
msgid "|FD|write status info to this FD"
msgstr "|FD|zapisa� opis stanu do FD"
-#: g10/g10.c:273
+#: g10/g10.c:267
msgid "do not write comment packets"
msgstr "nie zapisywa� pakiet�w z komentarzem"
-#: g10/g10.c:274
+#: g10/g10.c:268
msgid "(default is 1)"
msgstr "(domy�lnie 1)"
-#: g10/g10.c:275
+#: g10/g10.c:269
msgid "(default is 3)"
msgstr "(domy�lnie 3)"
-#: g10/g10.c:277
+#: g10/g10.c:271
msgid "|FILE|load extension module FILE"
msgstr "|PLIK|�adowanie modu�u rozszerzenia z PLIK"
-#: g10/g10.c:278
+#: g10/g10.c:272
msgid "emulate the mode described in RFC1991"
msgstr "emulacja trybu opisanego w RFC1991"
-#: g10/g10.c:279
+#: g10/g10.c:273
msgid "set all packet, cipher and digest options to OpenPGP behavior"
msgstr "zgodno�� ustawie� pakiet�w, szyfr�w i skr�t�w z OpenPGP"
-#: g10/g10.c:280
+#: g10/g10.c:274
msgid "|N|use passphrase mode N"
msgstr "|N|N-ty tryb wprowadzania wyra�enia przej�ciowego"
-#: g10/g10.c:282
+#: g10/g10.c:276
msgid "|NAME|use message digest algorithm NAME for passphrases"
msgstr "|ALG|algorytm obliczania skr�t�w wiadomo�ci ALG"
-#: g10/g10.c:284
+#: g10/g10.c:278
msgid "|NAME|use cipher algorithm NAME for passphrases"
msgstr "|ALG|algorytmu szyfruj�cy ALG dla has�a"
-#: g10/g10.c:285
+#: g10/g10.c:279
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NAZWA|algorytm szyfruj�cy NAZWA"
-#: g10/g10.c:286
+#: g10/g10.c:280
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NAZWA|algorytm obliczania skr�t�w wiadomo�ci NAZWA"
-#: g10/g10.c:287
+#: g10/g10.c:281
msgid "|N|use compress algorithm N"
msgstr "|N|algorytm kompresji N"
-#: g10/g10.c:288
+#: g10/g10.c:282
msgid "throw keyid field of encrypted packets"
msgstr "usuni�cie identyfikator�w kluczy z pakiet�w"
-#: g10/g10.c:289
+#: g10/g10.c:283
msgid "|NAME=VALUE|use this notation data"
msgstr "|NAZWA=TRE��|adnotacje"
-#: g10/g10.c:291
+#: g10/g10.c:285
msgid ""
"@\n"
"Examples:\n"
@@ -621,15 +621,15 @@ msgstr ""
" --list-keys [nazwy] pokazuje klucze\n"
" --fingerprint [nazwy] pokazuje odciski kluczy\n"
-#: g10/g10.c:378
+#: g10/g10.c:370
msgid "Please report bugs to <[email protected]>.\n"
msgstr "B��dy prosimy zg�asza� na adres <[email protected]>.\n"
-#: g10/g10.c:382
+#: g10/g10.c:374
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Wywo�anie: gpg [opcje] [pliki] (-h podaje pomoc)"
-#: g10/g10.c:385
+#: g10/g10.c:377
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -639,7 +639,7 @@ msgstr ""
"podpisywanie, sprawdzanie podpis�w, szyfrowanie, deszyfrowanie\n"
"domy�lnie wykonywana operacja zale�y od danych wej�ciowych\n"
-#: g10/g10.c:390
+#: g10/g10.c:382
msgid ""
"\n"
"Supported algorithms:\n"
@@ -647,182 +647,182 @@ msgstr ""
"\n"
"Obs�ugiwane algorytmy:\n"
-#: g10/g10.c:468
+#: g10/g10.c:456
msgid "usage: gpg [options] "
msgstr "wywo�anie: gpg [opcje]"
-#: g10/g10.c:521
+#: g10/g10.c:509
msgid "conflicting commands\n"
msgstr "sprzeczne polecenia\n"
-#: g10/g10.c:656
+#: g10/g10.c:644
#, c-format
msgid "NOTE: no default option file `%s'\n"
msgstr "UWAGA: brak domy�lnego pliku opcji '%s'\n"
-#: g10/g10.c:660
+#: g10/g10.c:648
#, c-format
msgid "option file `%s': %s\n"
msgstr "plik opcji '%s': %s\n"
-#: g10/g10.c:667
+#: g10/g10.c:655
#, c-format
msgid "reading options from `%s'\n"
msgstr "odczyt opcji z '%s'\n"
-#: g10/g10.c:848
+#: g10/g10.c:835
#, c-format
msgid "%s is not a valid character set\n"
msgstr "%s nie jest poprawn� nazw� zestawu znak�w\n"
-#: g10/g10.c:912 g10/g10.c:921
+#: g10/g10.c:892 g10/g10.c:901
#, c-format
msgid "NOTE: %s is not for normal use!\n"
msgstr "UWAGA: %s nie jest do normalnego u�ytku!\n"
-#: g10/g10.c:914
+#: g10/g10.c:894
#, c-format
msgid "%s not allowed with %s!\n"
msgstr "%s jest niedozwolony z %s!\n"
-#: g10/g10.c:917
+#: g10/g10.c:897
#, c-format
msgid "%s makes no sense with %s!\n"
msgstr "%s nie ma sensu z %s!\n"
-#: g10/g10.c:936 g10/g10.c:948
+#: g10/g10.c:916 g10/g10.c:928
msgid "selected cipher algorithm is invalid\n"
msgstr "wybrany algorytm szyfruj�cy jest niepoprawny\n"
-#: g10/g10.c:942 g10/g10.c:954
+#: g10/g10.c:922 g10/g10.c:934
msgid "selected digest algorithm is invalid\n"
msgstr "wybrany algorytm geenracji skr�t�w wiadomo�ci jest niepoprawny\n"
-#: g10/g10.c:958
+#: g10/g10.c:938
msgid "the given policy URL is invalid\n"
msgstr "podany URL regulaminu jest niepoprawny\n"
-#: g10/g10.c:961
+#: g10/g10.c:941
#, c-format
msgid "compress algorithm must be in range %d..%d\n"
msgstr "ustawienie algortytmu kompresji musi pochodzi� z zakresu %d..%d\n"
-#: g10/g10.c:963
+#: g10/g10.c:943
msgid "completes-needed must be greater than 0\n"
msgstr "warto�� completes-needed musi by� wi�ksza od 0\n"
-#: g10/g10.c:965
+#: g10/g10.c:945
msgid "marginals-needed must be greater than 1\n"
msgstr "warto�� marginals-needed musi by� wi�ksza od 1\n"
-#: g10/g10.c:967
+#: g10/g10.c:947
msgid "max-cert-depth must be in range 1 to 255\n"
msgstr "warto�� max-cert-depth musi mie�ci� si� w zakresie od 1 do 255\n"
-#: g10/g10.c:970
+#: g10/g10.c:950
msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
msgstr "UWAGA: prosty tryb S2K (0) jest stanowczo odradzany\n"
-#: g10/g10.c:974
+#: g10/g10.c:954
msgid "invalid S2K mode; must be 0, 1 or 3\n"
msgstr "niepoprawny tryb S2K; musi mie� warto�� 0, 1 lub 3\n"
-#: g10/g10.c:1051
+#: g10/g10.c:1031
#, c-format
msgid "failed to initialize the TrustDB: %s\n"
msgstr "inicjowanie Bazy Zaufania nie powiod�o si�: %s\n"
-#: g10/g10.c:1057
+#: g10/g10.c:1037
msgid "--store [filename]"
msgstr "--store [plik]"
-#: g10/g10.c:1064
+#: g10/g10.c:1044
msgid "--symmetric [filename]"
msgstr "--symmetric [plik]"
-#: g10/g10.c:1072
+#: g10/g10.c:1052
msgid "--encrypt [filename]"
msgstr "--encrypt [plik]"
-#: g10/g10.c:1085
+#: g10/g10.c:1065
msgid "--sign [filename]"
msgstr "--sign [plik]"
-#: g10/g10.c:1098
+#: g10/g10.c:1078
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [plik]"
-#: g10/g10.c:1112
+#: g10/g10.c:1092
msgid "--clearsign [filename]"
-msgstr "--clearsign [plik]\""
+msgstr "--clearsign [plik]"
-#: g10/g10.c:1129
+#: g10/g10.c:1104
msgid "--decrypt [filename]"
msgstr "--decrypt [plik]"
-#: g10/g10.c:1137
+#: g10/g10.c:1112
msgid "--sign-key user-id"
msgstr "--sign-key nazwa u�ytkownika"
-#: g10/g10.c:1145
+#: g10/g10.c:1120
msgid "--lsign-key user-id"
msgstr "--lsign-key nazwa u�ytkownika"
-#: g10/g10.c:1153
+#: g10/g10.c:1128
msgid "--edit-key user-id [commands]"
msgstr "--edit-key nazwa u�ytkownika [polecenia]"
-#: g10/g10.c:1169
+#: g10/g10.c:1144
msgid "--delete-secret-key user-id"
msgstr "--delete-secret-key nazwa u�ytkownika"
-#: g10/g10.c:1172
+#: g10/g10.c:1147
msgid "--delete-key user-id"
msgstr "--delete-key nazwa u�ytkownika"
-#: g10/encode.c:259 g10/g10.c:1196 g10/sign.c:366
+#: g10/encode.c:259 g10/g10.c:1171 g10/sign.c:366
#, c-format
msgid "can't open %s: %s\n"
msgstr "nie mo�na otworzy� %s: %s\n"
-#: g10/g10.c:1207
+#: g10/g10.c:1182
msgid "-k[v][v][v][c] [user-id] [keyring]"
msgstr "-k[v][v][v][c] [identyfikator] [zbi�r kluczy]"
-#: g10/g10.c:1268
+#: g10/g10.c:1243
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "usuni�cie opakowania ASCII nie powiod�o si�: %s\n"
-#: g10/g10.c:1276
+#: g10/g10.c:1251
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "opakowywanie ASCII nie powiod�o si�: %s\n"
-#: g10/g10.c:1344
+#: g10/g10.c:1319
#, c-format
msgid "invalid hash algorithm `%s'\n"
msgstr "niew�a�ciwy algorytm skr�tu '%s'\n"
-#: g10/g10.c:1425
+#: g10/g10.c:1400
msgid "[filename]"
msgstr "[nazwa pliku]"
-#: g10/g10.c:1429
+#: g10/g10.c:1404
msgid "Go ahead and type your message ...\n"
msgstr "Wpisz tutaj swoj� wiadomo�� ...\n"
-#: g10/decrypt.c:59 g10/g10.c:1432 g10/verify.c:67 g10/verify.c:109
+#: g10/decrypt.c:59 g10/g10.c:1407 g10/verify.c:66
#, c-format
msgid "can't open `%s'\n"
msgstr "nie mo�na otworzy� '%s'\n"
-#: g10/g10.c:1601
+#: g10/g10.c:1576
msgid ""
"the first character of a notation name must be a letter or an underscore\n"
-msgstr "adnotacja musi zaczyna� si� od podkre�lenia lub litery\n"
+msgstr "adnotacja musi zaczyna� si� od litery lub podkre�lenia\n"
-#: g10/g10.c:1607
+#: g10/g10.c:1582
msgid ""
"a notation name must have only letters, digits, dots or underscores and end "
"with an '='\n"
@@ -830,11 +830,11 @@ msgstr ""
"nazwa adnotacji mo�e zawiera� tylko litery, cyfry, kropki,\n"
"podkre�lenia, i musi ko�czy� si� '='\n"
-#: g10/g10.c:1613
+#: g10/g10.c:1588
msgid "dots in a notation name must be surrounded by other characters\n"
msgstr "kropki w adnotacji musz� znajdowa� si� pomi�dzy innymi znakami\n"
-#: g10/g10.c:1621
+#: g10/g10.c:1596
msgid "a notation value must not use any control characters\n"
msgstr "warto�� adnotacji nie mo�e zawiera� znak�w steruj�cych\n"
@@ -891,7 +891,7 @@ msgstr "B��d sumy CRC; %06lx - %06lx\n"
#: g10/armor.c:731
msgid "premature eof (in Trailer)\n"
-msgstr "przedwczesny koniec pliku (w linii ko�cz�cej)\n"
+msgstr "przedwczesny koniec pliku (w zako�czeniu)\n"
#: g10/armor.c:735
msgid "error in trailer line\n"
@@ -1095,8 +1095,7 @@ msgstr "OSTRZE�ENIE: Ten klucz nie jest po�wiadczony zaufanym podpisem!\n"
#: g10/pkclist.c:564
msgid ""
" There is no indication that the signature belongs to the owner.\n"
-msgstr ""
-" Nic nie wskazuje na to �e ten podpis z�o�y� w�a�ciciel klucza.\n"
+msgstr " Nic nie wskazuje na to �e ten podpis z�o�y� w�a�ciciel klucza.\n"
#: g10/pkclist.c:581
msgid "WARNING: We do NOT trust this key!\n"
@@ -1104,7 +1103,7 @@ msgstr "OSTRZE�ENIE: NIE UFAMY temu kluczowi!\n"
#: g10/pkclist.c:582
msgid " The signature is probably a FORGERY.\n"
-msgstr " Ten podpis prawdopodobnie jest FA�SZERSTWEM.\n"
+msgstr " Ten podpis prawdopodobnie jest FA�SZERSTWEM.\n"
#: g10/pkclist.c:589
msgid ""
@@ -1115,8 +1114,7 @@ msgstr ""
#: g10/pkclist.c:592
msgid " It is not certain that the signature belongs to the owner.\n"
-msgstr ""
-" Nie ma pewno�ci �e ten podpis zosta� z�o�nony przez w�a�ciciela.\n"
+msgstr " Nie ma pewno�ci �e ten podpis zosta� z�o�nony przez w�a�ciciela.\n"
#: g10/pkclist.c:694 g10/pkclist.c:716 g10/pkclist.c:841 g10/pkclist.c:886
#, c-format
@@ -1373,7 +1371,7 @@ msgstr "Adres poczty elektronicznej: "
#: g10/keygen.c:644
msgid "Not a valid email address\n"
-msgstr "To nie jest poprawny adres poczty elektronicznej\n"
+msgstr "to nie jest poprawny adres poczty elektronicznej\n"
#: g10/keygen.c:652
msgid "Comment: "
@@ -1407,7 +1405,7 @@ msgstr "IiKkEeDdWw"
msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
msgstr ""
"Zmieni� (I)mi�/nazwisko, (K)omentarz, adres (E)mail, \n"
-"przej�� (D)alej czy (W)yj�� z programu ? "
+"przej�� (D)alej czy (W)yj�� z programu? "
#: g10/keygen.c:751
msgid ""
@@ -1430,7 +1428,7 @@ msgid ""
"using this program with the option \"--edit-key\".\n"
"\n"
msgstr ""
-"Nie chcesz poda� wyra�enia przej�ciowego (has�a) - to z�y pomys�!\n"
+"Nie chcesz poda� wyra�enia przej�ciowego (has�a) - to *z�y* pomys�!\n"
"W ka�dej chwili mo�esz ustawi� wyra�enie przej�ciowe u�ywaj�c tego programu\n"
"i opcji \"--edit-key\".\n"
"\n"
@@ -1446,8 +1444,8 @@ msgstr ""
"generowania\n"
"liczb pierszych jest wykonanywanie w tym czasie innych dzia�a� (pisanie na\n"
"klawiaturzeze, poruszanie myszk�, odwo�anie si� do dysk�w); dzi�ki temu\n"
-"generator liczb losowych ma mo�liwo�� zebrania odpowiedniej ilo�ci "
-"entropii.\n"
+"generator liczb losowych ma mo�liwo�� zebrania odpowiedniej ilo�ci entropii. "
+"\n"
#: g10/keygen.c:856
msgid "Key generation can only be used in interactive mode\n"
@@ -1464,16 +1462,16 @@ msgstr "Procedura generacji klucza zosta�a anulowana.\n"
#: g10/keygen.c:880
#, c-format
msgid "writing public certificate to `%s'\n"
-msgstr "zapisuj� certyfikat publiczny w '%s'\n"
+msgstr "zapis certyfikatu publicznego w '%s'\n"
#: g10/keygen.c:881
#, c-format
msgid "writing secret certificate to `%s'\n"
-msgstr "zapisuj� certyfikat prywatny w '%s'\n"
+msgstr "zapis certyfikatu prywatnego w '%s'\n"
#: g10/keygen.c:958
msgid "public and secret key created and signed.\n"
-msgstr "Prywatny i publiczny klucz zosta� stworzony i podpisany.\n"
+msgstr "prywatny i publiczny klucz zosta� stworzony i podpisany.\n"
#: g10/keygen.c:960
msgid ""
@@ -1493,7 +1491,7 @@ msgstr "Generacja klucza nie powiod�a si�: %s\n"
msgid ""
"key has been created %lu second in future (time warp or clock problem)\n"
msgstr ""
-"klucz zosta� stworzony %lu sekund� w przysz�o�ci (zaburzenia\n"
+"klucz zosta� stworzony %lu sekund w przysz�o�ci (zaburzenia\n"
"czasoprzestrzeni, lub �le ustawiony zegar systemowy)\n"
#: g10/keygen.c:1020 g10/sig-check.c:314 g10/sign.c:107
@@ -1508,7 +1506,7 @@ msgstr ""
msgid "Really create? "
msgstr "Na pewno generowa�? "
-#: g10/encode.c:91 g10/openfile.c:161 g10/openfile.c:270 g10/tdbio.c:468
+#: g10/encode.c:91 g10/openfile.c:156 g10/openfile.c:246 g10/tdbio.c:468
#: g10/tdbio.c:529
#, c-format
msgid "%s: can't open: %s\n"
@@ -1537,7 +1535,7 @@ msgstr "%s/%s zaszyfrowany dla: %s\n"
#: g10/export.c:147
#, c-format
msgid "%s: user not found: %s\n"
-msgstr "%s: nie znaleziono u�ytkownika %s\n"
+msgstr "%s: nie znaleziono u�ytkownika: %s\n"
#: g10/export.c:156
#, c-format
@@ -1676,7 +1674,7 @@ msgstr "klucz %08lX: brak klucza publicznego: %s\n"
msgid "no default public keyring\n"
msgstr "brak domy�lnego zbioru kluczy publicznych\n"
-#: g10/import.c:399 g10/openfile.c:213 g10/sign.c:268 g10/sign.c:580
+#: g10/import.c:399 g10/openfile.c:186 g10/sign.c:268 g10/sign.c:580
#, c-format
msgid "writing to `%s'\n"
msgstr "zapis do '%s'\n"
@@ -1694,7 +1692,7 @@ msgstr "b��d zapisu zbioru kluczy '%s': %s\n"
#: g10/import.c:410
#, c-format
msgid "key %08lX: public key imported\n"
-msgstr "klucz %08lX: klucz publiczny wczytano do zbioru\n"
+msgstr "klucz %08lX: klucz publiczny do��czony do zbioru\n"
#: g10/import.c:427
#, c-format
@@ -1853,7 +1851,7 @@ msgstr "key %08lX: powt�rzony identyfikator u�ytkownika - do��czony\n"
msgid "key %08lX: revocation certificate added\n"
msgstr "klucz %08lX: dodany certyfikat uniewa�nienia\n"
-#: g10/import.c:1128 g10/import.c:1181
+#: g10/import.c:1128 g10/import.c:1183
#, c-format
msgid "key %08lX: our copy has no self-signature\n"
msgstr "klucz %08lX: dost�pna kopia nie jest podpisana ni� sam�\n"
@@ -1980,7 +1978,7 @@ msgstr "Czy na pewno chcesz to zrobi�? "
#: g10/keyedit.c:524
msgid "moving a key signature to the correct place\n"
-msgstr "przenosz� podpis klucza na w�a�ciwe miejsce\n"
+msgstr "przeniesienie podpis klucza na w�a�ciwe miejsce\n"
#: g10/keyedit.c:564
msgid "quit this menu"
@@ -2076,7 +2074,7 @@ msgstr "z�o�enie lokalnego podpisu na kluczu"
#: g10/keyedit.c:579
msgid "debug"
-msgstr "�ledzenia"
+msgstr "�ledzenie"
#: g10/keyedit.c:580
msgid "adduid"
@@ -2286,11 +2284,11 @@ msgstr ""
#: g10/keyedit.c:975
msgid "Invalid command (try \"help\")\n"
-msgstr "Niepoprawna komenda (spr�buj \"help\")\n"
+msgstr "Niepoprawne polecenie (spr�buj \"help\")\n"
#: g10/keyedit.c:1065
msgid "This key has been disabled"
-msgstr "Ten klucz zosta� wy��czony z u�ytku"
+msgstr "Ten klucz zosta� wy��czony z u�ycia"
#: g10/keyedit.c:1336
msgid "Delete this good signature? (y/N/q)"
@@ -2375,28 +2373,22 @@ msgstr "Stworzy� certyfikat uniewa�nienia tego podpisu? (t/N)"
#. FIXME: detect duplicates here
#: g10/keyedit.c:1740
-#, fuzzy
msgid "You have signed these user IDs:\n"
-msgstr "Nie mo�esz usun�� ostatniego identyfikatora u�ytkownika!\n"
+msgstr "Te identyfikatory s� podpisane przez ciebie:\n"
#: g10/keyedit.c:1754 g10/keyedit.c:1789
-#, fuzzy, c-format
+#, c-format
msgid " signed by %08lX at %s\n"
-msgstr ""
-"\"\n"
-"podpisano Twoim kluczem %08lX w %s\n"
+msgstr " podpisany kluczem %08lX w %s\n"
#: g10/keyedit.c:1759
-#, fuzzy, c-format
+#, c-format
msgid " revoked by %08lX at %s\n"
-msgstr ""
-"\"\n"
-"podpisano Twoim kluczem %08lX w %s\n"
+msgstr "uniewa�niony kluczem %08lX w %s\n"
#: g10/keyedit.c:1779
-#, fuzzy
msgid "You are about to revoke these signatures:\n"
-msgstr "Czy na pewno chcesz uniewa�ni� wybrane klucze? "
+msgstr "Czy na pewno chcesz uniewa�ni� te podpisy:\n"
#: g10/keyedit.c:1797
msgid "Really create the revocation certificates? (y/N)"
@@ -2434,45 +2426,45 @@ msgstr "odszyfrowuj�cy klucz tajny do jest niedost�pny\n"
msgid "public key decryption failed: %s\n"
msgstr "b��d odszyfrowywania kluczem publicznym: %s\n"
-#: g10/mainproc.c:332
+#: g10/mainproc.c:330
msgid "decryption okay\n"
msgstr "odszyfrowane poprawnie\n"
-#: g10/mainproc.c:337
+#: g10/mainproc.c:335
msgid "WARNING: encrypted message has been manipulated!\n"
-msgstr "OSTRZE�ENIE: zaszyfrowana wiadomo�� by�a manipulowana!\n"
+msgstr "OSTRZE�ENIE: dokonano manipulacji zaszyfrowan� wiadomo�ci�!\n"
-#: g10/mainproc.c:342
+#: g10/mainproc.c:340
#, c-format
msgid "decryption failed: %s\n"
msgstr "b��d odszyfrowywania: %s\n"
-#: g10/mainproc.c:360
+#: g10/mainproc.c:358
msgid "NOTE: sender requested \"for-your-eyes-only\"\n"
msgstr "UWAGA: nadawca zaznaczy� �e wiadomo�� nie powinna by� zapisywana\n"
-#: g10/mainproc.c:362
+#: g10/mainproc.c:360
#, c-format
msgid "original file name='%.*s'\n"
msgstr "pierwotna nazwa pliku='%.*s'\n"
-#: g10/mainproc.c:589 g10/mainproc.c:598
+#: g10/mainproc.c:587 g10/mainproc.c:596
msgid "WARNING: invalid notation data found\n"
msgstr "OSTRZE�ENIE: niepoprawne dane w adnotacji\n"
-#: g10/mainproc.c:601
+#: g10/mainproc.c:599
msgid "Notation: "
msgstr "Adnotacja:"
-#: g10/mainproc.c:608
+#: g10/mainproc.c:606
msgid "Policy: "
msgstr "Regulamin:"
-#: g10/mainproc.c:1027
+#: g10/mainproc.c:1025
msgid "signature verification suppressed\n"
msgstr "wymuszono pomini�cie sprawdzenia podpisu\n"
-#: g10/mainproc.c:1033
+#: g10/mainproc.c:1031
#, c-format
msgid "Signature made %.*s using %s key ID %08lX\n"
msgstr ""
@@ -2480,28 +2472,28 @@ msgstr ""
"z u�yciem klucza o identyfikatorze %08lX\n"
#. just in case that we have no userid
-#: g10/mainproc.c:1059 g10/mainproc.c:1070
+#: g10/mainproc.c:1057 g10/mainproc.c:1068
msgid "BAD signature from \""
msgstr "NIEPOPRAWNY podpis z�o�ony przez \""
-#: g10/mainproc.c:1060 g10/mainproc.c:1071
+#: g10/mainproc.c:1058 g10/mainproc.c:1069
msgid "Good signature from \""
msgstr "Poprawny podpis z�o�ony przez \""
-#: g10/mainproc.c:1062
+#: g10/mainproc.c:1060
msgid " aka \""
msgstr " alias \""
-#: g10/mainproc.c:1117
+#: g10/mainproc.c:1115
#, c-format
msgid "Can't check signature: %s\n"
-msgstr "Nie mog� sprawdzi� podpisu: %s\n"
+msgstr "Nie mo�na sprawdzi� podpisu: %s\n"
-#: g10/mainproc.c:1214
+#: g10/mainproc.c:1212
msgid "old style (PGP 2.x) signature\n"
msgstr "podpis starego typu (PGP 2.x)\n"
-#: g10/mainproc.c:1219
+#: g10/mainproc.c:1217
msgid "invalid root packet detected in proc_tree()\n"
msgstr "wykryto niepoprawny pakiet pierwotny w proc_tree()\n"
@@ -2560,7 +2552,9 @@ msgstr "d�ugo�� %u bit�w, typ %s, klucz %08lX, stworzony %s"
#: g10/passphrase.c:173
#, c-format
msgid " (main key ID %08lX)"
-msgstr " (g��wny ID klucza %08lX)"
+msgstr ""
+" \n"
+"(identyfikator g��wnego klucza %08lX)"
#: g10/passphrase.c:190
msgid "can't query password in batchmode\n"
@@ -2585,7 +2579,7 @@ msgstr "Nazwa pliku danych: "
#: g10/plaintext.c:336
msgid "reading stdin ...\n"
-msgstr "czytam strumie� standardowego wej�cia\n"
+msgstr "odczyt ze strumienia standardowego wej�cia...\n"
#: g10/plaintext.c:379
#, c-format
@@ -2595,7 +2589,7 @@ msgstr "nie mo�na otworzy� podpisanego pliku '%s'\n"
#: g10/pubkey-enc.c:79
#, c-format
msgid "anonymous receiver; trying secret key %08lX ...\n"
-msgstr "adresat anonimowy; pr�buj� klucz tajny %08lX ...\n"
+msgstr "adresat anonimowy; pr�ba klucza tajnego %08lX ...\n"
#: g10/pubkey-enc.c:85
msgid "okay, we are the anonymous recipient.\n"
@@ -2623,8 +2617,8 @@ msgstr ""
#: g10/seckey-cert.c:227
msgid "WARNING: Weak key detected - please change passphrase again.\n"
msgstr ""
-"Ostrze�enie: Wykryto klucz s�aby algorytmu - nale�y ponownie zmieni� \n"
-"wyra�enie przej�ciowe (has�o).\n"
+"OSTRZE�ENIE: Wykryto klucz s�aby algorytmu - nale�y ponownie zmieni� \n"
+" wyra�enie przej�ciowe (has�o).\n"
#: g10/sig-check.c:199
msgid "assuming bad MDC due to an unknown critical bit\n"
@@ -2666,7 +2660,7 @@ msgstr "%s podpis z�o�ony przez: %s\n"
#: g10/sign.c:263 g10/sign.c:575
#, c-format
msgid "can't create %s: %s\n"
-msgstr "nie mog� stworzy� %s: %s\n"
+msgstr "nie mo�na stworzy� %s: %s\n"
#: g10/sign.c:361
msgid "signing:"
@@ -2680,7 +2674,7 @@ msgstr "OSTRZE�ENIE: plik '%s' jest pusty\n"
#: g10/textfilter.c:128
#, c-format
msgid "can't handle text lines longer than %d characters\n"
-msgstr "nie mog� obs�u�y� linii tekstu d�u�szej ni� %d znak�w\n"
+msgstr "nie mo�na obs�u�y� linii tekstu d�u�szej ni� %d znak�w\n"
#: g10/textfilter.c:197
#, c-format
@@ -2709,7 +2703,7 @@ msgstr "%s: dost�p niemo�liwy: %s\n"
#: g10/ringedit.c:298 g10/tdbio.c:445
#, c-format
msgid "%s: can't create directory: %s\n"
-msgstr "%s: nie mog� utworzy� katalogu: %s\n"
+msgstr "%s: nie mo�na utworzy� katalogu: %s\n"
#: g10/ringedit.c:304 g10/tdbio.c:448
#, c-format
@@ -2721,25 +2715,25 @@ msgstr "%s: katalog utworzony\n"
msgid "%s: directory does not exist!\n"
msgstr "%s: katalog nie istnieje!\n"
-#: g10/openfile.c:209 g10/openfile.c:277 g10/ringedit.c:1348 g10/tdbio.c:458
+#: g10/openfile.c:182 g10/openfile.c:253 g10/ringedit.c:1348 g10/tdbio.c:458
#, c-format
msgid "%s: can't create: %s\n"
-msgstr "%s: nie mog� utworzy�: %s\n"
+msgstr "%s: nie mo�na utworzy�: %s\n"
#: g10/tdbio.c:473 g10/tdbio.c:522
#, c-format
msgid "%s: can't create lock\n"
-msgstr "%s: nie mog� utworzy� blokady\n"
+msgstr "%s: nie mo�na utworzy� blokady\n"
#: g10/tdbio.c:487
#, c-format
msgid "%s: failed to create version record: %s"
-msgstr "%s: stworzenie zapisu o wersji nie powiod�o si�: %s"
+msgstr "%s: utworzenie zapisu o wersji nie powiod�o si�: %s"
#: g10/tdbio.c:491
#, c-format
msgid "%s: invalid trustdb created\n"
-msgstr "%s: stworzony niepoprawny plik bazy zaufania\n"
+msgstr "%s: utworzono niepoprawny plik bazy zaufania\n"
#: g10/tdbio.c:494
#, c-format
@@ -2800,7 +2794,7 @@ msgstr "%s: niew�a�ciwa wersja pliku %d\n"
#: g10/tdbio.c:1601
#, c-format
msgid "%s: error reading free record: %s\n"
-msgstr "%s: b��d odczytu pustego wpisu: %s\n"
+msgstr "%s: b��d odczytu wolnego wpisu: %s\n"
#: g10/tdbio.c:1609
#, c-format
@@ -3103,11 +3097,6 @@ msgstr "umieszczenie '%s' w Bazie Zaufania nie powiod�o si�: %s\n"
msgid "WARNING: can't yet handle long pref records\n"
msgstr "OSTRZE�ENIE: d�ugie wpisy ustawie� jeszcze nie s� obs�ugiwane.\n"
-#: g10/verify.c:143
-#, c-format
-msgid "input line %u too long or missing LF\n"
-msgstr ""
-
#: g10/ringedit.c:318
#, c-format
msgid "%s: can't create keyring: %s\n"
@@ -3157,34 +3146,34 @@ msgstr ""
"podpisy sk�adane tym kluczem nie zapewniaj� bezpiecze�stwa!\n"
#. do not overwrite
-#: g10/openfile.c:72
+#: g10/openfile.c:65
#, c-format
msgid "File `%s' exists. "
msgstr "Plik '%s' ju� istnieje. "
-#: g10/openfile.c:74
+#: g10/openfile.c:67
msgid "Overwrite (y/N)? "
msgstr "Nadpisa� (t/N)? "
-#: g10/openfile.c:102
+#: g10/openfile.c:97
#, c-format
msgid "%s: unknown suffix\n"
msgstr "%s: nieznana ko�c�wka\n"
-#: g10/openfile.c:124
+#: g10/openfile.c:119
msgid "Enter new filename"
msgstr "Nazwa pliku"
-#: g10/openfile.c:165
+#: g10/openfile.c:160
msgid "writing to stdout\n"
msgstr "zapisywanie na wyj�cie standardowe\n"
-#: g10/openfile.c:243
+#: g10/openfile.c:219
#, c-format
msgid "assuming signed data in `%s'\n"
msgstr "przyj�to obecno�� podpisanych danych w '%s'\n"
-#: g10/openfile.c:293
+#: g10/openfile.c:269
#, c-format
msgid "%s: new options file created\n"
msgstr "%s: stworzono nowy plik ustawie�\n"
@@ -3217,27 +3206,24 @@ msgstr ""
"operacja by�a powtarzana %d razy!\n"
#: g10/delkey.c:93
-#, fuzzy
msgid "there is a secret key for this public key!\n"
-msgstr "usuni�cie klucza ze zbioru kluczy publicznych"
+msgstr "dla tego klucza publicznego istnieje klucz tajny!\n"
#: g10/delkey.c:95
msgid "use option \"--delete-secret-key\" to delete it first.\n"
-msgstr ""
+msgstr "nale�y najpierw go usun�� opcj� \"--delete-secret-key\".\n"
#: g10/delkey.c:111
-#, fuzzy
msgid "can't do that in batchmode without \"--yes\"\n"
-msgstr "nie dzia�a w trybie wsadowym\n"
+msgstr "nie dzia�a w trybie wsadowym bez opcji \"--yes\"\n"
#: g10/delkey.c:133
-#, fuzzy
msgid "Delete this key from the keyring? "
-msgstr "usuni�cie klucza ze zbioru kluczy publicznych"
+msgstr "Usun�� ten klucz ze zbioru? "
#: g10/delkey.c:141
msgid "This is a secret key! - really delete? "
-msgstr ""
+msgstr "To jest klucz tajny - czy na pewno go usun��? "
#: g10/helptext.c:47
msgid ""
@@ -3288,22 +3274,22 @@ msgid ""
msgstr ""
"Wyb�r algorytmu.\n"
"\n"
-"DSA (zwany te� DSS) to algorytm podpisu cyfrowego i tylko do sk�adania\n"
-"podpis�w mo�e by� u�ywany. Jest to preferowany algorytm poniewa�\n"
-"sk�adane nim podpisy sprawdza si� du�o szybciej ni� te sk�adane\n"
-"algorytmem ElGamala.\n"
+"DSA (zwany te� DSS) to algorytm podpisu cyfrowego, i tylko do sk�adania\n"
+"podpis�w mo�e on by� u�ywany. Jest to preferowany algorytm poniewa� "
+"sk�adane\n"
+"nim podpisy sprawdza si� du�o szybciej ni� te sk�adane algorytmem ElGamala.\n"
"\n"
-"Algorytm ElGamala mo�e by� u�ywany zar�wno do podpis�w jak i do\n"
-"szyfrowania. Standard OpenPGP rozr�nia dwa typy tego algorytmu -\n"
-"tylko do szyfrowania, oraz do szyfrowania i podpisywania. Faktycznie\n"
-"algorytm pozostaje bez zmian ale pewne parametry musz� by� odpowiednio\n"
-"dobrane aby stworzy� klucz kt�rym mo�na sk�ada� bezpieczne\n"
-"podpisy. Ten program obs�uguje oba typy ale inne implementacje nnie\n"
-"musz� rozumie� kluczy do podpis�w i szyfrowania\n"
+"Algorytm ElGamala mo�e by� u�ywany zar�wno do podpis�w jak i do "
+"szyfrowania.\n"
+"Standard OpenPGP rozr�nia dwa typy tego algorytmu - tylko do szyfrowania,\n"
+"oraz do szyfrowania i podpisywania. Faktycznie algorytm pozostaje bez zmian\n"
+"ale pewne parametry musz� by� odpowiednio dobrane aby stworzy� klucz kt�rym\n"
+"mo�na sk�ada� bezpieczne podpisy. Ten program obs�uguje oba typy ale inne\n"
+"implementacje nie musz� rozumie� kluczy do podpis�w i szyfrowania\n"
"\n"
-"G��wny klucz musi by� kluczem podpisuj�cym, jest to powodem dla\n"
-"kt�rego w tym menu nie ma mo�no�ci wyboru klucza ElGamala do\n"
-"szyfrowania."
+"G��wny klucz musi by� kluczem podpisuj�cym, jest to powodem dla kt�rego w "
+"tym\n"
+"menu nie ma mo�no�ci wyboru klucza ElGamala do szyfrowania."
#: g10/helptext.c:85
msgid ""
@@ -3311,9 +3297,10 @@ msgid ""
"because they are not supported by all programs and signatures created\n"
"with them are quite large and very slow to verify."
msgstr ""
-"Ten typ klucza jest zdefiniowany w RFC2440, jednak�e jest on odradzany\n"
-"gdy� nie jest obs�ugiwany przez wszystkie programy, a podpisy nim\n"
-"sk�adane s� du�e i ich sprawdzanie trwa d�ugo."
+"Ten typ klucza jest zdefiniowany w RFC2440, jednak�e jest on odradzany gdy�\n"
+"nie jest obs�ugiwany przez wszystkie programy, a podpisy nim sk�adane s� "
+"du�e\n"
+"i ich sprawdzanie trwa d�ugo."
#: g10/helptext.c:92
msgid "Enter the size of the key"
@@ -3331,10 +3318,10 @@ msgid ""
"get a good error response - instead the system tries to interpret\n"
"the given value as an interval."
msgstr ""
-"Wprowad� ��dan� warto�� (jak w znaku zach�ty). \n"
-"Mo�na tu poda� dat� w formacie ISO (RRRR-MM-DD) ale nie da to\n"
-"w�a�ciwej obs�ugi b��d�w - system pr�buje interpretowa� podan� warto��\n"
-"jako okres."
+"Wprowad� ��dan� warto�� (jak w znaku zach�ty). Mo�na tu poda� dat� w "
+"formacie\n"
+"ISO (RRRR-MM-DD) ale nie da to w�a�ciwej obs�ugi b��d�w - system pr�buje\n"
+"interpretowa� podan� warto�� jako okres."
#: g10/helptext.c:118
msgid "Enter the name of the key holder"
@@ -3442,7 +3429,7 @@ msgstr ""
"Prosz� powr�trzy� wyra�enie przej�ciowe, aby upewni� si� �e nie by�o pomy�ki."
#: g10/helptext.c:213
-msgid "Give the name of the file to which the signature applies"
+msgid "Give the name fo the file to which the signature applies"
msgstr "Nazwa pliku kt�rego dotyczy podpis"
#: g10/helptext.c:218
diff --git a/util/errors.c b/util/errors.c
index 0590f8ed8..e1551d03d 100644
--- a/util/errors.c
+++ b/util/errors.c
@@ -100,6 +100,7 @@ g10_errstr( int err )
X(NETWORK ,N_("network error"))
X(SELFTEST_FAILED,"selftest failed")
X(NOT_ENCRYPTED ,N_("not encrypted"))
+ X(NOT_PROCESSED ,N_("not processed"))
default: p = buf; sprintf(buf, "g10err=%d", err); break;
}
#undef X