summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--PROJECTS7
-rw-r--r--THANKS7
-rw-r--r--TODO13
-rw-r--r--cipher/ChangeLog10
-rw-r--r--cipher/dynload.c10
-rw-r--r--cipher/dynload.h5
-rw-r--r--cipher/random.c60
-rw-r--r--cipher/rndlinux.c27
-rw-r--r--cipher/rndunix.c64
-rw-r--r--doc/OpenPGP13
-rw-r--r--doc/gpg.1pod9
-rw-r--r--g10/ChangeLog7
-rw-r--r--g10/helptext.c5
-rw-r--r--g10/options.skel13
-rw-r--r--g10/packet.h1
-rw-r--r--g10/parse-packet.c134
-rw-r--r--g10/sig-check.c4
-rw-r--r--include/ChangeLog4
-rw-r--r--include/types.h2
-rw-r--r--po/ChangeLog4
-rw-r--r--po/de.po771
21 files changed, 644 insertions, 526 deletions
diff --git a/PROJECTS b/PROJECTS
index 827054e2a..d5b1eb123 100644
--- a/PROJECTS
+++ b/PROJECTS
@@ -2,6 +2,7 @@
* Check if an object (a message, detached sign, public key, or whatever)
is signed by definite user, i.e. define user
(userid, or any other unique identification) on command line.
+ --> NO: Use a script and --status-fd
* Change the internal represention of keyid into a struct which
can also hold the localid and extend the localid to hold information
@@ -27,3 +28,9 @@
* Split key support (n-out-of-m)
+ * Check Berkeley BD - it is in glibc - any licensing problems?
+
+ * add an option to re-create a public key from a secret key; we
+ can do this in trustdb.c:verify_own_keys.
+ (special tool?)
+
diff --git a/THANKS b/THANKS
index 61116a64a..460b39780 100644
--- a/THANKS
+++ b/THANKS
@@ -35,6 +35,7 @@ James Troup james@nocrew.org
Jean-loup Gailly gzip@prep.ai.mit.edu
Jens Bachem bachem@rrz.uni-koeln.de
John A. Martin jam@jamux.com
+Johnny Teveßen j.tevessen@gmx.de
Jörg Schilling schilling@fokus.gmd.de
Jun Kuriyama kuriyama@sky.rim.or.jp
Karl Fogel kfogel@guanabana.onshore.com
@@ -66,6 +67,7 @@ SL Baur steve@xemacs.org
Stefan Karrmann S.Karrmann@gmx.net
Steffen Ullrich ccrlphr@xensei.com
Steffen Zahn zahn@berlin.snafu.de
+Susanne Schultz schultz@hsp.de
Thiago Jung Bauermann jungmann@usa.net
Thomas Roessler roessler@guug.de
Tom Spindler dogcow@home.merit.edu
@@ -79,8 +81,9 @@ Werner Koch werner.koch@guug.de
Wim Vandeputte bunbun@reptile.rug.ac.be
nbecker@hns.com
-Thanks to the German Unix User Group for providing FTP space and
-Martin Hamilton for hosting the mailing list.
+Thanks to the German Unix User Group for providing FTP space,
+Martin Hamilton for hosting the mailing list and hsp for
+hosting gnupg.org.
Many thanks to my wife Gerlinde for having so much patience with
me while hacking late in the evening.
diff --git a/TODO b/TODO
index caa080c67..168c8b7f1 100644
--- a/TODO
+++ b/TODO
@@ -6,8 +6,6 @@
* preferences of hash algorithms are not yet used.
- * Check Berkeley BD - it is in glibc - any licensing problems?
-
* I noticed, that we sometimes have only 3 items in a trustrecord, but
a next pointer ro more records - check wehther the reuse code really
works. Maybe this is the reason for the "Hmmm public key lost"
@@ -17,9 +15,6 @@
* should we flush the getkey.c caches while doing an import?
- * The critical bit of signature subpackets is not yet supported; i.e.
- it is ignored.
-
* We need a maintainence pass over the trustdb which flags
signatures as expired if the key used to make the signature has
expired. Maybe it is a good idea to store the exiration time
@@ -44,13 +39,9 @@
* add checking of armor trailers
* remove all "Fixmes" ;-)
- * add an option to re-create a public key from a secret key; we
- can do this in trustdb.c:verify_own_keys.
- (special tool?)
-
* change the fake_data stuff to mpi_set_opaque
- * Use "user ID", "trustdb", "NOTE" and "WARNING".
-
* Replace Blowfish by Twofish
+ * Work on the library
+
diff --git a/cipher/ChangeLog b/cipher/ChangeLog
index 2874426f7..08d27bce6 100644
--- a/cipher/ChangeLog
+++ b/cipher/ChangeLog
@@ -1,3 +1,13 @@
+Mon Dec 14 21:18:49 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
+
+ * random.c (read_random_source): Changed the interface to the
+ random gathering function.
+ (gather_faked): Use new interface.
+ * dynload.c (dynload_getfnc_fast_random_poll): Ditto.
+ (dynload_getfnc_gather_random): Ditto.
+ * rndlinux.c (gather_random): Ditto.
+ * rndunix.c (gather_random): Ditto.
+
Sat Dec 12 18:40:32 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
* dynload.c (SYMBOL_VERSION): New to cope with system which needs
diff --git a/cipher/dynload.c b/cipher/dynload.c
index 563f791f2..abef2da52 100644
--- a/cipher/dynload.c
+++ b/cipher/dynload.c
@@ -506,7 +506,8 @@ enum_gnupgext_pubkeys( void **enum_context, int *algo,
int (*
-dynload_getfnc_gather_random())(byte*, size_t*, int)
+dynload_getfnc_gather_random())(void (*)(const void*, size_t, int), int,
+ size_t, int)
{
EXTLIST r;
void *sym;
@@ -522,7 +523,8 @@ dynload_getfnc_gather_random())(byte*, size_t*, int)
while( (sym = (*r->enumfunc)(40, &seq, &class, &vers)) ) {
if( vers != 1 || class != 40 )
continue;
- return (int (*)(byte*, size_t*, int))sym;
+ return (int (*)(void (*)(const void*, size_t, int), int,
+ size_t, int))sym;
}
}
return NULL;
@@ -530,7 +532,7 @@ dynload_getfnc_gather_random())(byte*, size_t*, int)
void (*
-dynload_getfnc_fast_random_poll())( void (*)(const void*, size_t, int))
+dynload_getfnc_fast_random_poll())( void (*)(const void*, size_t, int), int)
{
EXTLIST r;
void *sym;
@@ -546,7 +548,7 @@ dynload_getfnc_fast_random_poll())( void (*)(const void*, size_t, int))
while( (sym = (*r->enumfunc)(41, &seq, &class, &vers)) ) {
if( vers != 1 || class != 41 )
continue;
- return (void (*)( void (*)(const void*, size_t, int)))sym;
+ return (void (*)( void (*)(const void*, size_t, int), int))sym;
}
}
return NULL;
diff --git a/cipher/dynload.h b/cipher/dynload.h
index 5e88dc732..d107b5a0a 100644
--- a/cipher/dynload.h
+++ b/cipher/dynload.h
@@ -54,9 +54,10 @@ enum_gnupgext_pubkeys( void **enum_context, int *algo,
unsigned (**get_nbits)( int algo, MPI *pkey ) );
-int (*dynload_getfnc_gather_random(void))(byte*, size_t*, int);
+int (*dynload_getfnc_gather_random(void))( void (*)(const void*, size_t, int),
+ int, size_t, int);
void (*dynload_getfnc_fast_random_poll(void)
- )( void (*)(const void*, size_t, int));
+ )( void (*)(const void*, size_t, int), int );
#endif /*G10_CIPHER_DYNLOAD_H*/
diff --git a/cipher/random.c b/cipher/random.c
index 699f76994..c49cc6e08 100644
--- a/cipher/random.c
+++ b/cipher/random.c
@@ -94,8 +94,9 @@ static int faked_rng;
static void read_pool( byte *buffer, size_t length, int level );
static void add_randomness( const void *buffer, size_t length, int source );
static void random_poll(void);
-static void read_random_source( byte *buffer, size_t length, int level );
-static int gather_faked( byte *buffer, size_t *r_length, int level );
+static void read_random_source( int requester, size_t length, int level);
+static int gather_faked( void (*add)(const void*, size_t, int), int requester,
+ size_t length, int level );
static void
@@ -137,7 +138,7 @@ quick_random_gen( int onoff )
{
int last;
- read_random_source( NULL, 0, 0 ); /* load module */
+ read_random_source(0,0,0); /* init */
last = quick_test;
if( onoff != -1 )
quick_test = onoff;
@@ -236,17 +237,13 @@ read_pool( byte *buffer, size_t length, int level )
/* for level 2 make sure that there is enough random in the pool */
if( level == 2 && pool_balance < length ) {
size_t needed;
- byte *p;
if( pool_balance < 0 )
pool_balance = 0;
needed = length - pool_balance;
if( needed > POOLSIZE )
BUG();
- p = secure_alloc ? m_alloc_secure( needed ) : m_alloc(needed);
- read_random_source( p, needed, 2 ); /* read /dev/random */
- add_randomness( p, needed, 3);
- m_free(p);
+ read_random_source( 3, needed, 2 );
pool_balance += needed;
}
@@ -321,17 +318,14 @@ add_randomness( const void *buffer, size_t length, int source )
static void
random_poll()
{
- char buf[POOLSIZE/5];
- read_random_source( buf, POOLSIZE/5, 1 );
- add_randomness( buf, POOLSIZE/5, 2);
- memset( buf, 0, POOLSIZE/5);
+ read_random_source( 2, POOLSIZE/5, 1 );
}
void
fast_random_poll()
{
- static void (*fnc)( void (*)(const void*, size_t, int)) = NULL;
+ static void (*fnc)( void (*)(const void*, size_t, int), int) = NULL;
static int initialized = 0;
if( !initialized ) {
@@ -341,7 +335,7 @@ fast_random_poll()
fnc = dynload_getfnc_fast_random_poll();
}
if( fnc ) {
- (*fnc)( add_randomness );
+ (*fnc)( add_randomness, 1 );
return;
}
@@ -377,9 +371,10 @@ fast_random_poll()
static void
-read_random_source( byte *buffer, size_t length, int level )
+read_random_source( int requester, size_t length, int level )
{
- static int (*fnc)(byte*, size_t*, int) = NULL;
+ static int (*fnc)(void (*)(const void*, size_t, int), int,
+ size_t, int) = NULL;
int nbytes;
int goodness;
@@ -391,24 +386,21 @@ read_random_source( byte *buffer, size_t length, int level )
faked_rng = 1;
fnc = gather_faked;
}
+ if( !requester && !length && !level )
+ return; /* init only */
}
- while( length ) {
- nbytes = length;
- goodness = (*fnc)( buffer, &nbytes, level );
- if( goodness < 0 )
- log_fatal("No way to gather entropy for the RNG\n");
- buffer +=nbytes;
- length -= nbytes;
- /* FIXME: how can we handle the goodness */
- }
+ if( (*fnc)( add_randomness, requester, length, level ) < 0 )
+ log_fatal("No way to gather entropy for the RNG\n");
}
static int
-gather_faked( byte *buffer, size_t *r_length, int level )
+gather_faked( void (*add)(const void*, size_t, int), int requester,
+ size_t length, int level )
{
static int initialized=0;
- size_t length = *r_length;
+ size_t n;
+ char *buffer, *p;
if( !initialized ) {
log_info(_("WARNING: using insecure random number generator!!\n"));
@@ -423,13 +415,17 @@ gather_faked( byte *buffer, size_t *r_length, int level )
#endif
}
+ p = buffer = m_alloc( length );
+ n = length;
#ifdef HAVE_RAND
- while( length-- )
- *buffer++ = ((unsigned)(1 + (int) (256.0*rand()/(RAND_MAX+1.0)))-1);
+ while( n-- )
+ *p++ = ((unsigned)(1 + (int) (256.0*rand()/(RAND_MAX+1.0)))-1);
#else
- while( length-- )
- *buffer++ = ((unsigned)(1 + (int) (256.0*random()/(RAND_MAX+1.0)))-1);
+ while( n-- )
+ *p++ = ((unsigned)(1 + (int) (256.0*random()/(RAND_MAX+1.0)))-1);
#endif
- return 100; /* We really fake it ;-) */
+ add_randomness( buffer, length, requester );
+ m_free(buffer);
+ return 0; /* okay */
}
diff --git a/cipher/rndlinux.c b/cipher/rndlinux.c
index b9376e8fe..66bb34e62 100644
--- a/cipher/rndlinux.c
+++ b/cipher/rndlinux.c
@@ -45,7 +45,8 @@
#endif
static int open_device( const char *name, int minor );
-static int gather_random( byte *buffer, size_t *r_length, int level );
+static int gather_random( void (*add)(const void*, size_t, int), int requester,
+ size_t length, int level );
#ifdef IS_MODULE
static void tty_printf(const char *fmt, ... )
@@ -81,15 +82,15 @@ open_device( const char *name, int minor )
static int
-gather_random( byte *buffer, size_t *r_length, int level )
+gather_random( void (*add)(const void*, size_t, int), int requester,
+ size_t length, int level )
{
static int fd_urandom = -1;
static int fd_random = -1;
int fd;
int n;
int warn=0;
- size_t length = *r_length;
- /* note: we will always return the requested length */
+ byte buffer[768];
if( level >= 2 ) {
if( fd_random == -1 )
@@ -101,7 +102,8 @@ gather_random( byte *buffer, size_t *r_length, int level )
fd_urandom = open_device( NAME_OF_DEV_URANDOM, 9 );
fd = fd_urandom;
}
- do {
+
+ while( length ) {
fd_set rfds;
struct timeval tv;
int rc;
@@ -125,20 +127,21 @@ gather_random( byte *buffer, size_t *r_length, int level )
}
do {
- n = read(fd, buffer, length );
- if( n >= 0 && n > length ) {
+ int nbytes = length < sizeof(buffer)? length : sizeof(buffer);
+ n = read(fd, buffer, nbytes );
+ if( n >= 0 && n > nbytes ) {
g10_log_error("bogus read from random device (n=%d)\n", n );
- n = length;
+ n = nbytes;
}
} while( n == -1 && errno == EINTR );
if( n == -1 )
g10_log_fatal("read error on random device: %s\n", strerror(errno));
- assert( n <= length );
- buffer += n;
+ (*add)( buffer, n, requester );
length -= n;
- } while( length );
+ }
+ memset(buffer, 0, sizeof(buffer) );
- return 100; /* always 100% useful at the requested level */
+ return 0; /* success */
}
diff --git a/cipher/rndunix.c b/cipher/rndunix.c
index 92e735689..a4d3bdb56 100644
--- a/cipher/rndunix.c
+++ b/cipher/rndunix.c
@@ -669,13 +669,13 @@ read_a_msg( int fd, GATHER_MSG *msg )
static int
-gather_random( char *buffer, size_t *r_length, int level )
+gather_random( void (*add)(const void*, size_t, int), int requester,
+ size_t length, int level )
{
static pid_t gatherer_pid = 0;
static int pipedes[2];
GATHER_MSG msg;
size_t n;
- size_t length = *r_length;
if( !gatherer_pid ) {
/* time to start the gatherer process */
@@ -696,37 +696,45 @@ gather_random( char *buffer, size_t *r_length, int level )
}
/* now read from the gatherer */
- if( read_a_msg( pipedes[0], &msg ) ) {
- g10_log_error("reading from gatherer pipe failed: %s\n",
- strerror(errno));
- return -1;
- }
+ while( length ) {
+ int goodness;
- n = msg.ndata;
- if( n > length )
- n = length;
- memcpy( buffer, msg.data, n );
+ if( read_a_msg( pipedes[0], &msg ) ) {
+ g10_log_error("reading from gatherer pipe failed: %s\n",
+ strerror(errno));
+ return -1;
+ }
- *r_length = n;
- if( level > 1 ) {
- if( msg.usefulness > 30 )
- return 100;
- else if ( msg.usefulness )
- return msg.usefulness * 100 / 30;
- else
- return 0;
- }
- else if( level ) {
- if( msg.usefulness > 15 )
- return 100;
- else if ( msg.usefulness )
- return msg.usefulness * 100 / 15;
+ if( level > 1 ) {
+ if( msg.usefulness > 30 )
+ goodness = 100;
+ else if ( msg.usefulness )
+ goodness = msg.usefulness * 100 / 30;
+ else
+ goodness = 0;
+ }
+ else if( level ) {
+ if( msg.usefulness > 15 )
+ goodness = 100;
+ else if ( msg.usefulness )
+ goodness = msg.usefulness * 100 / 15;
+ else
+ goodness = 0;
+ }
else
- return 0;
+ goodness = 100; /* goodness of level 0 is always 100 % */
+
+ n = msg.ndata;
+ if( n > length )
+ n = length;
+ (*add)( msg.data, n, requester );
+
+ /* this is the trick how e cope with the goodness */
+ length -= (ulong)n * goodness / 100;
}
- else
- return 100; /* goodness of level 0 is always 100 % */
+
+ return 0;
}
diff --git a/doc/OpenPGP b/doc/OpenPGP
index 60fede3e0..1ae4fedf8 100644
--- a/doc/OpenPGP
+++ b/doc/OpenPGP
@@ -8,14 +8,10 @@
Compatibility Notes
===================
- GnuPG (>=0.4.1) is in compliance with RFC2440 despite these exeptions:
+ GnuPG (>0.4.5) is in compliance with RFC2440 despite these exceptions:
===> Please can someone check this <=========
- * (5.1) The critical bit in signature subpackets is currently
- ignored. This will be fixed soon.
-
-
* (5.2) GnuPG generates V4 signatures for all V4 keys. The option
--force-v3-sigs allows to override.
@@ -23,13 +19,6 @@
Encrypted Session-Key Packets"; however a warning message is
issued if this option is active.
- * (5.5.2) states that an implementaion MUST NOT create a v3 key
- with an algorithm other than RSA. GnuPG has an option to
- create an ElGamal key in a v3 packet; the properties of such
- a key are as good as a v4 key. RFC1991 does not specifiy how
- to create fingerprints for algorithms other than RSA and so it
- is okay to choose a special format for ElGamal.
-
* (9.1) states that RSA SHOULD be implemented. This is not done
(except with an extension, usable outside the U.S.) due to
patent problems.
diff --git a/doc/gpg.1pod b/doc/gpg.1pod
index f5ea9ad48..6d4bcaa7c 100644
--- a/doc/gpg.1pod
+++ b/doc/gpg.1pod
@@ -11,7 +11,7 @@ B<gpgm> [--homedir name] [--options file] [options] command [args]
=head1 DESCRIPTION
B<gpg> is the main program for the GnuPG system. B<gpgm> is a maintenance
-tool which has some commands B<gpgm> does not have; it is there because
+tool which has some commands B<gpg> does not have; it is there because
it does not handle sensitive data and therefore has no need to allocate
secure memory.
@@ -92,7 +92,7 @@ B<--check-sigs> [I<names>]
B<--fingerprint> [I<names>]
List all keys with their fingerprints. This is the
- same output as B<list-keys> but with the additonal output
+ same output as B<list-keys> but with the additional output
of a line with the fingerprint. May also be combined
with B<--list-sigs> or B<--check-sigs>.
@@ -184,6 +184,9 @@ B<--export> [I<names>]
the file given with option "output". Use together
with B<-a> to mail those keys.
+B<--export-all> [I<names>]
+ Same as B<--export> but does also export keys which
+ are not compatible to OpenPGP.
B<--export-secret-keys> [I<names>
Same as B<--export>, but does export the secret keys.
@@ -452,7 +455,7 @@ B<--no-greeting>
enter batch mode.
B<--no-armor>
- Assume the input data is not in ASCCI armored format.
+ Assume the input data is not in ASCII armored format.
B<--no-default-keyring>
Do not add the default keyrings to the list of
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 410630521..77990ae6d 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,10 @@
+Mon Dec 14 21:18:49 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
+
+ * parse-packet.c (parse_signature): Now checks for critical bit
+ (parse_sig_subpkt): Splitted.
+ (parse_one_sig_subpkt): New.
+ * sig-check.c (do_check): handle critical bit.
+
Sun Dec 13 14:10:56 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
* pcklist.c (select_algo_from_prefs): Preferences should
diff --git a/g10/helptext.c b/g10/helptext.c
index ee5565e81..6ff88a710 100644
--- a/g10/helptext.c
+++ b/g10/helptext.c
@@ -35,9 +35,12 @@
* as response to a prompt) we can use a simple search through the list.
* Translators should use the key as msgid, this is to keep the msgid short
* and to allow for easy changing of the helptexts.
+ *
+ * Mini gloassary:
+ *
+ * "user ID", "trustdb", "NOTE" and "WARNING".
*/
-
static struct helptexts { const char *key; const char *help; } helptexts[] = {
/* begin of list */
diff --git a/g10/options.skel b/g10/options.skel
index 9fe89b1fb..0e53339d5 100644
--- a/g10/options.skel
+++ b/g10/options.skel
@@ -28,13 +28,6 @@ $Id$
force-v3-sigs
-# Default is to use the newer compress algo 2, but PGP 5 does not
-# like this, so we use the old one
-# Hmm: Do we really need this ... preferences should decide which compress
-# algo to use.
-
-compress-algo 1
-
# If you do not use the Latin-1 (ISO-8859-1) charset, you should
# tell GnuPG which is the native character set. Please check
# the man page for supported character sets.
@@ -45,10 +38,14 @@ compress-algo 1
# alias mynames -u 0x12345678 -u 0x456789ab -z 9
# everytime you use --mynames, it will be expanded to the options
# in the above defintion. The name of the alias may not be abbreviated.
+# NOTE: This is not yet implemented
-# lock tthe file only once for the lifetime of a process.
+# lock the file only once for the lifetime of a process.
# if you do not define this, the lock will be obtained and released
# every time it is needed - normally this is not needed.
lock-once
+# If you are not running one of the free operation systems
+# you probably have to uncomment the next line:
+#load-extension rndunix
diff --git a/g10/packet.h b/g10/packet.h
index 7d1e63150..e047fd944 100644
--- a/g10/packet.h
+++ b/g10/packet.h
@@ -200,6 +200,7 @@ struct packet_struct {
} while(0)
typedef enum {
+ SIGSUBPKT_TEST_CRITICAL=-3,
SIGSUBPKT_LIST_UNHASHED=-2,
SIGSUBPKT_LIST_HASHED =-1,
SIGSUBPKT_NONE = 0,
diff --git a/g10/parse-packet.c b/g10/parse-packet.c
index 2d82308dd..29e4fc4e6 100644
--- a/g10/parse-packet.c
+++ b/g10/parse-packet.c
@@ -714,21 +714,60 @@ dump_sig_subpkt( int hashed, int type, int critical,
printf("%s)\n", p? p: "");
}
+/****************
+ * Returns: >= 0 offset into buffer
+ * -1 unknown type
+ * -2 unsupported type
+ * -3 subpacket too short
+ */
+static int
+parse_one_sig_subpkt( const byte *buffer, size_t n, int type )
+{
+ switch( type ) {
+ case SIGSUBPKT_SIG_CREATED:
+ case SIGSUBPKT_SIG_EXPIRE:
+ case SIGSUBPKT_KEY_EXPIRE:
+ if( n < 4 )
+ break;
+ return 0;
+ case SIGSUBPKT_EXPORTABLE:
+ if( !n )
+ break;
+ return 0;
+ case SIGSUBPKT_ISSUER:/* issuer key ID */
+ if( n < 8 )
+ break;
+ return 0;
+ case SIGSUBPKT_PREF_SYM:
+ case SIGSUBPKT_PREF_HASH:
+ case SIGSUBPKT_PREF_COMPR:
+ return 0;
+ case SIGSUBPKT_PRIV_ADD_SIG:
+ /* because we use private data, we check the GNUPG marker */
+ if( n < 24 )
+ break;
+ if( buffer[0] != 'G' || buffer[1] != 'P' || buffer[2] != 'G' )
+ return -2;
+ return 3;
+ default: return -1;
+ }
+ return -3;
+}
+
const byte *
parse_sig_subpkt( const byte *buffer, sigsubpkttype_t reqtype, size_t *ret_n )
{
int buflen;
int type;
int critical;
+ int offset;
size_t n;
if( !buffer )
return NULL;
buflen = (*buffer << 8) | buffer[1];
buffer += 2;
- for(;;) {
- if( !buflen )
- return NULL; /* end of packets; not found */
+ while( buflen ) {
n = *buffer++; buflen--;
if( n == 255 ) {
if( buflen < 4 )
@@ -754,49 +793,47 @@ parse_sig_subpkt( const byte *buffer, sigsubpkttype_t reqtype, size_t *ret_n )
}
else
critical = 0;
- if( reqtype < 0 ) /* list packets */
+ if( reqtype == SIGSUBPKT_TEST_CRITICAL ) {
+ if( critical ) {
+ if( n-1 > buflen+1 )
+ goto too_short;
+ if( parse_one_sig_subpkt(buffer+1, n-1, type ) < 0 ) {
+ log_info(_("subpacket of type %d has critical bit set\n"),
+ type);
+ return NULL; /* this is an error */
+ }
+ }
+ }
+ else if( reqtype < 0 ) /* list packets */
dump_sig_subpkt( reqtype == SIGSUBPKT_LIST_HASHED,
type, critical, buffer, buflen, n );
- else if( type == reqtype )
- break; /* found */
+ else if( type == reqtype ) { /* found */
+ buffer++;
+ n--;
+ if( n > buflen )
+ goto too_short;
+ if( ret_n )
+ *ret_n = n;
+ offset = parse_one_sig_subpkt(buffer, n, type );
+ switch( offset ) {
+ case -3:
+ log_error("subpacket of type %d too short\n", type);
+ return NULL;
+ case -2:
+ return NULL;
+ case -1:
+ BUG(); /* not yet needed */
+ default:
+ break;
+ }
+ return buffer+offset;
+ }
buffer += n; buflen -=n;
}
- buffer++;
- n--;
- if( n > buflen )
- goto too_short;
- if( ret_n )
- *ret_n = n;
- switch( type ) {
- case SIGSUBPKT_SIG_CREATED:
- case SIGSUBPKT_SIG_EXPIRE:
- case SIGSUBPKT_KEY_EXPIRE:
- if( n < 4 )
- break;
- return buffer;
- case SIGSUBPKT_EXPORTABLE:
- if( !n )
- break;
- return buffer;
- case SIGSUBPKT_ISSUER:/* issuer key ID */
- if( n < 8 )
- break;
- return buffer;
- case SIGSUBPKT_PREF_SYM:
- case SIGSUBPKT_PREF_HASH:
- case SIGSUBPKT_PREF_COMPR:
- return buffer;
- case SIGSUBPKT_PRIV_ADD_SIG:
- /* because we use private data, we check the GNUPG marker */
- if( n < 24 )
- break;
- if( buffer[0] != 'G' || buffer[1] != 'P' || buffer[2] != 'G' )
- return NULL;
- return buffer+3;
- default: BUG(); /* not yet needed */
- }
- log_error("subpacket of type %d too short\n", type);
- return NULL;
+ if( reqtype == SIGSUBPKT_TEST_CRITICAL )
+ return buffer; /* as value true to indicate that there is no
+ /* critical bit we don't understand */
+ return NULL; /* end of packets; not found */
too_short:
log_error("buffer shorter than subpacket\n");
@@ -899,10 +936,15 @@ parse_signature( IOBUF inp, int pkttype, unsigned long pktlen,
if( is_v4 ) { /*extract required information */
const byte *p;
- /* FIXME: set sig->flags.unknown_critical is there is a
- * critical bit set for packets which are not understood
- * It does only make sense for hashed data.
- */
+ /* set sig->flags.unknown_critical if there is a
+ * critical bit set for packets which we do not understand */
+ if( !parse_sig_subpkt( sig->hashed_data, SIGSUBPKT_TEST_CRITICAL, NULL)
+ || !parse_sig_subpkt( sig->unhashed_data, SIGSUBPKT_TEST_CRITICAL,
+ NULL) )
+ {
+ sig->flags.unknown_critical = 1;
+ }
+
p = parse_sig_subpkt( sig->hashed_data, SIGSUBPKT_SIG_CREATED, NULL );
if( !p )
log_error("signature packet without timestamp\n");
diff --git a/g10/sig-check.c b/g10/sig-check.c
index 106355550..63bdda220 100644
--- a/g10/sig-check.c
+++ b/g10/sig-check.c
@@ -222,6 +222,10 @@ do_check( PKT_public_key *pk, PKT_signature *sig, MD_HANDLE digest )
rc = pubkey_verify( pk->pubkey_algo, result, sig->data, pk->pkey,
cmp_help, &ctx );
mpi_free( result );
+ if( !rc && sig->flags.unknown_critical ) {
+ log_info(_("assuming bad signature due to an unknown critical bit\n"));
+ rc = G10ERR_BAD_SIGN;
+ }
sig->flags.checked = 1;
sig->flags.valid = !rc;
diff --git a/include/ChangeLog b/include/ChangeLog
index 9040e8900..e5452d76f 100644
--- a/include/ChangeLog
+++ b/include/ChangeLog
@@ -1,3 +1,7 @@
+Mon Dec 14 21:18:49 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
+
+ * types.h: fix for SUNPRO_C
+
Tue Dec 8 13:15:16 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
* mpi.h (MPI): Changed the structure name to gcry_mpi and
diff --git a/include/types.h b/include/types.h
index 328a1a93c..4c5e57cc6 100644
--- a/include/types.h
+++ b/include/types.h
@@ -91,7 +91,7 @@
#elif SIZEOF_UNSIGNED_LONG == 8
typedef unsigned long u64;
#define HAVE_U64_TYPEDEF
- #elif __GNUC__ >= 2
+ #elif __GNUC__ >= 2 || defined(__SUNPRO_C)
typedef unsigned long long u64;
#define HAVE_U64_TYPEDEF
#endif
diff --git a/po/ChangeLog b/po/ChangeLog
index 384ce7713..8f69e8f11 100644
--- a/po/ChangeLog
+++ b/po/ChangeLog
@@ -1,3 +1,7 @@
+Mon Dec 14 21:18:49 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
+
+ * de.po: Imported new version.
+
Thu Dec 10 20:15:36 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
* *.po: Changed some english strings.
diff --git a/po/de.po b/po/de.po
index 65a41e0b6..c3fded59d 100644
--- a/po/de.po
+++ b/po/de.po
@@ -4,8 +4,8 @@
#
msgid ""
msgstr ""
-"POT-Creation-Date: 1998-12-10 20:11+0100\n"
-"PO-Revision-Date: 1998-11-18 20:10+0200\n"
+"POT-Creation-Date: 1998-12-09 00:39+0100\n"
+"PO-Revision-Date: 1998-12-13 22:34+0100\n"
"Last-Translator: Walter Koch <walterk@mail.dip.de>\n"
"Language-Team: German <de@li.org>\n"
"MIME-Version: 1.0\n"
@@ -24,8 +24,8 @@ msgstr ""
msgid "Warning: using insecure memory!\n"
msgstr ""
"Warnung: Sensible Daten könnten auf Platte ausgelagert werden.\n"
-"Um dies zu vermeiden, kann das Programm suid(root) installiert werden.\n"
-"Bitte wenden Sie sich hierzu an den Systemadministrator.\n"
+" Um dies zu vermeiden, kann das Programm suid(root) installiert werden.\n"
+" Bitte wenden Sie sich hierzu an den Systemadministrator.\n"
#: util/miscutil.c:143
msgid "yes"
@@ -73,7 +73,7 @@ msgstr "Prüfsummen-Fehler"
#: util/errors.c:63
msgid "Bad passphrase"
-msgstr "Falsche \"Passphrase\""
+msgstr "Falsches Mantra"
#: util/errors.c:64
msgid "Public key not found"
@@ -137,7 +137,7 @@ msgstr "Fehler beim Erzeugen der Datei"
#: util/errors.c:79
msgid "Invalid passphrase"
-msgstr "Ungültige \"Passphrase\""
+msgstr "Ungültiges Mantra"
#: util/errors.c:80
msgid "Unimplemented pubkey algorithm"
@@ -217,11 +217,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/random.c:412
+#: cipher/random.c:379
msgid "WARNING: using insecure random number generator!!\n"
-msgstr "Der Zufallszahlengenerator erzeugt keine echten Zufallszahlen!\n"
+msgstr "WARNUNG: Der Zufallszahlengenerator erzeugt keine echten Zufallszahlen!\n"
-#: cipher/random.c:413
+#: cipher/random.c:380
msgid ""
"The random number generator is only a kludge to let\n"
"it run - it is in no way a strong RNG!\n"
@@ -235,7 +235,7 @@ msgstr ""
"BENUTZEN SIE DIE DURCH DIESES PROGRAMM ERZEUGTEN DATEN NICHT!\n"
"\n"
-#: cipher/rndlinux.c:116
+#: cipher/rndlinux.c:154
#, c-format
msgid ""
"\n"
@@ -247,7 +247,7 @@ msgstr ""
"Arbeiten durch, damit das Betriebssystem weitere Entropie sammeln kann!\n"
"(Es werden noch %d Byte benötigt.)\n"
-#: g10/g10.c:159
+#: g10/g10.c:158
msgid ""
"@Commands:\n"
" "
@@ -255,123 +255,123 @@ msgstr ""
"@Kommandos:\n"
" "
-#: g10/g10.c:162
+#: g10/g10.c:161
msgid "|[file]|make a signature"
msgstr "|[file]|Eine Unterschrift erzeugen"
-#: g10/g10.c:163
+#: g10/g10.c:162
msgid "|[file]|make a clear text signature"
msgstr "|[file]|Eine Klartextunterschrift erzeugen"
-#: g10/g10.c:164
+#: g10/g10.c:163
msgid "make a detached signature"
msgstr "Eine abgetrennte Unterschrift erzeugen"
-#: g10/g10.c:165
+#: g10/g10.c:164
msgid "encrypt data"
msgstr "Daten verschlüsseln"
-#: g10/g10.c:166
+#: g10/g10.c:165
msgid "encryption only with symmetric cipher"
msgstr "Daten nur symmetrisch verschlüsseln"
-#: g10/g10.c:167
+#: g10/g10.c:166
msgid "store only"
msgstr "Nur speichern"
-#: g10/g10.c:168
+#: g10/g10.c:167
msgid "decrypt data (default)"
msgstr "Daten entschlüsseln (Voreinstellung)"
-#: g10/g10.c:169
+#: g10/g10.c:168
msgid "verify a signature"
msgstr "Signatur prüfen"
-#: g10/g10.c:171
+#: g10/g10.c:170
msgid "list keys"
msgstr "Liste der Schlüssel"
-#: g10/g10.c:172
+#: g10/g10.c:171
msgid "list keys and signatures"
msgstr "Liste der Schlüssel und ihrer Signaturen"
-#: g10/g10.c:173
+#: g10/g10.c:172
msgid "check key signatures"
msgstr "Signaturen der Schlüssel prüfen"
-#: g10/g10.c:174
+#: g10/g10.c:173
msgid "list keys and fingerprints"
msgstr "Liste der Schlüssel und ihrer \"Fingerabdrücke\""
-#: g10/g10.c:175
+#: g10/g10.c:174
msgid "list secret keys"
msgstr "Liste der geheimen Schlüssel"
-#: g10/g10.c:177
+#: g10/g10.c:176
msgid "generate a new key pair"
msgstr "Ein neues Schlüsselpaar erzeugen"
-#: g10/g10.c:179
+#: g10/g10.c:178
msgid "remove key from the public keyring"
msgstr "Schlüssel entfernen"
-#: g10/g10.c:181
+#: g10/g10.c:180
msgid "sign or edit a key"
msgstr "Unterschreiben oder Bearbeiten eines Schlüssels"
-#: g10/g10.c:182
+#: g10/g10.c:181
msgid "generate a revocation certificate"
msgstr "Ein Schlüsselwiderruf-Zertifikat erzeugen"
-#: g10/g10.c:184
+#: g10/g10.c:183
msgid "export keys"
msgstr "Schlüssel exportieren"
-#: g10/g10.c:187
+#: g10/g10.c:185
msgid "import/merge keys"
msgstr "Schlüssel importieren/kombinieren"
-#: g10/g10.c:189
+#: g10/g10.c:187
msgid "list only the sequence of packets"
msgstr "Lediglich die Struktur der Datenpackete anzeigen"
-#: g10/g10.c:192
+#: g10/g10.c:190
msgid "export the ownertrust values"
msgstr "Exportieren der \"Owner trust\" Werte"
-#: g10/g10.c:194
+#: g10/g10.c:192
msgid "import ownertrust values"
msgstr "Importieren der \"Owner trust\" Werte"
-#: g10/g10.c:196
+#: g10/g10.c:194
msgid "|[NAMES]|update the trust database"
msgstr "|[NAMES]|Ändern der \"Trust\"-Datenbank"
-#: g10/g10.c:198
+#: g10/g10.c:196
msgid "|[NAMES]|check the trust database"
msgstr "|[NAMES]|Überprüfen der \"Trust\"-Datenbank"
-#: g10/g10.c:199
+#: g10/g10.c:197
msgid "fix a corrupted trust database"
msgstr "Reparieren einer beschädigten \"Trust\"-Datenbank"
-#: g10/g10.c:200
+#: g10/g10.c:198
msgid "De-Armor a file or stdin"
msgstr "Datei oder stdin von der ASCII-Hülle befreien"
-#: g10/g10.c:201
+#: g10/g10.c:199
msgid "En-Armor a file or stdin"
msgstr "Datei oder stdin in eine ASCII-Hülle einpacken"
-#: g10/g10.c:202
+#: g10/g10.c:200
msgid "|algo [files]|print message digests"
msgstr "|algo [files]|Message-Digests für die Dateien ausgeben"
-#: g10/g10.c:203
+#: g10/g10.c:201
msgid "print all message digests"
msgstr "Message-Digests für die Eingabedaten ausgeben"
-#: g10/g10.c:210
+#: g10/g10.c:208
msgid ""
"@\n"
"Options:\n"
@@ -381,141 +381,140 @@ msgstr ""
"Optionen:\n"
" "
-#: g10/g10.c:212
+#: g10/g10.c:210
msgid "create ascii armored output"
msgstr "Ausgabe mit ASCII-Hülle versehen"
-#: g10/g10.c:214
+#: g10/g10.c:212
msgid "use this user-id to sign or decrypt"
msgstr "Mit dieser User-ID signieren"
-#: g10/g10.c:215
+#: g10/g10.c:213
msgid "use this user-id for encryption"
msgstr "Verschlüsseln für diese User-ID"
-#: g10/g10.c:216
+#: g10/g10.c:214
msgid "|N|set compress level N (0 disables)"
msgstr "Kompressionsstufe auf N setzen (0 = keine Kompr.)"
-#: g10/g10.c:218
+#: g10/g10.c:216
msgid "use canonical text mode"
msgstr "Textmodus benutzen"
-#: g10/g10.c:220
+#: g10/g10.c:218
msgid "use as output file"
msgstr "Als Ausgabedatei benutzen"
-#: g10/g10.c:221
+#: g10/g10.c:219
msgid "verbose"
msgstr "Detaillierte Informationen"
-#: g10/g10.c:222
+#: g10/g10.c:220
msgid "be somewhat more quiet"
msgstr "Etwas weniger Infos"
-#: g10/g10.c:223
+#: g10/g10.c:221
msgid "force v3 signatures"
msgstr "v3 Signaturen erzwingen"
#. { oDryRun, "dry-run", 0, N_("do not make any changes") },
-#: g10/g10.c:225
+#: g10/g10.c:223
msgid "batch mode: never ask"
msgstr "Stapelmodus: Keine Abfragen"
-#: g10/g10.c:226
+#: g10/g10.c:224
msgid "assume yes on most questions"
msgstr "\"Ja\" als Standardantwort annehmen"
-#: g10/g10.c:227
+#: g10/g10.c:225
msgid "assume no on most questions"
msgstr "\"Nein\" als Standardantwort annehmen"
-#: g10/g10.c:228
+#: g10/g10.c:226
msgid "add this keyring to the list of keyrings"
msgstr "Als öffentlichen Schlüsselbund mitbenutzen"
-#: g10/g10.c:229
+#: g10/g10.c:227
msgid "add this secret keyring to the list"
msgstr "Als geheimen Schlüsselbund mitbenutzen"
-#: g10/g10.c:230
+#: g10/g10.c:228
msgid "|NAME|use NAME as default secret key"
msgstr "|NAME|NAME als voreingestellten Schlüssel benutzen"
-#: g10/g10.c:231
-#, fuzzy
+#: g10/g10.c:229
msgid "|NAME|set terminal charset to NAME"
msgstr "|NAME|Terminalzeichensatz NAME benutzen"
-#: g10/g10.c:232
+#: g10/g10.c:230
msgid "read options from file"
msgstr "Optionen aus der Datei lesen"
-#: g10/g10.c:234
+#: g10/g10.c:232
msgid "set debugging flags"
msgstr "Debug-Flags einschalten"
-#: g10/g10.c:235
+#: g10/g10.c:233
msgid "enable full debugging"
msgstr "Alle Debug-Flags einschalten"
-#: g10/g10.c:236
+#: g10/g10.c:234
msgid "|FD|write status info to this FD"
msgstr "|FD|Statusinfo auf FD (Dateihandle) ausgeben"
-#: g10/g10.c:237
+#: g10/g10.c:235
msgid "do not write comment packets"
msgstr "Keine Kommentarpakete schreiben"
-#: g10/g10.c:238
+#: g10/g10.c:236
msgid "(default is 1)"
msgstr "Benötigte Vollvertrauen (Voreinstellung 1)"
-#: g10/g10.c:239
+#: g10/g10.c:237
msgid "(default is 3)"
msgstr "Benötigte Teilvertrauen (Voreinstellung 3)"
-#: g10/g10.c:241
+#: g10/g10.c:239
msgid "|KEYID|ulimately trust this key"
-msgstr ""
+msgstr "|KEYID|Diesem Schlüssel uneingeschränkt vertrauen"
-#: g10/g10.c:242
+#: g10/g10.c:240
msgid "|FILE|load extension module FILE"
msgstr "|FILE|Erweiterungsmodul DATEI laden"
-#: g10/g10.c:243
+#: g10/g10.c:241
msgid "emulate the mode described in RFC1991"
msgstr "Den in RFC1991 beschriebenen Modus nachahmen"
-#: g10/g10.c:244
+#: g10/g10.c:242
msgid "|N|use passphrase mode N"
-msgstr "|N|Verwenden der \"Passphrase\"-Methode N"
+msgstr "|N|Verwenden des Mantra-Modus N"
-#: g10/g10.c:246
+#: g10/g10.c:244
msgid "|NAME|use message digest algorithm NAME for passphrases"
-msgstr "|NAME|Das Hashverfahren NAME f. \"Passphrase\" benutzen"
+msgstr "|NAME|Das Hashverfahren NAME für Mantras benutzen"
-#: g10/g10.c:248
+#: g10/g10.c:246
msgid "|NAME|use cipher algorithm NAME for passphrases"
-msgstr "|NAME|Das Verschlü.verfahren NAME f. \"Passphrase\" benutzen"
+msgstr "|NAME|Das Verschlü.verfahren NAME für Mantras benutzen"
-#: g10/g10.c:250
+#: g10/g10.c:248
msgid "|NAME|use cipher algorithm NAME"
msgstr "|NAME|Das Verschlü.verfahren NAME benutzen"
-#: g10/g10.c:251
+#: g10/g10.c:249
msgid "|NAME|use message digest algorithm NAME"
msgstr "|NAME|Das Hashverfahren NAME benutzen"
-#: g10/g10.c:252
+#: g10/g10.c:250
msgid "|N|use compress algorithm N"
msgstr "|N|Die Komprimierverfahren N benutzen"
-#: g10/g10.c:253
+#: g10/g10.c:251
msgid "throw keyid field of encrypted packets"
msgstr "entferne die AbsenderI-ID verschlüsselter Pakete"
-#: g10/g10.c:261
+#: g10/g10.c:259
msgid ""
"@\n"
"Examples:\n"
@@ -535,19 +534,19 @@ msgstr ""
" --list-keys [Namen] Schlüssel anzeigen\n"
" --fingerprint [Namen] \"Fingerabdrücke\" anzeigen\n"
-#: g10/g10.c:339
+#: g10/g10.c:337
msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
msgstr "Berichte über Wanzen (Programmfehler) bitte an <gnupg-bugs@gnu.org>.\n"
-#: g10/g10.c:344
+#: g10/g10.c:342
msgid "Usage: gpgm [options] [files] (-h for help)"
-msgstr "Aufruf: gpgm [Optionen] [Dateien] (-h für Hilfe)"
+msgstr "Syntax: gpgm [Optionen] [Dateien] (-h für Hilfe)"
-#: g10/g10.c:346
+#: g10/g10.c:344
msgid "Usage: gpg [options] [files] (-h for help)"
msgstr "Aufruf: gpg [Optionen] [Dateien] (-h für Hilfe)"
-#: g10/g10.c:351
+#: g10/g10.c:349
msgid ""
"Syntax: gpgm [options] [files]\n"
"GnuPG maintenance utility\n"
@@ -555,7 +554,7 @@ msgstr ""
"Syntax: gpgm [options] [files]\n"
"GnuPG Wartungs-Hilfsprogramm\n"
-#: g10/g10.c:354
+#: g10/g10.c:352
msgid ""
"Syntax: gpg [options] [files]\n"
"sign, check, encrypt or decrypt\n"
@@ -565,7 +564,7 @@ msgstr ""
"Signieren, prüfen, verschlüsseln, entschlüsseln\n"
"Die voreingestellte Operation ist abhängig von den Eingabedaten\n"
-#: g10/g10.c:360
+#: g10/g10.c:358
msgid ""
"\n"
"Supported algorithms:\n"
@@ -573,153 +572,161 @@ msgstr ""
"\n"
"Unterstützte Verfahren:\n"
-#: g10/g10.c:435
+#: g10/g10.c:433
msgid "usage: gpgm [options] "
msgstr "Aufruf: gpgm [Optionen] "
-#: g10/g10.c:437
+#: g10/g10.c:435
msgid "usage: gpg [options] "
msgstr "Aufruf: gpg [Optionen] "
-#: g10/g10.c:478
+#: g10/g10.c:476
msgid "conflicting commands\n"
msgstr "Widersprüchliche Kommandos\n"
-#: g10/g10.c:616
+#: g10/g10.c:614
#, c-format
msgid "NOTE: no default option file '%s'\n"
msgstr "Hinweis: Keine voreingestellte Optionendatei '%s' vorhanden\n"
-#: g10/g10.c:620
+#: g10/g10.c:618
#, c-format
msgid "option file '%s': %s\n"
msgstr "Optionendatei '%s': %s\n"
-#: g10/g10.c:627
+#: g10/g10.c:625
#, c-format
msgid "reading options from '%s'\n"
msgstr "Optionen werden aus '%s' gelesen\n"
-#: g10/g10.c:776
+#: g10/g10.c:773
#, c-format
msgid "%s is not a valid character set\n"
msgstr "%s ist kein gültiger Zeichensatz.\n"
-#: g10/g10.c:810 g10/g10.c:822
+#: g10/g10.c:807 g10/g10.c:819
msgid "selected cipher algorithm is invalid\n"
msgstr "Das ausgewählte Verschlüsslungsverfahren ist ungültig\n"
-#: g10/g10.c:816 g10/g10.c:828
+#: g10/g10.c:813 g10/g10.c:825
msgid "selected digest algorithm is invalid\n"
msgstr "Das ausgewählte Hashverfahren ist ungültig\n"
-#: g10/g10.c:831
+#: g10/g10.c:828
#, c-format
msgid "compress algorithm must be in range %d..%d\n"
msgstr "Das Komprimierverfahren muß im Bereich %d bis %d liegen\n"
-#: g10/g10.c:833
+#: g10/g10.c:830
msgid "completes-needed must be greater than 0\n"
msgstr "completes-needed müssen größer als 0 sein\n"
-#: g10/g10.c:835
+#: g10/g10.c:832
msgid "marginals-needed must be greater than 1\n"
msgstr "marginals-needed müssen größer als 1 sein\n"
-#: g10/g10.c:837
+#: g10/g10.c:834
msgid "max-cert-depth must be in range 1 to 255\n"
-msgstr ""
+msgstr "max-cert-depth muß im Bereich 1 bis 255 liegen\n"
-#: g10/g10.c:840
+#: g10/g10.c:837
msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
msgstr "Hinweis: Vom \"simple S2K\"-Modus (0) ist strikt abzuraten\n"
-#: g10/g10.c:844
+#: g10/g10.c:841
msgid "invalid S2K mode; must be 0, 1 or 3\n"
msgstr "ungültiger \"simple S2K\"-Modus; Wert muß 0, 1 oder 3 sein\n"
-#: g10/g10.c:927
+#: g10/g10.c:924
#, c-format
msgid "failed to initialize the TrustDB: %s\n"
msgstr "Die Trust-DB kann nicht initialisiert werden: %s\n"
-#: g10/g10.c:933
+#: g10/g10.c:930
msgid "--store [filename]"
msgstr "--store [Dateiname]"
-#: g10/g10.c:941
+#: g10/g10.c:938
msgid "--symmetric [filename]"
msgstr "--symmetric [Dateiname]"
-#: g10/g10.c:949
+#: g10/g10.c:946
msgid "--encrypt [filename]"
msgstr "--encrypt [Dateiname]"
-#: g10/g10.c:962
+#: g10/g10.c:959
msgid "--sign [filename]"
msgstr "--sign [Dateiname]"
-#: g10/g10.c:975
+#: g10/g10.c:972
msgid "--sign --encrypt [filename]"
msgstr "--sign --encrypt [Dateiname]"
-#: g10/g10.c:989
+#: g10/g10.c:986
msgid "--clearsign [filename]"
msgstr "--clearsign [Dateiname]"
-#: g10/g10.c:1001
+#: g10/g10.c:998
msgid "--decrypt [filename]"
msgstr "--decrypt [Dateiname]"
-#: g10/g10.c:1010
+#: g10/g10.c:1007
msgid "--edit-key username [commands]"
msgstr "--edit-key Username [Befehle]"
-#: g10/g10.c:1026
+#: g10/g10.c:1023
msgid "--delete-secret-key username"
msgstr "--delete-secret-key Username"
-#: g10/g10.c:1029
+#: g10/g10.c:1026
msgid "--delete-key username"
msgstr "--delete-key Benutzername"
-#: g10/encode.c:216 g10/g10.c:1052 g10/sign.c:301
+#: g10/encode.c:216 g10/g10.c:1049 g10/sign.c:301
#, c-format
msgid "can't open %s: %s\n"
msgstr "'%s' kann nicht geöffnet werden: %s\n"
-#: g10/g10.c:1063
+#: g10/g10.c:1060
msgid "-k[v][v][v][c] [userid] [keyring]"
msgstr "-k[v][v][v][c] [Benutzername] [Keyring]"
-#: g10/g10.c:1120
+#: g10/g10.c:1116
#, c-format
msgid "dearmoring failed: %s\n"
msgstr "Entfernen der ASCII-Hülle ist fehlgeschlagen: %s\n"
-#: g10/g10.c:1128
+#: g10/g10.c:1124
#, c-format
msgid "enarmoring failed: %s\n"
msgstr "Anbringen der ASCII-Hülle ist fehlgeschlagen: %s\n"
-#: g10/g10.c:1194
+#: g10/g10.c:1190
#, c-format
msgid "invalid hash algorithm '%s'\n"
msgstr "Ungültiges Hashverfahren '%s'\n"
-#: g10/g10.c:1273
+#: g10/g10.c:1269
msgid "[filename]"
msgstr "[Dateiname]"
-#: g10/g10.c:1277
+#: g10/g10.c:1273
msgid "Go ahead and type your message ...\n"
-msgstr ""
+msgstr "Auf geht's - Botschaft eintippen ...\n"
-#: g10/decrypt.c:59 g10/g10.c:1280 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1276 g10/verify.c:66
#, c-format
msgid "can't open '%s'\n"
msgstr "'%s' kann nicht geöffnet werden\n"
+#: g10/g10.c:1325
+msgid ""
+"RSA keys are deprecated; please consider creating a new key and use this key "
+"in the future\n"
+msgstr ""
+"RSA Schlüssel sind nicht erwünscht; bitte denken Sie darüber nach, einen\n"
+"neuen Schlüssel zu erzeugen und diesen in Zukunft zu benutzen\n"
+
#: g10/armor.c:344 g10/armor.c:391
msgid "armor header: "
msgstr "ASCII-Hülle: "
@@ -835,9 +842,9 @@ msgid ""
"can assign some missing owner trust values.\n"
"\n"
msgstr ""
-"Ein gültiger Trust Path konnte für diesen Key nicht gefunden werden.\n"
+"Für diesen Schlüssel konnte kein gültiger \"Trust Path\" gefunden werden.\n"
"Mal sehen, ob wir sonst irgendwie ein paar fehlende \"Owner trust\" Werte \n"
-"zuordnen können.\n"
+"ermitteln können.\n"
"\n"
#: g10/pkclist.c:219
@@ -845,7 +852,7 @@ msgid ""
"No path leading to one of our keys found.\n"
"\n"
msgstr ""
-"Kein Pfad führte zu einen von unseren Schlüsseln.\n"
+"Kein Pfad führt zu einen unserer Schlüsseln.\n"
"\n"
#: g10/pkclist.c:221
@@ -891,17 +898,19 @@ msgid "%08lX: We do NOT trust this key\n"
msgstr "%08lX: Wir haben KEIN Vertrauen zu diesem Schlüssel!\n"
#: g10/pkclist.c:294
-#, fuzzy, c-format
+#, c-format
msgid ""
"%08lX: It is not sure that this key really belongs to the owner\n"
"but it is accepted anyway\n"
msgstr ""
-"%08lX: It is not sure taht this key really belongs to the owner\n"
-"but it is accepted anyway\n"
+"%08lX: Es ist nicht sicher, daß dieser Schlüssel wirklich dem vorgeblichen\n"
+"Besitzer gehört, aber er wird trotzdem akzeptiert\n"
#: g10/pkclist.c:300
msgid "This key probably belongs to the owner\n"
-msgstr "Dieser Schlüssel gehört wahrscheinlich dem Besitzer\n"
+msgstr ""
+"Dieser Schlüssel gehört uns (alldieweil wir den geheimen Schlüssel dazu "
+"haben)\n"
#: g10/pkclist.c:305
msgid "This key belongs to us\n"
@@ -1017,8 +1026,8 @@ msgstr " (%d) DSA und ElGamal (voreingestellt)\n"
#: g10/keygen.c:391
#, c-format
-msgid " (%d) DSA (sign only)\n"
-msgstr " (%d) DSA (nur signieren)\n"
+msgid " (%d) ElGamal (sign and encrypt)\n"
+msgstr " (%d) ElGamal (signieren/beglaubigen und verschlüsseln)\n"
#: g10/keygen.c:393
#, c-format
@@ -1027,28 +1036,23 @@ msgstr " (%d) ElGamal (nur verschlüsseln)\n"
#: g10/keygen.c:394
#, c-format
-msgid " (%d) ElGamal (sign and encrypt)\n"
-msgstr " (%d) ElGamal (signieren und verschlüsseln)\n"
+msgid " (%d) DSA (sign only)\n"
+msgstr " (%d) DSA (nur signieren/beglaubigen)\n"
-#: g10/keygen.c:396
+#: g10/keygen.c:395
#, c-format
msgid " (%d) ElGamal in a v3 packet\n"
msgstr " (%d) ElGamal in einem v3-Paket\n"
-#: g10/keygen.c:401
+#: g10/keygen.c:399
msgid "Your selection? "
msgstr "Ihre Auswahl? "
-#: g10/keygen.c:411
-#, fuzzy
-msgid "Do you really want to create a sign and encrypt key? "
-msgstr "Möchten Sie die ausgewählten Schlüssel wirklich entfernen? "
-
-#: g10/keygen.c:432
+#: g10/keygen.c:425
msgid "Invalid selection.\n"
msgstr "Ungültige Auswahl.\n"
-#: g10/keygen.c:444
+#: g10/keygen.c:437
#, c-format
msgid ""
"About to generate a new %s keypair.\n"
@@ -1057,23 +1061,23 @@ msgid ""
" highest suggested keysize is 2048 bits\n"
msgstr ""
"Es wird ein neues %s Schlüsselpaar erzeugt.\n"
-" kleinste Schlüssellänge ist 768 Bits\n"
-" standard Schlüssellänge ist 1024 Bits\n"
-" größte sinnvolle Schlüssellänge ist 2048 Bits\n"
+" kleinste Schlüssellänge ist 768 Bit\n"
+" standard Schlüssellänge ist 1024 Bit\n"
+" größte sinnvolle Schlüssellänge ist 2048 Bit\n"
-#: g10/keygen.c:451
+#: g10/keygen.c:444
msgid "What keysize do you want? (1024) "
msgstr "Welche Schlüssellänge wünschen Sie? (1024) "
-#: g10/keygen.c:456
+#: g10/keygen.c:449
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:458
+#: g10/keygen.c:451
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:461
+#: g10/keygen.c:454
msgid ""
"Keysizes larger than 2048 are not suggested because\n"
"computations take REALLY long!\n"
@@ -1081,11 +1085,11 @@ msgstr ""
"Schlüssellängen größer als 2048 werden nicht empfohlen, da die\n"
"Berechnungen dann WIRKLICH lange brauchen!\n"
-#: g10/keygen.c:464
+#: g10/keygen.c:457
msgid "Are you sure that you want this keysize? "
msgstr "Sind Sie sicher, daß Sie diese Schlüssellänge wünschen? "
-#: g10/keygen.c:465
+#: g10/keygen.c:458
msgid ""
"Okay, but keep in mind that your monitor and keyboard radiation is also very "
"vulnerable to attacks!\n"
@@ -1093,21 +1097,21 @@ 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:473
+#: g10/keygen.c:466
msgid "Do you really need such a large keysize? "
msgstr "Brauchen Sie wirklich einen derartig langen Schlüssel? "
-#: g10/keygen.c:479
+#: g10/keygen.c:472
#, c-format
msgid "Requested keysize is %u bits\n"
msgstr "Die verlangte Schlüssellänge beträgt %u Bit\n"
-#: g10/keygen.c:482 g10/keygen.c:486
+#: g10/keygen.c:475 g10/keygen.c:479
#, c-format
msgid "rounded up to %u bits\n"
msgstr "aufgerundet auf %u Bit\n"
-#: g10/keygen.c:499
+#: g10/keygen.c:492
msgid ""
"Please specify how long the key should be valid.\n"
" 0 = key does not expire\n"
@@ -1123,29 +1127,29 @@ msgstr ""
" <n>m = Schlüssel verfällt nach n Monaten\n"
" <n>y = Schlüssel verfällt nach n Jahren\n"
-#: g10/keygen.c:514
+#: g10/keygen.c:507
msgid "Key is valid for? (0) "
msgstr "Der Schlüssel bleibt wie lange gültig? (0) "
-#: g10/keygen.c:525
+#: g10/keygen.c:518
msgid "invalid value\n"
msgstr "Ungültiger Wert.\n"
-#: g10/keygen.c:530
+#: g10/keygen.c:523
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:536
+#: g10/keygen.c:529
#, c-format
msgid "Key expires at %s\n"
msgstr "Der Schlüssel verfällt am %s\n"
-#: g10/keygen.c:542
+#: g10/keygen.c:535
msgid "Is this correct (y/n)? "
msgstr "Ist dies richtig? (j/n) "
-#: g10/keygen.c:584
+#: g10/keygen.c:577
msgid ""
"\n"
"You need a User-ID to identify your key; the software constructs the user "
@@ -1161,39 +1165,39 @@ msgstr ""
" \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>\"\n"
"\n"
-#: g10/keygen.c:595
+#: g10/keygen.c:588
msgid "Real name: "
msgstr "Ihr Name (\"Vorname Nachname\"): "
-#: g10/keygen.c:599
+#: g10/keygen.c:592
msgid "Invalid character in name\n"
msgstr "Ungültiges Zeichen im Namen\n"
-#: g10/keygen.c:601
+#: g10/keygen.c:594
msgid "Name may not start with a digit\n"
msgstr "Der Name darf nicht mit einer Ziffer beginnen.\n"
-#: g10/keygen.c:603
+#: g10/keygen.c:596
msgid "Name must be at least 5 characters long\n"
msgstr "Der Name muß min. 5 Zeichen lang sein.\n"
-#: g10/keygen.c:611
+#: g10/keygen.c:604
msgid "Email address: "
msgstr "E-Mail-Adresse: "
-#: g10/keygen.c:623
+#: g10/keygen.c:616
msgid "Not a valid email address\n"
-msgstr "E-Mail-Adresse is ungültig\n"
+msgstr "Diese E-Mail-Adresse ist ungültig\n"
-#: g10/keygen.c:631
+#: g10/keygen.c:624
msgid "Comment: "
msgstr "Kommentar: "
-#: g10/keygen.c:637
+#: g10/keygen.c:630
msgid "Invalid character in comment\n"
msgstr "Ungültiges Zeichen im Kommentar.\n"
-#: g10/keygen.c:657
+#: g10/keygen.c:650
#, c-format
msgid ""
"You selected this USER-ID:\n"
@@ -1204,40 +1208,40 @@ msgstr ""
" \"%s\"\n"
"\n"
-#: g10/keygen.c:660
+#: g10/keygen.c:653
msgid "NnCcEeOoQq"
-msgstr ""
+msgstr "NnKkEeFfBb"
-#: g10/keygen.c:670
+#: g10/keygen.c:663
msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
-msgstr "Ändern: N=Name, C=Kommentar, E=E-Mail, O=Okay oder Q=Beenden? "
+msgstr "Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(B)eenden? "
-#: g10/keygen.c:722
+#: g10/keygen.c:715
msgid ""
"You need a Passphrase to protect your secret key.\n"
"\n"
msgstr ""
-"Sie benötigen eine \"passphrase\", um den geheimen Schlüssel zu schützen.\n"
+"Sie benötigen ein Mantra, um den geheimen Schlüssel zu schützen.\n"
"\n"
-#: g10/keyedit.c:389 g10/keygen.c:730
+#: g10/keyedit.c:389 g10/keygen.c:723
msgid "passphrase not correctly repeated; try again.\n"
-msgstr "\"passphrase\" nicht richtig wiederholt; noch einmal.\n"
+msgstr "Mantra wurde nicht richtig wiederholt; noch einmal versuchen.\n"
-#: g10/keygen.c:736
+#: g10/keygen.c:729
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"
"using this program with the option \"--edit-key\".\n"
"\n"
msgstr ""
-"Sie möchten keine \"passphrase\" - Dies ist *nicht* zu empfehlen!\n"
-"Es ist trotzdem möglich. Sie können Ihre \"phassphrase\" jederzeit\n"
+"Sie möchten kein Mantra - Dies ist *nicht* zu empfehlen!\n"
+"Es ist trotzdem möglich. Sie können Ihr Mantra jederzeit\n"
"ändern, indem sie dieses Programm mit dem Kommando \"--edit-key\"\n"
"aufrufen.\n"
"\n"
-#: g10/keygen.c:757
+#: g10/keygen.c:750
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"
@@ -1248,34 +1252,34 @@ msgstr ""
"unterstützen, indem Sie z.B. in einem anderen Fenster/Konsole irgendetwas\n"
"tippen oder irgendwelche anderen Programme benutzen.\n"
-#: g10/keygen.c:827
+#: g10/keygen.c:820
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:835
+#: g10/keygen.c:828
msgid "DSA keypair will have 1024 bits.\n"
msgstr "Der DSA Schlüssel wird 1024 Bits haben.\n"
-#: g10/keygen.c:841
+#: g10/keygen.c:834
msgid "Key generation cancelled.\n"
-msgstr "Schlüsselerzeugung abgebrochen: %s\n"
+msgstr "Schlüsselerzeugung abgebrochen.\n"
-#: g10/keygen.c:851
+#: g10/keygen.c:844
#, c-format
msgid "writing public certificate to '%s'\n"
msgstr "schreiben des öffentlichen Schlüssels nach '%s'\n"
-#: g10/keygen.c:852
+#: g10/keygen.c:845
#, c-format
msgid "writing secret certificate to '%s'\n"
msgstr "schreiben des geheimen Schlüssels nach '%s'\n"
-#: g10/keygen.c:929
+#: g10/keygen.c:922
msgid "public and secret key created and signed.\n"
msgstr "Öffentlichen und geheimen Schlüssel erzeugt und signiert.\n"
-#: g10/keygen.c:931
+#: g10/keygen.c:924
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"
@@ -1284,12 +1288,12 @@ msgstr ""
"werden kann. Sie können aber mit dem Kommando \"--add-key\" einen\n"
"Zweitschlüssel zu diesem Schlüssel hinzufügen.\n"
-#: g10/keygen.c:945 g10/keygen.c:1030
+#: g10/keygen.c:938 g10/keygen.c:1023
#, c-format
msgid "Key generation failed: %s\n"
msgstr "Schlüsselerzeugung fehlgeschlagen: %s\n"
-#: g10/keygen.c:1008
+#: g10/keygen.c:1001
msgid "Really create? "
msgstr "Wirklich erzeugen? "
@@ -1302,7 +1306,7 @@ msgstr "%s: kann nicht geöffnet werden: %s\n"
#: g10/encode.c:107
#, c-format
msgid "error creating passphrase: %s\n"
-msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
+msgstr "Fehler beim Erzeugen des Mantras: %s\n"
#: g10/encode.c:155 g10/encode.c:269
#, c-format
@@ -1315,42 +1319,27 @@ msgid "reading from '%s'\n"
msgstr "Lesen von '%s'\n"
#: g10/encode.c:397
-#, fuzzy, c-format
-msgid "%s/%s encrypted for: %s\n"
+#, c-format
+msgid "%s encrypted for: %s\n"
msgstr "%s verschlüsselt für: %s\n"
-#: g10/export.c:114
-#, fuzzy, c-format
-msgid "%s: user not found: %s\n"
-msgstr "%s: Benutzer nicht gefunden\n"
-
-#: g10/export.c:123
-#, fuzzy, c-format
-msgid "certificate read problem: %s\n"
-msgstr "User '%s' Leseproblem: %s\n"
-
-#: g10/export.c:132
-#, fuzzy, c-format
-msgid "key %08lX: not a rfc2440 key - skipped\n"
-msgstr "Schlüssel %08lX: geheimer, aber kein öffentlicher Schlüssel.\n"
-
-#: g10/export.c:174
+#: g10/export.c:162
msgid "WARNING: nothing exported\n"
msgstr "WARNUNG: Nichts exportiert\n"
#: g10/getkey.c:164
msgid "too many entries in pk cache - disabled\n"
-msgstr ""
+msgstr "zu viele Einträge im pk-Lager - abgeschaltet\n"
#: g10/getkey.c:263
msgid "too many entries in unk cache - disabled\n"
-msgstr ""
+msgstr "zu viele Einträge im unk-Lager - abgeschaltet\n"
#: g10/getkey.c:989
#, c-format
msgid "using secondary key %08lX instead of primary key %08lX\n"
msgstr ""
-"der Zweitschlüssel %08lX wird anstelle des Haptschlüssels %08lX verwendet\n"
+"der Zweitschlüssel %08lX wird anstelle des Hauptschlüssels %08lX verwendet\n"
#: g10/import.c:129 g10/trustdb.c:1166
#, c-format
@@ -1450,7 +1439,7 @@ msgstr "Schlüssel %08lX: Öffentlicher Schlüssel nicht gefunden: %s\n"
msgid "no default public keyring\n"
msgstr "Kein voreingestellter öffentlicher Schlüsselbund\n"
-#: g10/import.c:359 g10/openfile.c:105 g10/sign.c:205 g10/sign.c:569
+#: g10/import.c:359 g10/openfile.c:105 g10/sign.c:205 g10/sign.c:563
#, c-format
msgid "writing to '%s'\n"
msgstr "Schreiben nach '%s'\n"
@@ -1479,12 +1468,12 @@ msgstr "Schlüssel %08lX: Stimmt nicht mit unserer Kopie überein\n"
#, c-format
msgid "key %08lX: can't locate original keyblock: %s\n"
msgstr ""
-"Schlüssel %08lX: der lokale originale Keyblock wurde nicht gefunden: %s\n"
+"Schlüssel %08lX: der lokale originale Schlüsselblocks wurde nicht gefunden: %s\n"
#: g10/import.c:403 g10/import.c:601
#, c-format
msgid "key %08lX: can't read original keyblock: %s\n"
-msgstr "Schlüssel %08lX: Lesefehler im lokalen originalen Keyblock: %s\n"
+msgstr "Schlüssel %08lX: Lesefehler im lokalen originalen Schlüsselblocks: %s\n"
#: g10/import.c:420 g10/import.c:532 g10/import.c:636
msgid "writing keyblock\n"
@@ -1704,7 +1693,7 @@ msgid ""
"Enter the new passphrase for this secret key.\n"
"\n"
msgstr ""
-"Geben Sie die neue \"passphrase\" für diesen geheimen Schlüssel ein.\n"
+"Geben Sie das neue Mantra für diesen geheimen Schlüssel ein.\n"
"\n"
#: g10/keyedit.c:393
@@ -1712,7 +1701,7 @@ msgid ""
"You don't want a passphrase - this is probably a *bad* idea!\n"
"\n"
msgstr ""
-"Sie wollen keine \"passphrase\" - dies ist bestimmt *keine* gute Idee!\n"
+"Sie wollen kein Mantra - dies ist bestimmt *keine* gute Idee!\n"
"\n"
#: g10/keyedit.c:396
@@ -1721,7 +1710,7 @@ msgstr "Möchten Sie dies wirklich tun? "
#: g10/keyedit.c:455
msgid "moving a key signature to the correct place\n"
-msgstr ""
+msgstr "schiebe eine Beglaubigung an die richtige Stelle\n"
#: g10/keyedit.c:490
msgid "quit"
@@ -1881,7 +1870,7 @@ msgstr "passwd"
#: g10/keyedit.c:514
msgid "change the passphrase"
-msgstr "Die \"Passphrase\" ändern"
+msgstr "Das Mantra ändern"
#: g10/keyedit.c:515
msgid "trust"
@@ -1994,7 +1983,7 @@ msgstr "Ändern des Verfallsdatums des Hauptschlüssels.\n"
#: g10/keyedit.c:1250
msgid "You can't change the expiration date of a v3 key\n"
-msgstr ""
+msgstr "Sie können das Verfallsdatum eines v3-Schlüssels nicht ändern\n"
#: g10/keyedit.c:1266
msgid "No corresponding signature in secret ring\n"
@@ -2040,20 +2029,20 @@ msgstr "Ursprünglicher Dateiname='%.*s'\n"
#: g10/mainproc.c:833
msgid "signature verification suppressed\n"
-msgstr ""
+msgstr "Unterschriften-Überprüfung unterdrückt\n"
#: g10/mainproc.c:839
#, c-format
msgid "Signature made %.*s using %s key ID %08lX\n"
-msgstr "Signatur am %.*s mit %s Schlüssel %08lX erzeugt\n"
+msgstr "Unterschrieben am %.*s mit %s Schlüssel %08lX\n"
#: g10/mainproc.c:847
msgid "BAD signature from \""
-msgstr "FALSCHE Signatur von \""
+msgstr "FALSCHE Unterschrift von \""
#: g10/mainproc.c:848
msgid "Good signature from \""
-msgstr "Gültige Signatur von \""
+msgstr "Korrekte Unterschrift von \""
#: g10/mainproc.c:861
#, c-format
@@ -2066,7 +2055,7 @@ msgstr "Unterschrift nach alter (PGP 2.x) Art\n"
#: g10/mainproc.c:939
msgid "invalid root packet detected in proc_tree()\n"
-msgstr ""
+msgstr "ungültiges root-Paket in proc_tree() entdeckt\n"
#: g10/misc.c:88
#, c-format
@@ -2077,22 +2066,6 @@ msgstr "core-dump-Erzeugung kann nicht abgeschaltet werden: %s\n"
msgid "WARNING: Program may create a core file!\n"
msgstr "WARNUNG: Programm könnte einen core-dump schreiben!\n"
-#: g10/misc.c:198
-msgid "Experimental algorithms should not be used!\n"
-msgstr ""
-
-#: g10/misc.c:212
-msgid ""
-"RSA keys are deprecated; please consider creating a new key and use this key "
-"in the future\n"
-msgstr ""
-"RSA Schlüssel sind nicht erwünscht; bitte denken Sie darüber nach, einen "
-"neuen Schlüssel zu erzeugen und diesen in Zukunft zu benutzen\n"
-
-#: g10/misc.c:233
-msgid "This cipher algorithm is depreciated; please use a more standard one!\n"
-msgstr ""
-
#: g10/parse-packet.c:109
#, c-format
msgid "can't handle public key algorithm %d\n"
@@ -2105,7 +2078,7 @@ msgid ""
"user: \""
msgstr ""
"\n"
-"Sie benötigen eine \"passphrase\", um den geheimen Schlüssel zu entsperren.\n"
+"Sie benötigen ein Mantra, um den geheimen Schlüssel zu entsperren.\n"
"Benutzer: \""
#: g10/passphrase.c:150
@@ -2115,11 +2088,11 @@ msgstr "(%u-Bit %s Schlüssel, ID %08lX, erzeugt %s)\n"
#: g10/passphrase.c:174
msgid "Enter passphrase: "
-msgstr "Geben Sie die \"Passphrase\" ein: "
+msgstr "Geben Sie das Mantra ein: "
#: g10/passphrase.c:178
msgid "Repeat passphrase: "
-msgstr "Geben Sie die \"Passphrase\" nochmal ein: "
+msgstr "Geben Sie das Mantra nochmal ein: "
#: g10/plaintext.c:102
msgid "data not saved; use option \"--output\" to save it\n"
@@ -2132,7 +2105,7 @@ msgstr "Bitte geben Sie den Namen der Datendatei ein: "
#: g10/plaintext.c:236
msgid "reading stdin ...\n"
-msgstr ""
+msgstr "lese stdin ...\n"
#: g10/plaintext.c:299
#, c-format
@@ -2164,13 +2137,13 @@ msgstr "Schutzverfahren %d wird nicht unterstützt\n"
#: g10/seckey-cert.c:169
msgid "Invalid passphrase; please try again ...\n"
-msgstr "Ungültige \"passphrase\"; versuchen Sie's doch noch einmal ...\n"
+msgstr "Ungültiges Mantra; versuchen Sie's doch noch einmal ...\n"
-#: g10/seckey-cert.c:216
+#: g10/seckey-cert.c:215
msgid "WARNING: Weak key detected - please change passphrase again.\n"
msgstr ""
"WARNUNG: Unsicherer Schlüssel entdeckt -\n"
-" bitte die \"Passphrase\" nochmal eingeben.\n"
+" bitte das Mantra nochmal eingeben.\n"
#: g10/sig-check.c:155
msgid ""
@@ -2195,7 +2168,7 @@ msgstr "Hinweis: Schlüssel der Signatur ist verfallen am %s.\n"
msgid "%s signature from: %s\n"
msgstr "%s Unterschrift von: %s\n"
-#: g10/sign.c:200 g10/sign.c:564
+#: g10/sign.c:200 g10/sign.c:558
#, c-format
msgid "can't create %s: %s\n"
msgstr "%s kann nicht erzeugt werden: %s\n"
@@ -2266,7 +2239,7 @@ msgstr "%s: trust-db erzeugt\n"
#: g10/tdbio.c:506
#, c-format
msgid "%s: invalid trust-db\n"
-msgstr ""
+msgstr "%s: ungülte 'Trust'-Datenbank\n"
#: g10/tdbio.c:540
#, c-format
@@ -2315,70 +2288,70 @@ msgid "%s: invalid file version %d\n"
msgstr "%s: invalid file version %d\n"
#: g10/tdbio.c:1379
-#, fuzzy, c-format
+#, c-format
msgid "%s: error reading free record: %s\n"
-msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
+msgstr "%s: Fehler beim Lesen eines freien Satzes: %s\n"
#: g10/tdbio.c:1387
-#, fuzzy, c-format
+#, c-format
msgid "%s: error writing dir record: %s\n"
-msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
+msgstr "%s: Fehler beim Schreiben eines Verzeichnis-Satzes: %s\n"
#: g10/tdbio.c:1397
#, c-format
msgid "%s: failed to zero a record: %s\n"
-msgstr ""
+msgstr "%s: konnte einen Satz nicht Nullen: %s\n"
#: g10/tdbio.c:1427
#, c-format
msgid "%s: failed to append a record: %s\n"
-msgstr ""
+msgstr "%s: konnte Satz nicht anhängen: %s\n"
#: g10/trustdb.c:134
msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n"
msgstr ""
"Die \"Trust\"-Datenbank ist beschädigt; verwenden Sie \"gpgm "
-"--fix-trust-db\".\n"
+"--fix-trustdb\".\n"
#: g10/trustdb.c:147
#, c-format
msgid "trust record %lu, req type %d: read failed: %s\n"
-msgstr ""
+msgstr "trust record %lu, req type %d: read failed: %s\n"
#: g10/trustdb.c:162
#, c-format
msgid "trust record %lu, type %d: write failed: %s\n"
-msgstr ""
+msgstr "trust record %lu, type %d: write failed: %s\n"
#: g10/trustdb.c:176
-#, fuzzy, c-format
+#, c-format
msgid "trust record %lu: delete failed: %s\n"
-msgstr "Änderung des Geheimnises fehlgeschlagen: %s\n"
+msgstr "Vertrauenssatz %lu: löschen fehlgeschlagen: %s\n"
#: g10/trustdb.c:190
-#, fuzzy, c-format
+#, c-format
msgid "trust db: sync failed: %s\n"
-msgstr "Änderung der \"Trust-DB\" fehlgeschlagen: %s\n"
+msgstr "\"Trust-DB\": sync fehlgeschlagen: %s\n"
#: g10/trustdb.c:319
-#, fuzzy, c-format
+#, c-format
msgid "error reading dir record for LID %lu: %s\n"
-msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
+msgstr "Fehler beim Lesen des Dir-Satzes für LID %lu: %s\n"
#: g10/trustdb.c:326
#, c-format
msgid "lid %lu: expected dir record, got type %d\n"
-msgstr ""
+msgstr "lid %lu: Dir-Satz erwartet, aber es kam Typ %d\n"
#: g10/trustdb.c:331
#, c-format
msgid "no primary key for LID %lu\n"
-msgstr ""
+msgstr "Kein Hauptschlüssel für LID %lu\n"
#: g10/trustdb.c:336
-#, fuzzy, c-format
+#, c-format
msgid "error reading primary key for LID %lu: %s\n"
-msgstr "Fehler beim Erzeugen der \"Passphrase\": %s\n"
+msgstr "Fehler beim Lesen den Hauptschlüssels der LID %lu: %s\n"
#: g10/trustdb.c:412
#, c-format
@@ -2386,14 +2359,14 @@ msgid "chained sigrec %lu has a wrong owner\n"
msgstr "Verketteter Signatursatz %lu hat einen falschen Besitzer\n"
#: g10/trustdb.c:455
-#, fuzzy, c-format
+#, c-format
msgid "'%s' is not a valid long keyID\n"
-msgstr "%s ist kein gültiger Zeichensatz.\n"
+msgstr "'%s' ist keine gültige lange Schlüssel-ID\n"
#: g10/trustdb.c:490
-#, fuzzy, c-format
+#, c-format
msgid "key %08lX: no public key for trusted key - skipped\n"
-msgstr "Schlüssel %08lX: geheimer, aber kein öffentlicher Schlüssel.\n"
+msgstr "Schlüssel %08lX: kein öffentlicher Schüssel für vertrauenswürdigen Schlüssel - übersprungen\n"
#: g10/trustdb.c:499 g10/trustdb.c:557
#, c-format
@@ -2406,24 +2379,24 @@ msgid "key %08lX: query record failed\n"
msgstr "Schlüssel %08lX: Satzabfrage fehlgeschlagen\n"
#: g10/trustdb.c:509 g10/trustdb.c:572
-#, fuzzy, c-format
+#, c-format
msgid "key %08lX: already in trusted key table\n"
-msgstr "Schlüssel %08lX: Ist bereits im geheimen Schlüsseltabelle\n"
+msgstr "Schlüssel %08lX: Ist bereits in geheimer Schlüsseltabelle\n"
#: g10/trustdb.c:512 g10/trustdb.c:575
-#, fuzzy, c-format
+#, c-format
msgid "key %08lX: accepted as trusted key.\n"
-msgstr "Schlüssel %08lX: Akzeptiert als geheimer Schlüssel\n"
+msgstr "Schlüssel %08lX: Akzeptiert als vertrauenswürdiger Schlüssel.\n"
#: g10/trustdb.c:528
-#, fuzzy, c-format
+#, c-format
msgid "NOTE: secret key %08lX is NOT protected.\n"
-msgstr "Dieser Schlüssel ist nicht geschützt.\n"
+msgstr "HINWEIS: Geheimer Schlüssel %08lX ist NICHT geschützt.\n"
#: g10/trustdb.c:540
-#, fuzzy, c-format
+#, c-format
msgid "key %08lX: secret key without public key - skipped\n"
-msgstr "Schlüssel %08lX: geheimer, aber kein öffentlicher Schlüssel.\n"
+msgstr "Schlüssel %08lX: geheimer Schlüssel, aber ohne öffentlichen Schlüssel - übersprungen\n"
#: g10/trustdb.c:547
#, c-format
@@ -2500,7 +2473,7 @@ msgid ""
"# List of assigned trustvalues, created %s\n"
"# (Use \"gpgm --import-ownertrust\" to restore them)\n"
msgstr ""
-"# Liste der zugewisenen trustvalues, erzeugt am %s\n"
+"# Liste der zugewisenen \"trustvalues\", erzeugt am %s\n"
"# (Verwenden Sie \"gpgm --import-ownertrust\" um sie wieder einzuspielen)\n"
#: g10/trustdb.c:1131
@@ -2531,12 +2504,12 @@ msgstr "Fehler: Keine \"Owner trust\" Werte\n"
#: g10/trustdb.c:1209
#, c-format
msgid "LID %lu: changing trust from %u to %u\n"
-msgstr ""
+msgstr "LID %lu: Ändern des 'Trusts' von %u auf %u\n"
#: g10/trustdb.c:1212
#, c-format
msgid "LID %lu: setting trust to %u\n"
-msgstr ""
+msgstr "LID %lu: Setze 'Trust' auf %u\n"
#: g10/trustdb.c:1220
msgid "key not in trustdb, searching ring.\n"
@@ -2566,17 +2539,17 @@ msgstr "Fehler beim Auffinden des Verz.Satzes: %s\n"
#: g10/trustdb.c:1305
#, c-format
msgid "user '%s' not in trustdb - inserting\n"
-msgstr ""
+msgstr "User '%s' ist nich in der 'Trust'-Datenbank - wird eingefügt\n"
#: g10/trustdb.c:1308
#, c-format
msgid "failed to put '%s' into trustdb: %s\n"
-msgstr ""
+msgstr "konnte '%s' nicht in die 'Trust'-Datenbank hineintun: %s\n"
#: g10/trustdb.c:1355
#, c-format
msgid "%s: keyblock read problem: %s\n"
-msgstr "%s: keyblock Leseproblem: %s\n"
+msgstr "%s: Schlüsselblock Leseproblem: %s\n"
#: g10/trustdb.c:1369
#, c-format
@@ -2596,12 +2569,12 @@ msgstr "%s: In Ordnung\n"
#: g10/trustdb.c:1389
#, c-format
msgid "lid %lu: dir record w/o key - skipped\n"
-msgstr ""
+msgstr "lid %lu: Dir-Satz ohne Schlüssel - übergangen\n"
#: g10/trustdb.c:1402
#, c-format
msgid "lid %lu: keyblock not found: %s\n"
-msgstr "lid %lu: keyblock nicht gefunden: %s\n"
+msgstr "lid %lu: Schlüsselblock nicht gefunden: %s\n"
#: g10/trustdb.c:1411 g10/trustdb.c:1480
#, c-format
@@ -2661,12 +2634,12 @@ msgstr "\t%lu Schlüssel eingefügt\n"
#: g10/trustdb.c:1505
#, c-format
msgid "enumerate keyblocks failed: %s\n"
-msgstr "enumerate keyblocks fehlgeschlagen: %s\n"
+msgstr "enumerate Schlüsselblock fehlgeschlagen: %s\n"
#: g10/trustdb.c:1550
#, c-format
msgid "check_trust: search dir record failed: %s\n"
-msgstr ""
+msgstr "check_trust: Suche nach Dir-Satz fehlgeschlagen: %s\n"
#: g10/trustdb.c:1557
#, c-format
@@ -2697,12 +2670,12 @@ msgstr "Schlüssel %08lX.%lu: Vertrauensprüfung fehlgeschlagen: %s\n"
#: g10/trustdb.c:1753 g10/trustdb.c:1782 g10/trustdb.c:2521
msgid "WARNING: can't yet handle long pref records\n"
-msgstr ""
+msgstr "WARNUNG: Lange 'Pref'-Records können noch nicht benutzt werden\n"
#: g10/trustdb.c:1804
#, c-format
msgid "get_dir_record: search_record failed: %s\n"
-msgstr ""
+msgstr "get_dir_record: search_record fehlgeschlagen: %s\n"
#: g10/trustdb.c:1867
#, c-format
@@ -2807,7 +2780,7 @@ msgstr "Ungültige Eigenbeglaubigung"
#: g10/trustdb.c:2386
msgid "Valid user ID revocation skipped due to a newer self signature\n"
-msgstr ""
+msgstr "Gültiger User-ID-Widerruf ignoriert, da eine neuere Eigenbeglaubigung vorliegt\n"
#: g10/trustdb.c:2393
msgid "Valid user ID revocation\n"
@@ -2844,22 +2817,22 @@ msgstr "Ungültiges Zertifikat"
#: g10/trustdb.c:2696
#, c-format
msgid "uid %08lX.%lu/%02X%02X: has shadow dir %lu but is not yet marked.\n"
-msgstr ""
+msgstr "uid %08lX.%lu/%02X%02X: hat \"shadow-dir\" %lu, aber ist noch nicht markiert.\n"
#: g10/trustdb.c:2710
#, c-format
msgid "sig record %lu[%d] points to wrong record.\n"
-msgstr ""
+msgstr "Signatursatz %lu[%d] zeigt auf falschen Satz.\n"
#. that should never happen
#: g10/trustdb.c:2954
#, c-format
msgid "insert_trust_record: keyblock not found: %s\n"
-msgstr ""
+msgstr "insert_trust_record: Schlüsselblock nicht gefunden: %s\n"
#: g10/trustdb.c:2972
msgid "did not use primary key for insert_trust_record()\n"
-msgstr ""
+msgstr "Für insert_trust_record() wurde nicht der Hauptschlüssel benutzt\n"
#: g10/ringedit.c:293
#, c-format
@@ -2956,141 +2929,211 @@ msgstr ""
#. begin of list
#: g10/helptext.c:45
+#"It's up to you to assign a value here; this value will never be exported\n"
+#"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."
msgid "edit_ownertrust.value"
msgstr ""
+"SIE müssen hier einen Wert eingeben. Dieser Wert wird niemals an eine Dritte\n"
+"weitergegeben (exportiert) werden. Wir brauchen ihn zum Aufbau des\n"
+"\"web-of-trust\", Er hat nichts mit dem (stillschweigend aufgebautem)\n"
+"\"web-of-certificates\" zu tun."
#: g10/helptext.c:51
+#"If you want to use this revoked key anyway, answer \"yes\"."
msgid "revoked_key.override"
msgstr ""
+"Wenn Sie diesen widerrufenen Schlüssel trotzdem benutzen wollen,\n"
+"so antworten Sie mit \"ja\" oder schweigen für immer."
#: g10/helptext.c:55
+#"If you want to use this untrusted key anyway, answer \"yes\"."
msgid "untrusted_key.override"
msgstr ""
+"Wenn Sie diesen nichtvertruenswürdigen Schlüssel trotzdem benutzen wollen,\n"
+"so antworten Sie mit \"ja\" oder schweigen Sie für immer."
#: g10/helptext.c:59
+#"Enter the user id of the addresse to whom you want to send the message."
msgid "pklist.user_id.enter"
-msgstr ""
+msgstr "Geben Sie die User-ID dessen ein, an den Sie die Botschaft senden wollen."
#: g10/helptext.c:63
msgid "keygen.algo"
msgstr ""
-
-#: g10/helptext.c:79
-msgid "keygen.algo.elg_se"
-msgstr ""
-
-#: g10/helptext.c:86
+"Wählen Sie die zu verwendende Methode aus.\n"
+"DSA (alias DSS) bedeutet \"digital signature algorithm\" (Digitales\n"
+" Unterschrift-Verfahren). Es kann nur zum Unterschreiben und Beglaubigen\n"
+" benutzt werden. Dies ist das empfohlene Verfahren, da dessen Überprüfung\n"
+" wesentlich schneller abläuft, als die von \"ElGamal\".\n"
+"\n"
+"ElGamal ist ein Verfahren für Unterschrift, Beglaubigung und "
+"Verschlüsselung\n"
+" OpenPGP unterscheidet zwischen zwei Arten von ElGamal: eines nur zum\n"
+" Unterschreiben/Beglaubigen und eines zusätzlich zum Verschlüsseln.\n"
+" Eigentlich sind diese Arten identisch; allerdings müssen einige Parameter\n"
+" auf eine besondere Art gewählt werden, um einen sicheren Schlüssel für\n"
+" Unterschriften zu erzeugen. Dieses Programm macht dies zwar so, aber "
+"andere\n"
+" Programme sind nach OpenPGP-Spezifikation nicht verpflichtet die zweite "
+"Art\n"
+" (die mit zusätzlichem Verschlüsseln) zu verstehen.\n"
+"\n"
+"Der Hauptschlüssel (\"primary Key\") muß auf jeden Fall zum Unterschreiben "
+"fähig\n"
+"sein. Deshalb kann ein Nur-Verschlüssel-ElGamal-Schlüssel dafür nicht\n"
+"verwendet werden.\n"
+"Auch sollte man \"ElGamal in einem v3-Paket\" nicht verwenden, denn solch "
+"ein\n"
+"Schlüssel ist nicht mit anderen Programmen nach der OpenPGP-Spezifikation\n"
+"verträglich."
+
+#: g10/helptext.c:80
+#"Enter the size of the key"
msgid "keygen.size"
msgstr ""
-
-#: g10/helptext.c:90
+"Wählen Sie die gewünschte Schlüssellänge.\n"
+"\n"
+"Ein langer Schlüssel bietet mehr Sicherheit, kostet aber auch mehr "
+"Rechenzeit.\n"
+"Ein kurzer Schlüssel ist nicht ganz so sicher, wird aber schneller "
+"bearbeitet.\n"
+"1024 Bit ist für den Heimgebrauch ein brauchbarer Wert. Wenn Sie aber z.B. "
+"in\n"
+"Atlanta, Georgia, USA für eine Limonandenfabrik arbeiten, und das Rezept\n"
+"speichern wollen (\"SCHLEMMER!\"), so wären 2048 Bit kein schlechter Wert."
+
+#: g10/helptext.c:84
+#"Answer \"yes\" or \"no\""
msgid "keygen.size.huge.okay"
-msgstr ""
+msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
-#: g10/helptext.c:95
+#: g10/helptext.c:89
msgid "keygen.size.large.okay"
-msgstr ""
+msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
-#: g10/helptext.c:100
+#: g10/helptext.c:94
msgid "keygen.valid"
-msgstr ""
+msgstr "Geben Sie den erforderlichen Wert ein"
-#: g10/helptext.c:104
+#: g10/helptext.c:98
msgid "keygen.valid.okay"
-msgstr ""
+msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
-#: g10/helptext.c:109
+#: g10/helptext.c:103
+# "Enter the name of the key holder"
msgid "keygen.name"
-msgstr ""
+msgstr "Geben Sie den Namen des Schlüsselinhabers ein"
-#: g10/helptext.c:114
+#: g10/helptext.c:108
+#"please enter an optional but highly suggested email address"
msgid "keygen.email"
-msgstr ""
+msgstr "Geben Sie eine E-Mail-Adresse ein. Dies ist zwar nicht notwendig,\n"
+"aber empfehlenswert."
-#: g10/helptext.c:118
+#: g10/helptext.c:112
+# "Please enter an optional comment"
msgid "keygen.comment"
-msgstr ""
-
-#: g10/helptext.c:123
-#, fuzzy
+msgstr "Geben Sie (bei Bedarf) einen Kommentar ein"
+
+#: g10/helptext.c:117
+#"N to change the name.\n"
+#"C to change the comment.\n"
+#"E to change the email address.\n"
+#"O to continue with key generation.\n"
+#"Q to to quit the key generation."
msgid "keygen.userid.cmd"
-msgstr "Geben Sie bitte \"help\" ein."
+msgstr ""
+"N um den Namen zu ändern.\n"
+"K um den Kommentar zu ändern.\n"
+"E um die E-Mail-Adresse zu ändern.\n"
+"F um mit der Schlüsselerzeugung fortzusetzen.\n"
+"B um die Schlüsselerzeugung abbrechen."
-#: g10/helptext.c:132
+#: g10/helptext.c:126
+# "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
msgid "keygen.sub.okay"
-msgstr ""
+msgstr "Geben Sie \"Ja\" (oder nur \"j\") ein, um den Unterschlüssel zu erzeugen."
-#: g10/helptext.c:136
+#: g10/helptext.c:130
+# "Answer \"yes\" or \"no\""
msgid "sign_uid.okay"
-msgstr ""
+msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
-#: g10/helptext.c:141
+#: g10/helptext.c:135
+# "Answer \"yes\" or \"no\""
msgid "change_passwd.empty.okay"
-msgstr ""
+msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
-#: g10/helptext.c:146
+#: g10/helptext.c:140
+# "Please enter \"help\" to see the list of commands."
msgid "keyedit.cmd"
-msgstr "Geben Sie bitte \"help\" ein."
+msgstr "Geben Sie \"help\" ein, um die Liste der Befehle einzusehen."
-#: g10/helptext.c:150
+#: g10/helptext.c:144
+# "Answer \"yes\" or \"no\""
msgid "keyedit.save.okay"
-msgstr ""
+msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
-#: g10/helptext.c:155
-#, fuzzy
+#: g10/helptext.c:149
msgid "keyedit.cancel.okay"
-msgstr "Geben Sie bitte \"help\" ein."
+msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
-#: g10/helptext.c:159
+#: g10/helptext.c:153
+# "Answer \"yes\" is you want to sign ALL the user IDs"
msgid "keyedit.sign_all.okay"
-msgstr ""
+msgstr "Geben Sie \"Ja\" (oder nur \"j\") ein, um alle User-IDs zu beglaubigen"
-#: g10/helptext.c:163
+#: g10/helptext.c:157
+# "Answer \"yes\" if you really want to delete this user ID.\n"
+# "All ceritifcates are then also lost!"
msgid "keyedit.remove.uid.okay"
-msgstr ""
+msgstr "Geben Sie \"Ja\" (oder nur \"j\") ein, um diese User-ID zu LÖSCHEN.\n"
+"Alle Zertifikate werden dann auch weg sein!"
-#: g10/helptext.c:168
+#: g10/helptext.c:162
+# "Answer \"yes\" if it is okay to delete the subkey"
msgid "keyedit.remove.subkey.okay"
-msgstr ""
+msgstr "Geben Sie \"Ja\" (oder nur \"j\") ein, um diesen Unterschlüssel zu löschen"
# ################################
# ####### Help msgids ############
# ################################
-#: g10/helptext.c:172
+#: g10/helptext.c:166
msgid "passphrase.enter"
msgstr ""
-"Bitte geben Sie die \"Passhrase\" ein; dies ist ein geheimer Satz der aus\n"
-"beliebigen Zeichen bestehen kann. Was Sie eingegeben wird nicht angezeigt.\n"
-"Zur ihrer eigenen Sicherbeit benutzen Sie biite einen Satz, den sie sich\n"
-"gut merken könne, der aber nicht leicht zu raten ist; Zitate und andere\n"
+"Bitte geben Sie das Mantra ein. Dies ist ein geheimer Satz, der aus\n"
+"beliebigen Zeichen bestehen kann. Was Sie eingegeben wird nicht angezeigt.\n\n"
+"Zur ihrer eigenen Sicherbeit benutzen Sie bitte einen Satz, den sie sich\n"
+"gut merken könne, der aber nicht leicht zu erraten ist; Zitate und andere\n"
"bekannte Texte sind eine SCHLECHTE Wahl, da diese mit Sicherheit online\n"
-"verfügbar sind und durch entsprechende Programme zum Raten der "
-"\"Passphrase\"\n"
+"verfügbar sind und durch entsprechende Programme zum Raten des Mantras\n"
"benutzt werden. Sätze mit persönlicher Bedeutung, die auch noch durch\n"
-"falsche Groß-/Kleinschreibung und eingestreute Sonderzeichen verändert "
-"werden,\n"
+"falsche Groß-/Kleinschreibung und eingestreute Sonderzeichen verändert werden,\n"
"sind i.d.R. eine gute Wahl"
-#: g10/helptext.c:179
+#: g10/helptext.c:173
msgid "passphrase.repeat"
msgstr ""
-"Um sicher zu gehen, daß Sie sich bei der Eingabe der \"Passphrase\" nicht\n"
+"Um sicher zu gehen, daß Sie sich bei der Eingabe des Mantras nicht\n"
"vertippt haben, geben Sie diese bitte nochmal ein. Nur wenn beide Eingaben\n"
-"übereinstimmen, wird die \"Passphrase\" akzeptiert."
+"übereinstimmen, wird das Mantra akzeptiert."
-#: g10/helptext.c:183
+#: g10/helptext.c:177
+# "Give the name fo the file to which the signature applies"
msgid "detached_signature.filename"
-msgstr ""
+msgstr "Geben Sie den Namen der Datei an, zu dem die abgetrennte Unterschrift gehört"
-#: g10/helptext.c:187
+#: g10/helptext.c:181
+# "Answer \"yes\" if it is okay to overwrite the file"
msgid "openfile.overwrite.okay"
msgstr "Geben Sie \"ja\" ein, wenn Sie die Datei überschreiben möchten"
-#: g10/helptext.c:201
+#: g10/helptext.c:195
msgid "No help available"
msgstr "Keine Hilfe vorhanden."
-#: g10/helptext.c:213
+#: g10/helptext.c:207
#, c-format
msgid "No help available for '%s'"
msgstr "Keine Hilfe für '%s' vorhanden."