See ChangeLog: Wed Dec 23 13:34:22 CET 1998 Werner Koch
authorWerner Koch <wk@gnupg.org>
Wed, 23 Dec 1998 12:41:40 +0000 (12:41 +0000)
committerWerner Koch <wk@gnupg.org>
Wed, 23 Dec 1998 12:41:40 +0000 (12:41 +0000)
138 files changed:
AUTHORS
ChangeLog
INSTALL
NEWS
PROJECTS
README
TODO
VERSION
cipher/blowfish.c
cipher/blowfish.h
cipher/cast5.c
cipher/cast5.h
cipher/cipher.c
cipher/des.c
cipher/des.h
cipher/dsa.c
cipher/dsa.h
cipher/dynload.c
cipher/dynload.h
cipher/elgamal.c
cipher/elgamal.h
cipher/g10c.c
cipher/gost.c
cipher/gost.h
cipher/md.c
cipher/md5.c
cipher/md5.h
cipher/primegen.c
cipher/pubkey.c
cipher/rand-internal.h
cipher/random.c
cipher/random.h
cipher/rmd.h
cipher/rmd160.c
cipher/rmd160test.c
cipher/sha1.c
cipher/sha1.h
cipher/smallprime.c
cipher/tiger.c
doc/HACKING
g10/ChangeLog
g10/armor.c
g10/build-packet.c
g10/cipher.c
g10/comment.c
g10/compress.c
g10/dearmor.c
g10/decrypt.c
g10/delkey.c
g10/encode.c
g10/encr-data.c
g10/export.c
g10/filter.h
g10/free-packet.c
g10/g10.c
g10/getkey.c
g10/gpgd.c
g10/import.c
g10/kbnode.c
g10/keydb.h
g10/keyedit.c
g10/keygen.c
g10/keyid.c
g10/keylist.c
g10/ks-proto.c
g10/ks-proto.h
g10/main.h
g10/mainproc.c
g10/mdfilter.c
g10/misc.c
g10/openfile.c
g10/options.h
g10/options.skel
g10/packet.h
g10/parse-packet.c
g10/passphrase.c
g10/pkclist.c
g10/plaintext.c
g10/pref.c
g10/pref.h
g10/pubkey-enc.c
g10/revoke.c
g10/ringedit.c
g10/seckey-cert.c
g10/seskey.c
g10/sig-check.c
g10/sign.c
g10/signal.c
g10/skclist.c
g10/status.c
g10/status.h
g10/tdbio.c
g10/tdbio.h
g10/textfilter.c
g10/trustdb.c
g10/trustdb.h
g10/verify.c
mpi/g10m.c
mpi/mpi-add.c
mpi/mpi-bit.c
mpi/mpi-cmp.c
mpi/mpi-div.c
mpi/mpi-gcd.c
mpi/mpi-inline.h
mpi/mpi-internal.h
mpi/mpi-inv.c
mpi/mpi-mpow.c
mpi/mpi-mul.c
mpi/mpi-pow.c
mpi/mpi-scan.c
mpi/mpicoder.c
mpi/mpih-add.c
mpi/mpih-cmp.c
mpi/mpih-div.c
mpi/mpih-mul.c
mpi/mpih-sub.c
mpi/mpiutil.c
po/de.po
po/es_ES.po
po/fr.po
po/it.po
po/pt_BR.po
po/ru.po
scripts/ChangeLog
scripts/gnupg.spec
tools/bftest.c
tools/mpicalc.c
util/dotlock.c
util/errors.c
util/fileutil.c
util/g10u.c
util/iobuf.c
util/logger.c
util/memory.c
util/miscutil.c
util/secmem.c
util/strgutil.c
util/ttyio.c

diff --git a/AUTHORS b/AUTHORS
index 062af10..ca125fd 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -59,14 +59,20 @@ This program uses the zlib compression library written by
 Jean-loup Gailly and Mark Adler.
 
 Most of the stuff in mpi has been taken from the GMP library.
+[Who is the author??]
 
-The file cipher/rndunix.c is heavily based on Peter Gutmann's
-rndunix.c from cryptlib. - He promised to add the GPL as an alternative
-license to this and some other files.  We don't have a disclaimer for
-this file, but due to the fact that this is only needed for non-free
-system we can easily remove this from the distribution and put it as
-a module on some FTP server.
+The keybox implementation is based on GDBM 1.7.3 by Philip A. Nelson.
 
-The RPM specs file scripts/gnupg.specs has been contributed by
-Caskey L. Dickson and Reuben Sumner.
+The file cipher/rndunix.c is based on Peter Gutmann's rndunix.c from
+cryptlib. - He promised to add the GPL as an alternative license to
+this and some other files.  We don't have a disclaimer yet, but due
+to the fact that this is only needed for non-free systems we can
+easily remove this from the distribution and put it as an extra module
+on the FTP server.
+
+The files in debian/ are by James Troup who is the Debian maintainer
+for GnuPG.
+
+The RPM specs file scripts/gnupg.spec has been contributed by
+several people.
 
index f1ab556..839ad69 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Wed Dec 23 13:18:14 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * README: Replaced the command overview with a short intro.
+
 Sat Dec 12 18:40:32 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
 
        * configure.in: Add check for dlopen in libc (Greg Troxel)
diff --git a/INSTALL b/INSTALL
index d5bf12e..ac59f61 100644 (file)
--- a/INSTALL
+++ b/INSTALL
@@ -54,9 +54,6 @@ Don't forget to delete "config.cache" and run "./config.status --recheck".
 
 The Random Device
 =================
-The current version of GNUPG needs the support of a random device.
-If there is no such device, it uses a very simple RNG, which does
-not generate strong random numbers.
 Random devices are available in Linux, FreeBSD and OpenBSD.
 The device files may not exist on your system, please check this
 and create them if needed.
@@ -75,6 +72,18 @@ You can create them with:
     mknod /dev/random  c 2 3
     mknod /dev/urandom c 2 4
 
+Unices without a random devices must use another entropy collector
+which is called rndunix and available as an extension module. You
+should put this in your ~/.gnupg/options file:
+===8<====================
+load-extension rndunix
+===>8====================
+This collector works by running a lot of tools which yields more or
+less unpredictable output and fedds this as entropy into the random
+generator - It should work reliable but you should check whether
+it produces good output for your kinf of Unix. There are some debug
+options to help you (see cipher/rndunix.c).
+
 
 
 Installation
diff --git a/NEWS b/NEWS
index 5683b98..44827ee 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,5 @@
+Noteworthy changes in version 0.x.x
+-----------------------------------
 
     * --export does now only exports rfc2440 compatible keys; the
       old behavious is available with --export-all.
@@ -13,8 +15,8 @@
 
     * New option --escape-from-lines to "dash-escape" "From " lines to
       prevent mailers to change them to ">From ".  This is not enabled by
-      default because it is not in compliace with rfc2440. but you should
-      turn it on.
+      default because it is not in compliance with rfc2440 - however, you
+      should turn it on.
 
 Noteworthy changes in version 0.4.5
 -----------------------------------
index 0ffd0fc..deaf4e5 100644 (file)
--- a/PROJECTS
+++ b/PROJECTS
@@ -1,15 +1,15 @@
 
-  * 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
+    * 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
       of the subkey number because two subkeys may have the same keyid.
 
     * signature verification is done duplicated on import: in import.c and
-      tehn in trustdb.c too.  Maybe we can use a flag to skip the actual
+      then in trustdb.c too.  Maybe we can use a flag to skip the actual
       verification process (this should work if we use the same keyblock,
       but I'm not sure how to accomplish that).  Another way is to allow
       the import of bogus data and let trustdb mark these keys as invalid;
       keyserver by sending him a lot of bogus signatures which he has
       to check - Needs further investigation.
 
-  * abstraction of the MPI
+    * Add a way to override the current cipher/md implementations
+      by others (using extensions)
 
-  * Add a way to override the current cipher/md implementations
-    by others (using extensions)
+    * Not GnuPG replated:  What about option completion in bash?
+      Can "--dump-options" be used for this or should we place the
+      options in a special ELF segment?
 
-  * Not GnuPG replated:  What about option completion in bash?
-    Can "--dump-options" be used for this or should we place the
-    options in a special ELF segment?
-
-  * Split key support (n-out-of-m)
+    * Split key support (n-out-of-m)
 
     * Check Berkeley DB - it is in glibc - any licensing problems?
 
       can do this in trustdb.c:verify_own_keys.
       (special tool?)
 
+    * rewrite --list-packets or put it into another tool.
+
+    * 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
+      in the key record of the trustdb.
+    * write a tool to extract selected keys from a file.
+
+    * Change the buffering to a mbuf like scheme? Need it for PSST anyway;
+      see Michael's proposal.
+
+    * Work on the library
+
diff --git a/README b/README
index 8e78f46..73a83df 100644 (file)
--- a/README
+++ b/README
@@ -1,17 +1,17 @@
------BEGIN PGP SIGNED MESSAGE-----
-
-                 GnuPG - The GNU Privacy Guard
-                -------------------------------
-                         Version 0.4
-
-    As you can see from the version number, the program may have some
-    bugs and some features may not work at all - please report this to
-    the mailing list.
-
-    On a Linux box (version 2.x.x, alpha or x86 CPU) it should
-    work reliably.  You may create your key on such a machine and
-    use it.  Please verify the tar file; there is a PGP and a GnuPG
-    signature available. My PGP 2 key is well known and published in
+                   GnuPG - The GNU Privacy Guard
+                  -------------------------------
+                           Version 0.9
+
+    GnuPG is now in Beta test and you should report all bugs to the
+    mailing list (see below).  The 0.9.x versions are mainly released
+    to fix all remaining serious bugs. As soon as version 1.0 is out,
+    development will continue with a 1.1 series and bug fixes for the
+    1.0 version are released as needed.
+
+    GnuPG works best on GNU/Linux or *BSD.  Other Unices are
+    also supported but not as good tested as those Freenix ones.
+    Please verify the tar file; there is a PGP2 and a GnuPG/PGP5
+    signature available. My PGP2 key is well known and published in
     the "Global Trust Register for 1998", ISBN 0-9532397-0-5.
 
     I have included my pubring as "g10/pubring.asc", which contains
     "pub  1024D/57548DCD 1998-07-07 Werner Koch (gnupg sig) <dd9jn@gnu.org>"
     "Key fingerprint = 6BD9 050F D8FC 941B 4341  2DCC 68B7 AB89 5754 8DCD"
 
-    Old version of gnupg are signed with this key:
-    "pub  1312G/FF3EAA0B 1998-02-09 Werner Koch <wk@isil.d.shuttle.de>"
-    "Key fingerprint = 8489 6CD0 1851 0E33 45DA  CD67 036F 11B8 FF3E AA0B"
-
-    My usual key is now:
+    My new DSA key is:
     "pub  1024D/621CC013 1998-07-07 Werner Koch <werner.koch@guug.de>"
     "Key fingerprint = ECAF 7590 EB34 43B5 C7CF  3ACB 6C7E E1B8 621C C013"
 
-    You may add it to your GnuPG pubring and use it in the future to
+    You may want add it to your GnuPG pubring and use it in the future to
     verify new releases.  Because you verified this README file and
     _checked_that_it_is_really_my PGP2 key 0C9857A5, you can be sure
     that the above fingerprints are correct.
 
     Please subscribe to g10@net.lut.ac.uk by sending a mail with
     the word "subscribe" in the body to "g10-request@net.lut.ac.uk".
-    This mailing is closed (only subscribers can post) to avoid spam.
+    This mailing list is a closed one (only subscribers are allowed
+    to post) to avoid misuse by folks who don't know the Netiquette
+    and trash you mailspool with commercial junk.
 
     See the file COPYING for copyright and warranty information.
 
+    GnuPG is in compliance with RFC2440 (OpenPGP), see doc/OpenPGP for
+    details.
+
     Due to the fact that GnuPG does not use use any patented algorithm,
-    it cannot be compatible with old PGP versions, because those use
+    it cannot be compatible with PGP2 versions; PGP 2.x does only use
     IDEA (which is patented worldwide) and RSA (which is patented in
     the United States until Sep 20, 2000).
 
-    GnuPG is in compliance with RFC2440 (OpenPGP), see doc/OpenPGP for
-    deatils.
-
-    The default algorithms are now DSA and ELGamal.  ELGamal for signing
+    The default algorithms are now DSA and ElGamal.  ElGamal for signing
     is still available, but due to the larger size of such signatures it
     is depreciated (Please note that the GnuPG implementation of ElGamal
-    signatures is *not* insecure).  Symmetric algorithms are: 3DES, Blowfish
-    and CAST5, Digest algorithms are MD5, RIPEMD160, SHA1 and TIGER/192.
-
+    signatures is *not* insecure).  Symmetric algorithms are: 3DES,
+    Blowfish and CAST5 (Twofish will come soon),  available digest
+    algorithms are MD5, RIPEMD160, SHA1 and TIGER/192.
 
 
     Installation
 
     3) "make install"
 
-    4) You end up with a binary "gpg" in /usr/local/bin
+    4) You end up with the binaries "gpg" and "gpgm" in /usr/local/bin.
+
+    5) Optional, but suggested: install the binary "gpg" as suid root.
+
 
-    5) Optional, but suggested: install the program "gpg" as suid root.
 
+    Intro
+    -----
+    This is a brief overview how to use GnuPG - it is highly suggested
+    that you read the manual^H^H^H more information about the use
+    of cryptography.  GnuPG is only the technical tool to do it and
+    the security highly depends on that YOU KNOW WHAT YOU ARE DOING.
 
+    If you already have a DSA key from PGP 5 (they call them DH/ElGamal)
+    you can simply copy the pgp keyrings over the GnuPG keyrings after
+    running gpg once, so that it can create the correct directory.
 
-    Key Generation
-    --------------
+    The normal way to create a key is:
 
        gpg --gen-key
 
     This asks some questions and then starts key generation. To create
-    good random numbers for prime number generation, it uses a /dev/random
-    which will only emit bytes if the kernel can gather enough entropy.
-    If you see no progress, you should start some other activities such
-    as mouse moves, "find /" or using the keyboard (in another window).
-    Because we have no hardware device to generate randomness we have to
-    use this method.
-
-    You should make a revocation certificate in case someone gets
-    knowledge of your secret key or you forgot your passphrase:
+    good random numbers for the key parameters, GnuPG needs to gather
+    enough noise (entropy) from your system.  If you see no progress
+    during key generation you should start some other activities such
+    as mouse moves or hitting on the CTRL and SHIFT keys.
+
+    Generate a key ONLY on a machine where you have direct physical
+    access - don't do it over the network or on a machine used also
+    by others - especially if you have no access to the root account.
+
+    When you are asked for a passphrase; use a good one which you can easy
+    remember. Don't make the passphrase too long because you have to
+    type it for every decryption or signing; but - AND THIS IS VERY
+    IMPORTANT - use a good one which is not easily guessable as the
+    security of the whole system relies on your secret key and the
+    passphrase is used to protect this secret key in case someone was
+    able to get access to your secret keyring. A good way to select
+    a passphrase is to figure out a short nonsense sentence which makes
+    some sense for you and modify it by inserting extra spaces, non-letters
+    and changing the case of some characters - this is really easy to
+    remember especially if you associate some pictures with it.
+
+    Then you should create a revocation certificate in case someone
+    gets knowledge of your secret key or you forgot your passphrase:
 
        gpg --gen-revoke your_user_id
 
     so that you can print it and (hopefully never) re-create it if
     your electronic media fails.
 
-    If you decided to create a DSA key, you should add an ElGamal
-    for encryption:
-
-       gpg --add-key user_id_of_your_key
-
-    and follow the displayed instructions (select "ElGamal using v4 packets").
-
-
-    You can sign a key with this command:
-
-       gpg --sign-key Donald
-
-    This let you sign the key of "Donald" with your default userid.
-
-       gpg --sign-key -u Karl -u Joe Donald
-
-    This let you sign the key of of "Donald" with the userids of "Karl"
-    and "Joe".
-    All existing signatures are checked; if some are invalid, a menu is
-    offered to delete some of them, and then you are asked for every user
-    whether you want to sign this key.
-
-    You may remove a signature at any time using the option "--edit-sig",
-    which asks for the sigs to remove. Self-signatures are not removable.
-
-
-
-
-    Sign
-    ----
+    Now you can use your key to create digital signatures:
 
        gpg -s file
 
 
        gpg -sa file
 
-    Same as above, but file.gpg is ascii armored.
+    Same as above, but creates the file.asc which is ascii armored and
+    and ready for sending by mail.  Note: It is better to use your
+    mailers features to create signatures (The mailer uses GnuPG to do
+    this) because the mailer has the ability to MIME encode such
+    signatures - but this is not a security issue.
 
        gpg -s -o out file
 
     Creates a signature of file, but writes the output to the file "out".
 
-    If you use the option "--rfc1991", gnupg tries to me more compatible
-    to RFC1991 (pgp 2.x).
+    Everyone who knows your public key (you can and should publish
+    your key by putting it on a key server, a web page or in your .plan
+    file) is now able to check whether you really signed this text;
 
+       gpg --verify file
 
-    Encrypt
-    -------
+    GnuPG now checks whether the signature is valid and prints an
+    appropriate message.  If the signature is good, you know at least
+    that the person (or machine) has access to the secret key which
+    corresponds to the published public key.
+    If you run gpg without an option it will verify the signature and
+    create a new file which is identical to the original file. gpg
+    can also run as a filter, so that you can pipe data to verify
+    trough it:
 
-       gpg -e -r heine file
+       cat signed-file | gpg | wc -l
 
-    This encrypts files with the public key of "heine" and writes it
-    to "file.gpg"
+    will check the signature of signed-file and then display the
+    number of lines in the original file.
 
-       echo "hallo" | gpg -ea -r heine | mail heine
+    To send a message encrypted to someone you can use this:
 
-    Ditto, but encrypts "hallo\n" and mails it as ascii armored message.
+       gpg -e -r heine file
 
+    This encrypts file with the public key of the user "heine" and
+    writes it to "file.gpg"
 
-    Sign and Encrypt
-    ----------------
+       echo "hallo" | gpg -ea -r heine | mail heine
 
-       gpg -se -r heine file
+    Ditto, but encrypts "hallo\n" and mails it as ascii armored message
+    to the user with the mail address heine.
 
-    This encrypts files with the public key of "heine" and writes it
-    to "file.gpg" after signing it with the default user id.
+       gpg -se -r heine file
 
+    This encrypts file with the public key of "heine" and writes it
+    to "file.gpg" after signing it with your user id.
 
        gpg -se -r heine -u Suttner file
 
-    Ditto, but sign the file with the user id "Suttner"
+    Ditto, but sign the file with your alternative user id "Suttner"
 
 
-    Keyring Management
-    ------------------
-    To export your complete keyring(s) do this:
+    GnuPG has some options to help you publish public keys; this is
+    called "exporting" a key:
 
-       gpg --export
+       gpg --export >all-my-keys
 
-    To export only some user ids do this:
+    exports all the keys in the keyring and writes them (in a binary format)
+    to all-my-keys.  You may then mail "all-my-keys" as an MIME attachment
+    to someone else or put it on an FTP server. To export only some
+    user IDs, you give them as arguments on the command line.
 
-       gpg --export userids
+    To mail a public key or put it on a web page you have to create
+    the key in ASCII armored format:
 
-    Use "-a" or "--armor" to create ASCII armored output.
+       gpg --export --armor | mail panther@tiger.int
 
-    Importing keys is done with the option, you guessed it, "--import":
-
-       gpg --import [filenames]
+    This will send all your public keys to your friend panther.
 
-    New keys are appended to the default keyring and already existing
-    keys are merged.  Keys without a self-signature are ignored.
+    If you have received a key from someone else you can put it
+    into your public keyring; is called "importing":
 
+       gpg --import [filenames]
 
-    How to Specify a UserID
-    -----------------------
-    There are several ways to specify a userID, here are some examples:
+    New keys are appended to your keyring and already existing
+    keys are updated. Note that GnuPG does not allow keys which
+    are not self-signed by the user.
+
+    Because anyone can claim that the public key belongs to her
+    we must have some way to check that the public key really belongs
+    to the owner.  This can be achieved by comparing the key during
+    a phone call.  Sure, it is not very easy to compare a binary file
+    by reading the complete hex dump of the file - GnuPG (and nearly
+    every other program used for management of cryptographic keys)
+    provides other solutions:
+
+       gpg --fingerprint <username>
+
+    prints the so called "fingerprint" of the given username; this
+    is a sequence of hex bytes (which you may have noticed in mail
+    sigs or on business cards) which uniquely identify the public
+    key - two different keys will always have different fingerprints.
+    It is easy to compare this fingerprint by phone and I suggest
+    that you print your fingerprint on the back of your business
+    card.
+
+    If you don't know the owner of the public key you are in trouble;
+    but wait: A friend of you knows someone who knows someone who
+    has met the owner of the public key at some computer conference.
+    So all the persons between you and the public key holder may now
+    act as introducer to you; this is done by signing the keys and
+    thereby certifying the other keys. If you then trust all the
+    introducers to correctly sign other keys, you can be be sure that
+    the other key really belongs to the one who claims so.
+
+    There are 2 steps to validate a target key:
+       1. First check that there is a complete chain
+          of signed keys from the public key you want to use
+          and your key and verify each signature.
+       2. Make sure that you have full trust in the certificates
+          of all the introduces between the public key holder and
+          you.
+    Step 2 is the more complicated part because there is no easy way
+    for a computer to decide who is trustworthy and who is not.  GnuPG
+    leaves this decision to you and will ask you for a trust value
+    (here also referenced as the owner-trust of a key) for every key
+    needed to check the chain of certificates. You may choose from:
+      a) "I don't know" - then it is not possible to use any
+        of the chains of certificates, in which this key is used
+        as an introducer, to validate the target key.  Use this if
+        you don't know the introducer.
+      b) "I do not trust" - Use this if you know that the introducer
+        does not do a good job in certifying other keys.  The effect
+        is the same as with a) but for a) you may later want to
+        change the value because you got new information about this
+        introducer.
+      c) "I trust marginally" - Use this if you assume that the
+        introducer knows what he is doing.  Together with some
+        other marginally trusted keys, GnuPG validates the target
+        key then as good.
+      d) "I fully trust" - Use this if you really know that this
+        introducer does a good job when certifying other keys.
+        If all the introducer are of this trust value, GnuPG
+        normally needs only one chain of signatures to validate
+        a target key okay. (But this may be adjusted with the help
+        of some options).
+    These information are confidential because they give your
+    personal opinion on the trustworthy of someone else.  Therefore
+    this data is not stored in the keyring but in the "trustdb"
+    (~/.gnupg/trustdb.gpg).  Do not assign a high trust value just
+    because the introducer is a friend of you - decide how far she
+    understands all the implications of key signatures and you may
+    want to tell him more about public key cryptography so you
+    can later change the trust value you assigned.
+
+    Okay, here is how GnuPG helps you in key management:  Most stuff is
+    done with the --edit-key  command:
+
+       gpg --edit-key <keyid or username>
+
+    GnuPG displays some information about the key and then prompts
+    for a command (enter "help" to see a list of commands and see
+    the man page for a more detailed explanation).  To sign a key
+    you select the user ID you want to sign by entering the number
+    which is displayed in the leftmost column (or do nothing if the
+    key has only one user ID) and then enter the command "sign" and
+    follow all the prompts.  When you are ready, give the command
+    "save" (or use "quit" to cancel your actions).
+
+    If you want to sign the key with another user ID of yours, you
+    must give an "-u" option on the command line together with the
+    "--edit-key".
+
+    Normally you want to sign only one user ID because GnuPG
+    does only use one and this keeps the public key certificate
+    small.  Because such key signatures are very important you
+    should make sure that the signators of your key sign a user ID
+    which is very likely to stay for a long time - choose one with an
+    email address you have full control of or do not enter an email
+    address at all.  In future GnuPG will have a way to tell which
+    user ID is the one with an email address you prefer - because
+    you have no signatures on this email address it is easy to change
+    this address.  Remember: Your signators sign your public key (the
+    primary one) together with one od your user IDs - so it is not possible
+    to change the user ID later without voiding all the signatures.
+
+    Tip: If you hear about a key signing party on a computer conference
+    join it because this is a very convenient way to get your key
+    certified (But remember that signatures have nothing to to with the
+    trust you assign to a key).
+
+
+    7 Ways to Specify a User ID
+    --------------------------
+    There are several ways to specify a user ID, here are some examples:
 
     * Only by the short keyid (prepend a zero if it begins with A..F):
 
 
       The first one is MD5 the others are ripemd160 or sha1.
 
-    * By an exact string (not yet implemented):
+    * By an exact string:
 
        "=Heinrich Heine <heinrichh@uni-duesseldorf.de>"
 
 
        "<heinrichh@uni-duesseldorf.de>"
 
-      This can be used by a keyserver instead of a substring to
-      find this key faster.
-
-    * By the Local ID (from the trustdb):
+    * By the Local ID (from the trust DB):
 
        "#34"
 
-      This can be used by a MUA to specify an exact key after selecting
+      This may be used by a MUA to specify an exact key after selecting
       a key from GnuPG (by the use of a special option or an extra utility)
 
-
     * Or by the usual substring:
 
        "Heine"
       The '*' indicates substring search explicitly.
 
 
-
-
     Batch mode
     ----------
     If you use the option "--batch", GnuPG runs in non-interactive mode and
     never prompts for input data.  This does not even allow entering the
     passphrase; until we have a better solution (something like ssh-agent),
-    you can use the option "--passhrase-fd n", which works like PGPs
+    you can use the option "--passphrase-fd n", which works like PGPs
     PGPPASSFD.
 
     Batch mode also causes GnuPG to terminate as soon as a BAD signature is
     -----------
     GnuPG returns with an exit status of 1 if in batch mode and a bad signature
     has been detected or 2 or higher for all other errors.  You should parse
-    stderr or the output of the fd specified with --status-fd to get detailed
-    information about the errors.
+    stderr or better the output of the fd specified with --status-fd to get
+    detailed information about the errors.
 
 
     Esoteric commands
 
     Use this to list the contents of a data file. If the file is encrypted
     you are asked for the passphrase, so that GnuPG is able to look at the
-    inner structure of a encrypted packet.
+    inner structure of a encrypted packet.  This command should be able
+    to list all kinds of rfc2440 messages.
 
        gpgm --list-trustdb
 
-    List the contents of the trustdb in a human readable format
+    List the contents of the trust DB in a human readable format
 
        gpgm --list-trustdb  <usernames>
 
     List the tree of certificates for the given usernames
 
-       gpgm --list-trust-path  depth  username
-
-    List the possible trust paths for the given username, up to the specified
-    depth.  If depth is negative, duplicate introducers are not listed,
-    because those would increase the trust probability only minimally.
-    (you must use the special option "--" to stop option parsing when
-     using a negative number). This option may create new entries in the
-    trustdb.
+       gpgm --list-trust-path  username
 
-       gpgm --print-mds  filenames
+    List the possible trust paths for the given username. The length
+    of such a trust path is limited by the option --max-cert-depth
+    which defaults to 5.
 
-    List all available message digest values for the fiven filenames
-
-    For more options/commands see the file g10/OPTIONS, or use "gpg --help"
-
-
-    Debug Flags
-    -----------
-    Use the option "--debug n" to output debug information. This option
-    can be used multiple times, all values are ORed; n maybe prefixed with
-    0x to use hex-values.
-
-        value  used for
-        -----  ----------------------------------------------
-         1     packet reading/writing
-         2     MPI details
-         4     ciphers and primes (may reveal sensitive data)
-         8     iobuf filter functions
-         16    iobuf stuff
-         32    memory allocation stuff
-         64    caching
-         128   show memory statistics at exit
-         256   trust verification stuff
+    For more options/commands see the man page or use "gpg --help".
 
 
     Other Notes
     -----------
-    This is work in progress, so you may find duplicated code fragments,
-    ugly data structures, weird usage of filenames and other things.
 
     The primary FTP site is "ftp://ftp.gnupg.org/pub/gcrypt/"
     The primary WWW page is "http://www.gnupg.org"
 
-    If you like, send your keys to <gnupg-keys@isil.d.shuttle.de>; use
-    "gpg --export --armor | mail gnupg-keys@isil.d.shuttle.de" to do this.
+    See http://www.gnugp.org/mirrors.html for a list of FTP mirrors
+    and use them if possible.
 
     Please direct bug reports to <gnupg-bugs@gnu.org> or better
-    post them to the mailing list <g10@net.lut.ac.uk> (this is a closed list,
-    please subscribe before posting, see above (~line 33)).
-
+    post them to the mailing list <g10@net.lut.ac.uk> (this is a
+    closed list - subscribe before posting, see above (~line 33)).
+    Please direct questions about GnuPG to the mailing list or
+    one of the pgp newsgroups; this gives me more time to improve
+    GnuPG.  Commercial support for GnuPG will be availabe soon.
 
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v0.4.4 (GNU/Linux)
-Comment: For info finger gcrypt@ftp.guug.de
+    Have fun and remember: Echelon is looking at you kid.
 
-iQB1AwUBNlXAUh0Z9MEMmFelAQFmhwL/RfW9WxAMTh/edDy0yGTJjDgo7d/Kfmtq
-8C0LJ4b2M0py1ctW6jZyiQsYtvkrttKiTYXGtRoIzVFWX2hqABKPCTHzOeXQEOSu
-ro5fnRwsuj9cRxhH8lpN+diY+m1E5Fu3
-=sciv
------END PGP SIGNATURE-----
diff --git a/TODO b/TODO
index 96dcaab..f37ed3d 100644 (file)
--- a/TODO
+++ b/TODO
@@ -1,49 +1,48 @@
+Bugs
+----
+    * clearsig: keep lineendings as they are. Remember that trailings
+      blanks are not hashed.  Funny: pgp263in works fine even with
+      a source file with CR,LF but GnuPG and pgp263in has problems
+      if the clearsign has been created by pgp263ia.
+      Needs more investigation - anyone?
 
+Important
+----------
     * Check revocation and expire stuff.  PLEASE: THIS MUST BE TESTED!
 
-    * Escape "From "
-
     * Check calculation of key validity. PLEASE: IT IS IMPORTED THAT
       THIS GET TESTED.
 
-    * preferences of hash algorithms are not yet used.
+    * It has been reported that lockfiles are not removed in all cases.
+      cleanup is done with atexit() and all signals trigger exit() -
+      anything wrong with this?
 
     * 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"
 
-    * clearsig: keep lineendings as they are. Remember that trailings
-      blanks are not hashed.
-
-    * should we flush the getkey.c caches while doing an import?
-
-    * 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
-      in the key record of the trustdb.
+Needed
+------
+    * remove more "Fixmes"
 
-    * write a tool to extract selected keys from a file.
+    * Replace Blowfish by Twofish and add the new encrypted packet typ
+      which has a MACing option (append SHA1 hash to the plaintext and
+      encrypt this all) - We need an identifier for Twofish to put this
+      one into the cipher preferences.
 
+Nice to have
+------------
+    * preferences of hash algorithms are not yet used.
     * new menu to delete signatures and list signature in menu
-
     * Replace the SIGUSR1 stuff by semaphores to avoid loss of a signal.
       or use POSIX.4 realtime signals.
-
     * add test cases for invalid data (scrambled armor or other random data)
-
-    * rewrite --list-packets or put it into another tool.
-
+    * add checking of armor trailers
     * Burn the buffers used by fopen(), or use read(2). Does this
       really make sense?
-
-    * Change the buffering to a mbuf like scheme? Need it for PSST anyway;
-      see Michael's proposal.
-    * add checking of armor trailers
-    * remove all "Fixmes" ;-)
-
     * change the fake_data stuff to mpi_set_opaque
 
-    * Replace Blowfish by Twofish
-
-    * Work on the library
+Minor Bugs
+----------
+    * md_start_debug used to crash at pgm termination.
 
diff --git a/VERSION b/VERSION
index 911e57f..6f9a817 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.4.5a
+0.4.5b
index f5c29c6..fdc4c4b 100644 (file)
@@ -5,14 +5,14 @@
  *   Bruce Schneier: Applied Cryptography. John Wiley & Sons, 1996.
  *   ISBN 0-471-11709-9. Pages 336 ff.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index d3848aa..b1d65f3 100644 (file)
@@ -1,14 +1,14 @@
 /* blowfish.h
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 64866ba..279838f 100644 (file)
@@ -1,14 +1,14 @@
 /* cast5.c  -  CAST5 cipher (RFC2144)
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index ea6fa9e..df7f165 100644 (file)
@@ -1,14 +1,14 @@
 /* cast5.h
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 95c4b70..f27eec3 100644 (file)
@@ -1,14 +1,14 @@
 /* cipher.c  - cipher dispatcher
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index f730568..f7187c0 100644 (file)
@@ -8,14 +8,14 @@
  *   Bruce Schneier: Applied Cryptography. Second Edition.
  *   John Wiley & Sons, 1996. ISBN 0-471-12845-7. Pages 358 ff.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index f3b95ba..cf2f320 100644 (file)
@@ -1,14 +1,14 @@
 /* des.h
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 2d5c173..7222df3 100644 (file)
@@ -1,14 +1,14 @@
 /* dsa.c  -  DSA signature scheme
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index dda32bd..e5bc8c7 100644 (file)
@@ -1,14 +1,14 @@
 /* dsa.h  -  DSA signature scheme
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index abef2da..220f916 100644 (file)
@@ -1,14 +1,14 @@
 /* dynload.c - load cipher extensions
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index d107b5a..f22f5f3 100644 (file)
@@ -1,14 +1,14 @@
 /* dynload.5
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index b330ccf..9a9b356 100644 (file)
@@ -5,14 +5,14 @@
  *   Bruce Schneier: Applied Cryptography. John Wiley & Sons, 1996.
  *   ISBN 0-471-11709-9. Pages 476 ff.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 672f077..ac708a9 100644 (file)
@@ -1,14 +1,14 @@
 /* elgamal.h
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 263091d..7185200 100644 (file)
@@ -1,14 +1,14 @@
 /* g10c.c  -  Wrapper for cipher functions
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index aaf2a8e..4a52772 100644 (file)
@@ -5,14 +5,14 @@
  *   Bruce Schneier: Applied Cryptography. John Wiley & Sons, 1996.
  *   ISBN 0-471-11709-9. .
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 4c03674..d8e7ebf 100644 (file)
@@ -1,14 +1,14 @@
 /* gost.h
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 9a2b179..de74c28 100644 (file)
@@ -1,14 +1,14 @@
 /* md.c  -  message digest dispatcher
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 72fce0e..214e137 100644 (file)
@@ -19,7 +19,7 @@
  * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
 /* Written by Ulrich Drepper <drepper@gnu.ai.mit.edu>, 1995.  */
-/* modified for GNUPG by <werner.koch@guug.de> */
+/* modified for GnuPG by <werner.koch@guug.de> */
 
 /* Test values:
  * ""                  D4 1D 8C D9 8F 00 B2 04  E9 80 09 98 EC F8 42 7E
index a4bcf5c..89fc843 100644 (file)
@@ -1,14 +1,14 @@
 /* md5.h - message digest 5
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index addc51f..e948421 100644 (file)
@@ -1,14 +1,14 @@
 /* primegen.c - prime number generator
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 5147117..2ca8dd8 100644 (file)
@@ -1,14 +1,14 @@
 /* pubkey.c  - pubkey dispatcher
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 230ea97..290f034 100644 (file)
@@ -1,14 +1,14 @@
 /* rand-internal.h - header to glue the random functions
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index c49cc6e..d57cd07 100644 (file)
@@ -1,14 +1,14 @@
 /* random.c  - random number generator
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index d4c1342..ca9ee3a 100644 (file)
@@ -1,14 +1,14 @@
 /* random.h - random functions
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 64a8a02..0c1fbad 100644 (file)
@@ -1,14 +1,14 @@
 /* rmd.h - RIPE-MD hash functions
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 3b1702c..4d64475 100644 (file)
@@ -1,14 +1,14 @@
 /* rmd160.c  - RIPE-MD160
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index bfbd9bc..f0acd2a 100644 (file)
@@ -1,14 +1,14 @@
 /* rmd160test.c - ripe md 160 test program
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 0a6ffab..b3da296 100644 (file)
@@ -3,14 +3,14 @@
  *
  * Please see below for more legal information!
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 2a47b3e..3d93026 100644 (file)
@@ -1,14 +1,14 @@
 /* sha1.h - SHA1 hash function
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index a286aa6..8187aa7 100644 (file)
@@ -1,14 +1,14 @@
 /* smallprime.c - List of small primes
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index c473e92..51c6450 100644 (file)
@@ -1,14 +1,14 @@
 /* tiger.c  -  The TIGER hash function
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index e4c1aa9..01627fe 100644 (file)
@@ -55,6 +55,44 @@ RFCs
 
 
 
+Debug Flags
+-----------
+Use the option "--debug n" to output debug information. This option
+can be used multiple times, all values are ORed; n maybe prefixed with
+0x to use hex-values.
+
+     value  used for
+     -----  ----------------------------------------------
+      1     packet reading/writing
+      2     MPI details
+      4     ciphers and primes (may reveal sensitive data)
+      8     iobuf filter functions
+      16    iobuf stuff
+      32    memory allocation stuff
+      64    caching
+      128   show memory statistics at exit
+      256   trust verification stuff
+
+
+
+
+Directory Layout
+----------------
+  ./           Readme, configure
+  ./scripts    Scripts needed by configure and others
+  ./doc        Documentaion
+  ./util       General purpose utility function
+  ./mpi        Multi precision integer library
+  ./cipher     Cryptographic functions
+  ./g10        GnuPG application
+  ./tools      Some helper and demo programs
+  ./keybox     The keybox library
+  ./gcrypt     Stuff needed to build libgcrypt
+
+
+
+
+
 Memory allocation
 -----------------
 Use only the functions:
index b2ccffa..8e959a2 100644 (file)
@@ -1,3 +1,15 @@
+Wed Dec 23 13:18:14 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * pkclist.c (add_ownertrust): Refresh validity values.
+
+       * trustdb.c (enum_cert_paths_print): New arg refresh.
+
+       * ringedit.c: Fixed problems fix keyrings
+       * parse-packet.c (dbg_parse_packet): New debug functions.
+
+       * getkey.c (getkey_disable_caches): New.
+       * import.c (import_keys): Disable caches.
+
 Thu Dec 17 18:31:15 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
 
        * misc.c (trap_unaligned): Only for glibc 1
index ca74fe4..0aca333 100644 (file)
@@ -1179,7 +1179,7 @@ armor_filter( void *opaque, int control,
            iobuf_writestr(a, "-----\n");
        }
        else if( !afx->any_data && !afx->inp_bypass )
-           log_error(_("no valid RFC1991 or OpenPGP data found.\n"));
+           log_error(_("no valid OpenPGP data found.\n"));
     }
     else if( control == IOBUFCTRL_DESC )
        *(char**)buf = "armor_filter";
index d835683..5b952f1 100644 (file)
@@ -1,14 +1,14 @@
 /* build-packet.c - assemble packets and write them
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 4664a4a..c654db0 100644 (file)
@@ -1,14 +1,14 @@
 /* cipher.c - En-/De-ciphering filter
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 71d524c..6d27e48 100644 (file)
@@ -1,14 +1,14 @@
 /* comment.c - write comment stuff
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 6a2f8f8..31cc4c5 100644 (file)
@@ -1,14 +1,14 @@
 /* compress.c - compress filter
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 6b15f49..43fc6b0 100644 (file)
@@ -1,14 +1,14 @@
 /* dearmor.c - Armor utility
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index cb1cccd..4094321 100644 (file)
@@ -1,14 +1,14 @@
 /* verify.c - verify signed data
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 08648b8..8d4f1a5 100644 (file)
@@ -1,14 +1,14 @@
 /* delkey.c - delete keys
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 8245dd0..303cf79 100644 (file)
@@ -1,14 +1,14 @@
 /* encode.c - encode data
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index e5338c7..ff7954c 100644 (file)
@@ -1,14 +1,14 @@
 /* encr-data.c -  process an encrypted data packet
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index c905611..6b4b41c 100644 (file)
@@ -1,14 +1,14 @@
 /* export.c
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index f4d9249..75d629e 100644 (file)
@@ -1,14 +1,14 @@
 /* filter.h
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index e2bbc16..bd4ed04 100644 (file)
@@ -1,14 +1,14 @@
 /* free-packet.c - cleanup stuff for packets
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 1f1fed5..8191ea0 100644 (file)
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -1,14 +1,14 @@
 /* g10.c - The GnuPG utility (main for gpg)
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 65c0ae4..f315299 100644 (file)
@@ -1,14 +1,14 @@
 /* getkey.c -  Get a key from the database
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
@@ -160,7 +160,7 @@ cache_public_key( PKT_public_key *pk )
     if( pk_cache_entries >= MAX_PK_CACHE_ENTRIES ) {
        /* fixme: use another algorithm to free some cache slots */
        pk_cache_disabled=1;
-       if( opt.verbose )
+       if( opt.verbose > 1 )
            log_info(_("too many entries in pk cache - disabled\n"));
        return;
     }
@@ -208,6 +208,38 @@ cache_user_id( PKT_user_id *uid, u32 *keyid )
 }
 
 
+void
+getkey_disable_caches()
+{
+  #if MAX_UNK_CACHE_ENTRIES
+    {
+       keyid_list_t kl, kl2;
+       for( kl = unknown_keyids; kl; kl = kl2 ) {
+           kl2 = kl->next;
+           m_free(kl);
+       }
+       unknown_keyids = NULL;
+       unk_cache_disabled = 1;
+    }
+  #endif
+  #if MAX_PK_CACHE_ENTRIES
+    {
+       pk_cache_entry_t ce, ce2;
+       u32 keyid[2];
+
+       for( ce = pk_cache; ce; ce = ce2 ) {
+           ce2 = ce->next;
+           free_public_key( ce->pk );
+           m_free( ce );
+       }
+       pk_cache_disabled=1;
+       pk_cache_entries = 0;
+       pk_cache = NULL;
+    }
+  #endif
+    /* fixme: disable user id cache ? */
+}
+
 
 /****************
  * Get a public key and store it into the allocated pk
@@ -259,7 +291,7 @@ get_pubkey( PKT_public_key *pk, u32 *keyid )
        ;
     else if( ++unk_cache_entries > MAX_UNK_CACHE_ENTRIES ) {
        unk_cache_disabled = 1;
-       if( opt.verbose )
+       if( opt.verbose > 1 )
            log_info(_("too many entries in unk cache - disabled\n"));
     }
     else {
index 5d85e1f..b4be604 100644 (file)
@@ -1,14 +1,14 @@
-/* ggpd.c - The GNUPG daemon (keyserver)
+/* ggpd.c - The GnuPG daemon (keyserver)
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 2fa25c5..7de0fc9 100644 (file)
@@ -130,6 +130,9 @@ import_keys( const char *fname, int fast )
        return G10ERR_OPEN_FILE;
     }
 
+
+    getkey_disable_caches();
+
     if( !opt.no_armor ) /* armored reading is not disabled */
        iobuf_push_filter( inp, armor_filter, &afx );
 
index 1048f31..70c85f7 100644 (file)
@@ -1,14 +1,14 @@
 /* kbnode.c -  keyblock node utility functions
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index a3abbe7..1d1c6c2 100644 (file)
@@ -1,14 +1,14 @@
 /* keydb.h - Key database
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
@@ -77,6 +77,7 @@ struct keyblock_pos_struct {
     byte keybuf[21];
   #endif
     PACKET *pkt;     /* ditto */
+    int valid;
 };
 typedef struct keyblock_pos_struct KBPOS;
 
@@ -130,6 +131,7 @@ char *get_last_passphrase(void);
 /*-- getkey.c --*/
 int classify_user_id( const char *name, u32 *keyid, byte *fprint,
                      const char **retstr, size_t *retlen );
+void getkey_disable_caches(void);
 int get_pubkey( PKT_public_key *pk, u32 *keyid );
 int get_pubkey_byname( GETKEY_CTX *rx, PKT_public_key *pk,
                       const char *name, KBNODE *ret_keyblock );
index b402b4f..0a711c2 100644 (file)
@@ -1,14 +1,14 @@
 /* keyedit.c - keyedit stuff
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index cea7ffd..2745649 100644 (file)
@@ -1,14 +1,14 @@
 /* keygen.c - generate a key pair
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 21e7e12..665b3be 100644 (file)
@@ -1,14 +1,14 @@
 /* keyid.c - jeyid and fingerprint handling
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index f2ded04..3c68680 100644 (file)
@@ -1,14 +1,14 @@
 /* keylist.c
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index b5109f2..43abf46 100644 (file)
@@ -1,14 +1,14 @@
 /* ks-proto.c  keyserver protocol handling
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 67d2ed4..bd58db5 100644 (file)
@@ -1,14 +1,14 @@
 /* ks-proto.h
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 72f433f..b917bae 100644 (file)
@@ -1,14 +1,14 @@
 /* main.h
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index acf5bf5..0d5c88f 100644 (file)
@@ -1,14 +1,14 @@
 /* mainproc.c - handle packets
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index a18636e..1d26e20 100644 (file)
@@ -1,14 +1,14 @@
 /* mdfilter.c - filter data and calculate a message digest
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index e799047..e533966 100644 (file)
@@ -1,14 +1,14 @@
 /* misc.c -  miscellaneous functions
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index a6d24ed..1ffeeed 100644 (file)
@@ -1,14 +1,14 @@
 /* openfile.c
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index b6b1cd2..e649186 100644 (file)
@@ -1,14 +1,14 @@
 /* options.h
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 8291682..1ad93b4 100644 (file)
@@ -33,7 +33,7 @@ force-v3-sigs
 # cleartext signatures; all other PGP versions it this way too.
 # To enable full OpenPGP compliance you have to remove this option.
 
-escape_from_lines
+escape-from-lines
 
 # If you do not use the Latin-1 (ISO-8859-1) charset, you should
 # tell GnuPG which is the native character set.  Please check
index e047fd9..1f5f574 100644 (file)
@@ -1,14 +1,14 @@
 /* packet.h - packet read/write stuff
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
@@ -27,6 +27,8 @@
 #include "cipher.h"
 #include "filter.h"
 
+#define DEBUG_PARSE_PACKET 1
+
 typedef enum {
        PKT_NONE           =0,
        PKT_PUBKEY_ENC     =1, /* public key encrypted packet */
@@ -236,11 +238,26 @@ int list_packets( IOBUF a );
 
 /*-- parse-packet.c --*/
 int set_packet_list_mode( int mode );
+
+#if DEBUG_PARSE_PACKET
+int dbg_search_packet( IOBUF inp, PACKET *pkt, int pkttype, ulong *retpos, const char* file, int lineno  );
+int dbg_parse_packet( IOBUF inp, PACKET *ret_pkt, const char* file, int lineno );
+int dbg_copy_all_packets( IOBUF inp, IOBUF out, const char* file, int lineno  );
+int dbg_copy_some_packets( IOBUF inp, IOBUF out, ulong stopoff, const char* file, int lineno  );
+int dbg_skip_some_packets( IOBUF inp, unsigned n, const char* file, int lineno );
+#define search_packet( a,b,c,d )   dbg_search_packet( (a), (b), (c), (d), __FILE__, __LINE__ )
+#define parse_packet( a, b )      dbg_parse_packet( (a), (b), __FILE__, __LINE__ )
+#define copy_all_packets( a,b )    dbg_copy_all_packets((a),(b), __FILE__, __LINE__ )
+#define copy_some_packets( a,b,c ) dbg_copy_some_packets((a),(b),(c), __FILE__, __LINE__ )
+#define skip_some_packets( a,b )   dbg_skip_some_packets((a),(b), __FILE__, __LINE__ )
+#else
 int search_packet( IOBUF inp, PACKET *pkt, int pkttype, ulong *retpos );
 int parse_packet( IOBUF inp, PACKET *ret_pkt);
 int copy_all_packets( IOBUF inp, IOBUF out );
 int copy_some_packets( IOBUF inp, IOBUF out, ulong stopoff );
 int skip_some_packets( IOBUF inp, unsigned n );
+#endif
+
 const byte *parse_sig_subpkt( const byte *buffer,
                              sigsubpkttype_t reqtype, size_t *ret_n );
 const byte *parse_sig_subpkt2( PKT_signature *sig,
index 29e4fc4..5bee45b 100644 (file)
@@ -1,14 +1,14 @@
 /* parse-packet.c  - read packets
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
@@ -39,7 +39,11 @@ static int mpi_print_mode = 0;
 static int list_mode = 0;
 
 static int  parse( IOBUF inp, PACKET *pkt, int reqtype,
-                  ulong *retpos, int *skip, IOBUF out, int do_skip );
+                  ulong *retpos, int *skip, IOBUF out, int do_skip
+           #ifdef DEBUG_PARSE_PACKET
+                  ,const char *dbg_w, const char *dbg_f, int dbg_l
+           #endif
+                );
 static int  copy_packet( IOBUF inp, IOBUF out, int pkttype,
                                               unsigned long pktlen );
 static void skip_packet( IOBUF inp, int pkttype, unsigned long pktlen );
@@ -119,6 +123,18 @@ unknown_pubkey_warning( int algo )
  * Note: The function may return an error and a partly valid packet;
  * caller must free this packet.
  */
+#ifdef DEBUG_PARSE_PACKET
+int
+dbg_parse_packet( IOBUF inp, PACKET *pkt, const char *dbg_f, int dbg_l )
+{
+    int skip, rc;
+
+    do {
+       rc = parse( inp, pkt, 0, NULL, &skip, NULL, 0, "parse", dbg_f, dbg_l );
+    } while( skip );
+    return rc;
+}
+#else
 int
 parse_packet( IOBUF inp, PACKET *pkt )
 {
@@ -129,10 +145,24 @@ parse_packet( IOBUF inp, PACKET *pkt )
     } while( skip );
     return rc;
 }
+#endif
 
 /****************
  * Like parse packet, but only return packets of the given type.
  */
+#ifdef DEBUG_PARSE_PACKET
+int
+dbg_search_packet( IOBUF inp, PACKET *pkt, int pkttype, ulong *retpos,
+                  const char *dbg_f, int dbg_l )
+{
+    int skip, rc;
+
+    do {
+       rc = parse( inp, pkt, pkttype, retpos, &skip, NULL, 0, "search", dbg_f, dbg_l );
+    } while( skip );
+    return rc;
+}
+#else
 int
 search_packet( IOBUF inp, PACKET *pkt, int pkttype, ulong *retpos )
 {
@@ -143,10 +173,24 @@ search_packet( IOBUF inp, PACKET *pkt, int pkttype, ulong *retpos )
     } while( skip );
     return rc;
 }
+#endif
 
 /****************
  * Copy all packets from INP to OUT, thereby removing unused spaces.
  */
+#ifdef DEBUG_PARSE_PACKET
+int
+dbg_copy_all_packets( IOBUF inp, IOBUF out,
+                  const char *dbg_f, int dbg_l )
+{
+    PACKET pkt;
+    int skip, rc=0;
+    do {
+       init_packet(&pkt);
+    } while( !(rc = parse( inp, &pkt, 0, NULL, &skip, out, 0, "copy", dbg_f, dbg_l )));
+    return rc;
+}
+#else
 int
 copy_all_packets( IOBUF inp, IOBUF out )
 {
@@ -157,11 +201,28 @@ copy_all_packets( IOBUF inp, IOBUF out )
     } while( !(rc = parse( inp, &pkt, 0, NULL, &skip, out, 0 )));
     return rc;
 }
+#endif
 
 /****************
  * Copy some packets from INP to OUT, thereby removing unused spaces.
  * Stop at offset STOPoff (i.e. don't copy packets at this or later offsets)
  */
+#ifdef DEBUG_PARSE_PACKET
+int
+dbg_copy_some_packets( IOBUF inp, IOBUF out, ulong stopoff,
+                  const char *dbg_f, int dbg_l )
+{
+    PACKET pkt;
+    int skip, rc=0;
+    do {
+       if( iobuf_tell(inp) >= stopoff )
+           return 0;
+       init_packet(&pkt);
+    } while( !(rc = parse( inp, &pkt, 0, NULL, &skip, out, 0,
+                                    "some", dbg_f, dbg_l )) );
+    return rc;
+}
+#else
 int
 copy_some_packets( IOBUF inp, IOBUF out, ulong stopoff )
 {
@@ -174,10 +235,26 @@ copy_some_packets( IOBUF inp, IOBUF out, ulong stopoff )
     } while( !(rc = parse( inp, &pkt, 0, NULL, &skip, out, 0 )) );
     return rc;
 }
+#endif
 
 /****************
  * Skip over N packets
  */
+#ifdef DEBUG_PARSE_PACKET
+int
+dbg_skip_some_packets( IOBUF inp, unsigned n,
+                  const char *dbg_f, int dbg_l )
+{
+    int skip, rc=0;
+    PACKET pkt;
+
+    for( ;n && !rc; n--) {
+       init_packet(&pkt);
+       rc = parse( inp, &pkt, 0, NULL, &skip, NULL, 1, "skip", dbg_f, dbg_l );
+    }
+    return rc;
+}
+#else
 int
 skip_some_packets( IOBUF inp, unsigned n )
 {
@@ -190,7 +267,7 @@ skip_some_packets( IOBUF inp, unsigned n )
     }
     return rc;
 }
-
+#endif
 
 
 /****************
@@ -202,7 +279,11 @@ skip_some_packets( IOBUF inp, unsigned n )
  */
 static int
 parse( IOBUF inp, PACKET *pkt, int reqtype, ulong *retpos,
-       int *skip, IOBUF out, int do_skip )
+       int *skip, IOBUF out, int do_skip
+#ifdef DEBUG_PARSE_PACKET
+       ,const char *dbg_w, const char *dbg_f, int dbg_l
+#endif
+     )
 {
     int rc=0, c, ctb, pkttype, lenbytes;
     unsigned long pktlen;
@@ -214,6 +295,7 @@ parse( IOBUF inp, PACKET *pkt, int reqtype, ulong *retpos,
     assert( !pkt->pkt.generic );
     if( retpos )
        *retpos = iobuf_tell(inp);
+
     if( (ctb = iobuf_get(inp)) == -1 ) {
        rc = -1;
        goto leave;
@@ -221,7 +303,8 @@ parse( IOBUF inp, PACKET *pkt, int reqtype, ulong *retpos,
     hdrlen=0;
     hdr[hdrlen++] = ctb;
     if( !(ctb & 0x80) ) {
-       log_error("%s: invalid packet (ctb=%02x)\n", iobuf_where(inp), ctb );
+       log_error("%s: invalid packet (ctb=%02x) near %lu\n",
+                           iobuf_where(inp), ctb, iobuf_tell(inp) );
        rc = G10ERR_INVALID_PACKET;
        goto leave;
     }
@@ -294,9 +377,16 @@ parse( IOBUF inp, PACKET *pkt, int reqtype, ulong *retpos,
        goto leave;
     }
 
-    if( DBG_PACKET )
+    if( DBG_PACKET ) {
+      #ifdef DEBUG_PARSE_PACKET
+       log_debug("parse_packet(iob=%d): type=%d length=%lu%s (%s.%s.%d)\n",
+                  iobuf_id(inp), pkttype, pktlen, new_ctb?" (new_ctb)":"",
+                   dbg_w, dbg_f, dbg_l );
+      #else
        log_debug("parse_packet(iob=%d): type=%d length=%lu%s\n",
                   iobuf_id(inp), pkttype, pktlen, new_ctb?" (new_ctb)":"" );
+      #endif
+    }
     pkt->pkttype = pkttype;
     rc = G10ERR_UNKNOWN_PACKET; /* default error */
     switch( pkttype ) {
@@ -384,6 +474,7 @@ copy_packet( IOBUF inp, IOBUF out, int pkttype, unsigned long pktlen )
                return G10ERR_WRITE_FILE; /* write error */
     }
     else if( !pktlen && pkttype == PKT_COMPRESSED ) {
+       log_debug("copy_packet: compressed!\n");
        /* compressed packet, copy till EOF */
        while( (n = iobuf_read( inp, buf, 100 )) != -1 )
            if( iobuf_write(out, buf, n ) )
index 966338f..7f975b8 100644 (file)
@@ -1,14 +1,14 @@
 /* passphrase.c -  Get a passphrase
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index fb0a89e..86c2391 100644 (file)
@@ -1,14 +1,14 @@
 /* pkclist.c
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
@@ -205,6 +205,8 @@ edit_ownertrust( ulong lid, int mode )
 
 /****************
  * Try to add some more owner trusts (interactive)
+ * This function presents all the signator in a certificate
+ * chain who have no trust value assigned.
  * Returns: -1 if no ownertrust were added.
  */
 static int
@@ -232,10 +234,18 @@ _("Could not find a valid trust path to the key.  Let's see whether we\n"
        if( lid == pk->local_id )
            continue;
        any=1;
-       if( otrust == TRUST_UNDEFINED || otrust == TRUST_EXPIRED ||
-           otrust == TRUST_UNKNOWN ) {
+       if( changed ) {
+           /* because enum_cert_paths() makes a snapshop of the
+            * trust paths, the otrust and validity are not anymore
+            * valid after changing an entry - we have to reread
+            * those values from then on
+            */
+           otrust = get_ownertrust( lid );
+       }
+       if( otrust == TRUST_UNDEFINED ) {
            any_undefined=1;
-           enum_cert_paths_print( &context, NULL, lid );
+           enum_cert_paths_print( &context, NULL, changed, lid );
+           tty_printf("\n");
            rc = edit_ownertrust( lid, 0 );
            if( rc == -1 ) {
                *quit = 1;
index d471b9f..60f00cb 100644 (file)
@@ -1,14 +1,14 @@
 /* plaintext.c -  process an plaintext packet
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 3426969..53ae418 100644 (file)
@@ -1,14 +1,14 @@
 /* pref.c
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index ec173c9..cc827bb 100644 (file)
@@ -1,14 +1,14 @@
 /* pref.h
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index cb021c4..4e6e784 100644 (file)
@@ -1,14 +1,14 @@
 /* pubkey-enc.c -  public key encoded packet handling
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 2491ee0..b4728e2 100644 (file)
@@ -1,14 +1,14 @@
 /* revoke.c
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 008fa18..d46094c 100644 (file)
@@ -1,14 +1,14 @@
 /* ringedit.c -  Function for key ring editing
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
@@ -298,7 +298,7 @@ add_keyblock_resource( const char *url, int force, int secret )
            else
                log_info(_("%s: keyring created\n"), filename );
        }
-      #ifdef __MINGW32__
+      #if __MINGW32__ || 1
        /* must close it again */
        iobuf_close( iobuf );
        iobuf = NULL;
@@ -687,6 +687,7 @@ enum_keyblocks( int mode, KBPOS *kbpos, KBNODE *ret_root )
        kbpos->resno = i;
        rentry = check_pos( kbpos );
        kbpos->rt = resource_table[i].rt;
+       kbpos->valid = 0;
        switch( kbpos->rt ) {
          case rt_RING:
            kbpos->fp = iobuf_open( rentry->fname );
@@ -860,7 +861,7 @@ update_keyblock( KBPOS *kbpos, KBNODE root )
  * A string "GnuPG user db", a \n.
  * user ids of one key, delimited by \t,
  * a # or ^ followed by a 20 byte fingerprint, followed by an \n
- * The literal characters =, \n, \t, #, ^ must be replaced by a equal sign
+ * The literal characters %, \n, \t, #, ^ must be replaced by a percent sign
  * and their hex value.
  *
  * (We use Boyer/Moore pattern matching)
@@ -1019,8 +1020,9 @@ keyring_search( PACKET *req, KBPOS *kbpos, IOBUF iobuf, const char *fname )
     init_packet(&pkt);
     save_mode = set_packet_list_mode(0);
     kbpos->rt = rt_RING;
+    kbpos->valid = 0;
 
-  #if __MINGW32__
+  #if __MINGW32__  || 1
     assert(!iobuf);
     iobuf = iobuf_open( fname );
     if( !iobuf ) {
@@ -1057,13 +1059,15 @@ keyring_search( PACKET *req, KBPOS *kbpos, IOBUF iobuf, const char *fname )
            BUG();
        free_packet(&pkt);
     }
-    if( !rc )
+    if( !rc ) {
        kbpos->offset = offset;
+       kbpos->valid = 1;
+    }
 
   leave:
     free_packet(&pkt);
     set_packet_list_mode(save_mode);
-  #if __MINGW32__
+  #if __MINGW32__ || 1
     iobuf_close(iobuf);
   #endif
     return rc;
@@ -1089,6 +1093,8 @@ keyring_read( KBPOS *kbpos, KBNODE *ret_root )
        return G10ERR_OPEN_FILE;
     }
 
+    if( !kbpos->valid )
+       log_debug("kbpos not valid in keyring_read, want %d\n", (int)kbpos->offset );
     if( iobuf_seek( a, kbpos->offset ) ) {
        log_error("can't seek to %lu\n", kbpos->offset);
        iobuf_close(a);
@@ -1112,6 +1118,12 @@ keyring_read( KBPOS *kbpos, KBNODE *ret_root )
        }
        /* make a linked list of all packets */
        switch( pkt->pkttype ) {
+         case PKT_COMPRESSED:
+           log_error("skipped compressed packet in keyring\n" );
+           free_packet(pkt);
+           init_packet(pkt);
+           break;
+
          case PKT_PUBLIC_KEY:
          case PKT_SECRET_KEY:
            if( in_cert )
@@ -1129,6 +1141,7 @@ keyring_read( KBPOS *kbpos, KBNODE *ret_root )
        }
     }
   ready:
+    kbpos->valid = 0;
     if( rc == -1 && root )
        rc = 0;
 
@@ -1174,6 +1187,12 @@ keyring_enum( KBPOS *kbpos, KBNODE *ret_root, int skipsigs )
        }
        /* make a linked list of all packets */
        switch( pkt->pkttype ) {
+         case PKT_COMPRESSED:
+           log_error("skipped compressed packet in keyring\n" );
+           free_packet(pkt);
+           init_packet(pkt);
+           break;
+
          case PKT_PUBLIC_KEY:
          case PKT_SECRET_KEY:
            if( root ) { /* store this packet */
@@ -1387,6 +1406,7 @@ keyring_copy( KBPOS *kbpos, int mode, KBNODE root )
                goto leave;
            }
        }
+       kbpos->valid = 0;
     }
 
     if( mode == 2 || mode == 3 ) { /* delete or update */
index 1950ae0..6adfafd 100644 (file)
@@ -1,14 +1,14 @@
 /* seckey-cert.c -  secret key certifucate packet handling
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index b9dab28..bb158ab 100644 (file)
@@ -1,14 +1,14 @@
 /* seskey.c -  make sesssion keys etc.
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 63bdda2..355f6cd 100644 (file)
@@ -1,14 +1,14 @@
 /* sig-check.c -  Check a signature
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index f3373ed..8a9ef0b 100644 (file)
@@ -1,14 +1,14 @@
 /* sign.c - sign data
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 8a0f3fe..1f599d9 100644 (file)
@@ -1,14 +1,14 @@
 /* signal.c - signal handling
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index caaab20..baf4a5c 100644 (file)
@@ -1,14 +1,14 @@
 /* skclist.c
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index e441d5e..71a4e83 100644 (file)
@@ -1,14 +1,14 @@
 /* status.c
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 4adce12..fa15836 100644 (file)
@@ -1,14 +1,14 @@
 /* status.h
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 5d1864c..f7ba36f 100644 (file)
@@ -1,14 +1,14 @@
 /* tdbio.c
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index d2d369b..925c7f9 100644 (file)
@@ -1,14 +1,14 @@
 /* tdbio.h - Trust database I/O functions
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index fc81a91..9e820d1 100644 (file)
@@ -1,14 +1,14 @@
 /* textfilter.c
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index ff05a32..de76a25 100644 (file)
@@ -1,14 +1,14 @@
 /* trustdb.c
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
@@ -1750,7 +1750,8 @@ enum_cert_paths( void **context, ulong *lid,
  * Print the current path
  */
 int
-enum_cert_paths_print( void **context, FILE *fp, ulong selected_lid )
+enum_cert_paths_print( void **context, FILE *fp,
+                                      int refresh, ulong selected_lid )
 {
     struct enum_cert_paths_ctx *ctx;
     TRUST_SEG_LIST tsl;
@@ -1760,11 +1761,32 @@ enum_cert_paths_print( void **context, FILE *fp, ulong selected_lid )
     ctx = *context;
     if( !ctx->tsl )
        return;
+    tsl = ctx->tsl;
 
     if( !fp )
        fp = stderr;
 
-    print_path( ctx->tsl->pathlen, ctx->tsl->path, fp, selected_lid );
+    if( refresh ) { /* update the ownertrust and if possible the validity */
+       int i;
+       int match = tdbio_db_matches_options();
+
+       for( i = 0; i < tsl->pathlen; i++ )  {
+           TRUSTREC rec;
+
+           read_record( tsl->path[i].lid, &rec, RECTYPE_DIR );
+           tsl->path[i].otrust = rec.r.dir.ownertrust;
+           /* update validity only if we have it in the cache
+            * calculation is too time consuming */
+           if( match && (rec.r.dir.dirflags & DIRF_VALVALID)
+                     && rec.r.dir.validity ) {
+               tsl->path[i].trust = rec.r.dir.validity;
+               if( rec.r.dir.dirflags & DIRF_REVOKED )
+                   tsl->path[i].trust = TRUST_FLAG_REVOKED;
+           }
+       }
+    }
+
+    print_path( tsl->pathlen, tsl->path, fp, selected_lid );
 }
 
 
index fd92826..52caadb 100644 (file)
@@ -1,14 +1,14 @@
 /* trustdb.h - Trust database
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
@@ -53,7 +53,8 @@ int check_trust( PKT_public_key *pk, unsigned *r_trustlevel );
 int query_trust_info( PKT_public_key *pk );
 int enum_cert_paths( void **context, ulong *lid,
                     unsigned *ownertrust, unsigned *validity );
-int enum_cert_paths_print( void **context, FILE *fp, ulong selected_lid );
+int enum_cert_paths_print( void **context, FILE *fp,
+                                          int refresh, ulong selected_lid );
 unsigned get_ownertrust( ulong lid );
 int get_ownertrust_info( ulong lid );
 byte *get_pref_data( ulong lid, const byte *namehash, size_t *ret_n );
index 02cc5d0..86537d0 100644 (file)
@@ -1,14 +1,14 @@
 /* verify.c - verify signed data
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 3100ea3..eb9c9be 100644 (file)
@@ -1,14 +1,14 @@
 /* g10m.c  -  Wrapper for MPI
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 9e70316..3dd22eb 100644 (file)
@@ -2,14 +2,14 @@
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *     Copyright (C) 1994, 1996 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index f60d5e3..8ca5c57 100644 (file)
@@ -1,14 +1,14 @@
 /* mpi-bit.c  -  MPI bit level fucntions
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 7d4c833..f4dd70e 100644 (file)
@@ -1,14 +1,14 @@
 /* mpi-cmp.c  -  MPI functions
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index b5f5809..6e50456 100644 (file)
@@ -2,14 +2,14 @@
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *     Copyright (C) 1994, 1996 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index eabee63..226faf1 100644 (file)
@@ -1,14 +1,14 @@
 /* mpi-gcd.c  -  MPI functions
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index fab7905..5dc6fc0 100644 (file)
@@ -2,14 +2,14 @@
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *     Copyright (C) 1994, 1996 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index f0b414d..f73efb7 100644 (file)
@@ -2,14 +2,14 @@
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *     Copyright (C) 1994, 1996 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index fca6096..6675712 100644 (file)
@@ -1,14 +1,14 @@
 /* mpi-inv.c  -  MPI functions
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 0a7ef50..689a760 100644 (file)
@@ -1,14 +1,14 @@
 /* mpi-mpow.c  -  MPI functions
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 74967fa..df8eb25 100644 (file)
@@ -2,14 +2,14 @@
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *     Copyright (C) 1994, 1996 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 2443048..96a1218 100644 (file)
@@ -2,14 +2,14 @@
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *     Copyright (C) 1994, 1996 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index d0a3ef5..82ac726 100644 (file)
@@ -1,14 +1,14 @@
 /* mpi-scan.c  -  MPI functions
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 1fab786..2ef4c14 100644 (file)
@@ -1,14 +1,14 @@
 /* mpicoder.c  -  Coder for the external representation of MPIs
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 566469c..d6b0c3e 100644 (file)
@@ -2,14 +2,14 @@
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *     Copyright (C) 1994, 1996 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index dad993c..9c9cb4a 100644 (file)
@@ -2,14 +2,14 @@
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *     Copyright (C) 1994, 1996 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index cda6150..0d711cb 100644 (file)
@@ -2,14 +2,14 @@
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *     Copyright (C) 1994, 1996 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index f402f4a..b457a0b 100644 (file)
@@ -2,14 +2,14 @@
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *     Copyright (C) 1994, 1996 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 52d25b3..7bfcdde 100644 (file)
@@ -2,14 +2,14 @@
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *     Copyright (C) 1994, 1996 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index 18af9e0..d90cd4d 100644 (file)
@@ -1,14 +1,14 @@
 /* mpiutil.ac  -  Utility functions for MPI
  *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of GNUPG.
+ * This file is part of GnuPG.
  *
- * GNUPG is free software; you can redistribute it and/or modify
+ * GnuPG is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  * the Free Software Foundation; either version 2 of the License, or
  * (at your option) any later version.
  *
- * GNUPG is distributed in the hope that it will be useful,
+ * GnuPG is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
index a3b700a..b8cad6d 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -4,7 +4,7 @@
 #
 msgid ""
 msgstr ""
-"POT-Creation-Date: 1998-12-09 00:39+0100\n"
+"POT-Creation-Date: 1998-12-17 18:30+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"
@@ -217,11 +217,12 @@ 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:379
+#: cipher/random.c:406
 msgid "WARNING: using insecure random number generator!!\n"
-msgstr "WARNUNG: Der Zufallszahlengenerator erzeugt keine echten Zufallszahlen!\n"
+msgstr ""
+"WARNUNG: Der Zufallszahlengenerator erzeugt keine echten Zufallszahlen!\n"
 
-#: cipher/random.c:380
+#: cipher/random.c:407
 msgid ""
 "The random number generator is only a kludge to let\n"
 "it run - it is in no way a strong RNG!\n"
@@ -235,7 +236,7 @@ msgstr ""
 "BENUTZEN SIE DIE DURCH DIESES PROGRAMM ERZEUGTEN DATEN NICHT!\n"
 "\n"
 
-#: cipher/rndlinux.c:154
+#: cipher/rndlinux.c:118
 #, c-format
 msgid ""
 "\n"
@@ -247,7 +248,7 @@ msgstr ""
 "Arbeiten durch, damit das Betriebssystem weitere Entropie sammeln kann!\n"
 "(Es werden noch %d Byte benötigt.)\n"
 
-#: g10/g10.c:158
+#: g10/g10.c:160
 msgid ""
 "@Commands:\n"
 " "
@@ -255,123 +256,123 @@ msgstr ""
 "@Kommandos:\n"
 " "
 
-#: g10/g10.c:161
+#: g10/g10.c:163
 msgid "|[file]|make a signature"
 msgstr "|[file]|Eine Unterschrift erzeugen"
 
-#: g10/g10.c:162
+#: g10/g10.c:164
 msgid "|[file]|make a clear text signature"
 msgstr "|[file]|Eine Klartextunterschrift erzeugen"
 
-#: g10/g10.c:163
+#: g10/g10.c:165
 msgid "make a detached signature"
 msgstr "Eine abgetrennte Unterschrift erzeugen"
 
-#: g10/g10.c:164
+#: g10/g10.c:166
 msgid "encrypt data"
 msgstr "Daten verschlüsseln"
 
-#: g10/g10.c:165
+#: g10/g10.c:167
 msgid "encryption only with symmetric cipher"
 msgstr "Daten nur symmetrisch verschlüsseln"
 
-#: g10/g10.c:166
+#: g10/g10.c:168
 msgid "store only"
 msgstr "Nur speichern"
 
-#: g10/g10.c:167
+#: g10/g10.c:169
 msgid "decrypt data (default)"
 msgstr "Daten entschlüsseln  (Voreinstellung)"
 
-#: g10/g10.c:168
+#: g10/g10.c:170
 msgid "verify a signature"
 msgstr "Signatur prüfen"
 
-#: g10/g10.c:170
+#: g10/g10.c:172
 msgid "list keys"
 msgstr "Liste der Schlüssel"
 
-#: g10/g10.c:171
+#: g10/g10.c:173
 msgid "list keys and signatures"
 msgstr "Liste der Schlüssel und ihrer Signaturen"
 
-#: g10/g10.c:172
+#: g10/g10.c:174
 msgid "check key signatures"
 msgstr "Signaturen der Schlüssel prüfen"
 
-#: g10/g10.c:173
+#: g10/g10.c:175
 msgid "list keys and fingerprints"
 msgstr "Liste der Schlüssel und ihrer \"Fingerabdrücke\""
 
-#: g10/g10.c:174
+#: g10/g10.c:176
 msgid "list secret keys"
 msgstr "Liste der geheimen Schlüssel"
 
-#: g10/g10.c:176
+#: g10/g10.c:178
 msgid "generate a new key pair"
 msgstr "Ein neues Schlüsselpaar erzeugen"
 
-#: g10/g10.c:178
+#: g10/g10.c:180
 msgid "remove key from the public keyring"
 msgstr "Schlüssel entfernen"
 
-#: g10/g10.c:180
+#: g10/g10.c:182
 msgid "sign or edit a key"
 msgstr "Unterschreiben oder Bearbeiten eines Schlüssels"
 
-#: g10/g10.c:181
+#: g10/g10.c:183
 msgid "generate a revocation certificate"
 msgstr "Ein Schlüsselwiderruf-Zertifikat erzeugen"
 
-#: g10/g10.c:183
+#: g10/g10.c:185
 msgid "export keys"
 msgstr "Schlüssel exportieren"
 
-#: g10/g10.c:185
+#: g10/g10.c:188
 msgid "import/merge keys"
 msgstr "Schlüssel importieren/kombinieren"
 
-#: g10/g10.c:187
+#: g10/g10.c:190
 msgid "list only the sequence of packets"
 msgstr "Lediglich die Struktur der Datenpackete anzeigen"
 
-#: g10/g10.c:190
+#: g10/g10.c:193
 msgid "export the ownertrust values"
 msgstr "Exportieren der \"Owner trust\" Werte"
 
-#: g10/g10.c:192
+#: g10/g10.c:195
 msgid "import ownertrust values"
 msgstr "Importieren der \"Owner trust\" Werte"
 
-#: g10/g10.c:194
+#: g10/g10.c:197
 msgid "|[NAMES]|update the trust database"
 msgstr "|[NAMES]|Ändern der \"Trust\"-Datenbank"
 
-#: g10/g10.c:196
+#: g10/g10.c:199
 msgid "|[NAMES]|check the trust database"
 msgstr "|[NAMES]|Überprüfen der \"Trust\"-Datenbank"
 
-#: g10/g10.c:197
+#: g10/g10.c:200
 msgid "fix a corrupted trust database"
 msgstr "Reparieren einer beschädigten \"Trust\"-Datenbank"
 
-#: g10/g10.c:198
+#: g10/g10.c:201
 msgid "De-Armor a file or stdin"
 msgstr "Datei oder stdin von der ASCII-Hülle befreien"
 
-#: g10/g10.c:199
+#: g10/g10.c:202
 msgid "En-Armor a file or stdin"
 msgstr "Datei oder stdin in eine ASCII-Hülle einpacken"
 
-#: g10/g10.c:200
+#: g10/g10.c:203
 msgid "|algo [files]|print message digests"
 msgstr "|algo [files]|Message-Digests für die Dateien ausgeben"
 
-#: g10/g10.c:201
+#: g10/g10.c:204
 msgid "print all message digests"
 msgstr "Message-Digests für die Eingabedaten ausgeben"
 
-#: g10/g10.c:208
+#: g10/g10.c:211
 msgid ""
 "@\n"
 "Options:\n"
@@ -381,140 +382,140 @@ msgstr ""
 "Optionen:\n"
 " "
 
-#: g10/g10.c:210
+#: g10/g10.c:213
 msgid "create ascii armored output"
 msgstr "Ausgabe mit ASCII-Hülle versehen"
 
-#: g10/g10.c:212
+#: g10/g10.c:215
 msgid "use this user-id to sign or decrypt"
 msgstr "Mit dieser User-ID signieren"
 
-#: g10/g10.c:213
+#: g10/g10.c:216
 msgid "use this user-id for encryption"
 msgstr "Verschlüsseln für diese User-ID"
 
-#: g10/g10.c:214
+#: g10/g10.c:217
 msgid "|N|set compress level N (0 disables)"
 msgstr "Kompressionsstufe auf N setzen (0 = keine Kompr.)"
 
-#: g10/g10.c:216
+#: g10/g10.c:219
 msgid "use canonical text mode"
 msgstr "Textmodus benutzen"
 
-#: g10/g10.c:218
+#: g10/g10.c:221
 msgid "use as output file"
 msgstr "Als Ausgabedatei benutzen"
 
-#: g10/g10.c:219
+#: g10/g10.c:222
 msgid "verbose"
 msgstr "Detaillierte Informationen"
 
-#: g10/g10.c:220
+#: g10/g10.c:223
 msgid "be somewhat more quiet"
 msgstr "Etwas weniger Infos"
 
-#: g10/g10.c:221
+#: g10/g10.c:224
 msgid "force v3 signatures"
 msgstr "v3 Signaturen erzwingen"
 
 #. { oDryRun, "dry-run",   0, N_("do not make any changes") },
-#: g10/g10.c:223
+#: g10/g10.c:226
 msgid "batch mode: never ask"
 msgstr "Stapelmodus: Keine Abfragen"
 
-#: g10/g10.c:224
+#: g10/g10.c:227
 msgid "assume yes on most questions"
 msgstr "\"Ja\" als Standardantwort annehmen"
 
-#: g10/g10.c:225
+#: g10/g10.c:228
 msgid "assume no on most questions"
 msgstr "\"Nein\" als Standardantwort annehmen"
 
-#: g10/g10.c:226
+#: g10/g10.c:229
 msgid "add this keyring to the list of keyrings"
 msgstr "Als öffentlichen Schlüsselbund mitbenutzen"
 
-#: g10/g10.c:227
+#: g10/g10.c:230
 msgid "add this secret keyring to the list"
 msgstr "Als geheimen Schlüsselbund mitbenutzen"
 
-#: g10/g10.c:228
+#: g10/g10.c:231
 msgid "|NAME|use NAME as default secret key"
 msgstr "|NAME|NAME als voreingestellten Schlüssel benutzen"
 
-#: g10/g10.c:229
+#: g10/g10.c:232
 msgid "|NAME|set terminal charset to NAME"
 msgstr "|NAME|Terminalzeichensatz NAME benutzen"
 
-#: g10/g10.c:230
+#: g10/g10.c:233
 msgid "read options from file"
 msgstr "Optionen aus der Datei lesen"
 
-#: g10/g10.c:232
+#: g10/g10.c:235
 msgid "set debugging flags"
 msgstr "Debug-Flags einschalten"
 
-#: g10/g10.c:233
+#: g10/g10.c:236
 msgid "enable full debugging"
 msgstr "Alle Debug-Flags einschalten"
 
-#: g10/g10.c:234
+#: g10/g10.c:237
 msgid "|FD|write status info to this FD"
 msgstr "|FD|Statusinfo auf FD (Dateihandle) ausgeben"
 
-#: g10/g10.c:235
+#: g10/g10.c:238
 msgid "do not write comment packets"
 msgstr "Keine Kommentarpakete schreiben"
 
-#: g10/g10.c:236
+#: g10/g10.c:239
 msgid "(default is 1)"
 msgstr "Benötigte Vollvertrauen (Voreinstellung 1)"
 
-#: g10/g10.c:237
+#: g10/g10.c:240
 msgid "(default is 3)"
 msgstr "Benötigte Teilvertrauen (Voreinstellung 3)"
 
-#: g10/g10.c:239
+#: g10/g10.c:242
 msgid "|KEYID|ulimately trust this key"
 msgstr "|KEYID|Diesem Schlüssel uneingeschränkt vertrauen"
 
-#: g10/g10.c:240
+#: g10/g10.c:243
 msgid "|FILE|load extension module FILE"
 msgstr "|FILE|Erweiterungsmodul DATEI laden"
 
-#: g10/g10.c:241
+#: g10/g10.c:244
 msgid "emulate the mode described in RFC1991"
 msgstr "Den in RFC1991 beschriebenen Modus nachahmen"
 
-#: g10/g10.c:242
+#: g10/g10.c:245
 msgid "|N|use passphrase mode N"
 msgstr "|N|Verwenden des Mantra-Modus N"
 
-#: g10/g10.c:244
+#: g10/g10.c:247
 msgid "|NAME|use message digest algorithm NAME for passphrases"
 msgstr "|NAME|Das Hashverfahren NAME für Mantras benutzen"
 
-#: g10/g10.c:246
+#: g10/g10.c:249
 msgid "|NAME|use cipher algorithm NAME for passphrases"
 msgstr "|NAME|Das Verschlü.verfahren NAME für Mantras benutzen"
 
-#: g10/g10.c:248
+#: g10/g10.c:251
 msgid "|NAME|use cipher algorithm NAME"
 msgstr "|NAME|Das Verschlü.verfahren NAME benutzen"
 
-#: g10/g10.c:249
+#: g10/g10.c:252
 msgid "|NAME|use message digest algorithm NAME"
 msgstr "|NAME|Das Hashverfahren NAME benutzen"
 
-#: g10/g10.c:250
+#: g10/g10.c:253
 msgid "|N|use compress algorithm N"
 msgstr "|N|Die Komprimierverfahren N benutzen"
 
-#: g10/g10.c:251
+#: g10/g10.c:254
 msgid "throw keyid field of encrypted packets"
 msgstr "entferne die AbsenderI-ID verschlüsselter Pakete"
 
-#: g10/g10.c:259
+#: g10/g10.c:262
 msgid ""
 "@\n"
 "Examples:\n"
@@ -534,19 +535,19 @@ msgstr ""
 " --list-keys [Namen]        Schlüssel anzeigen\n"
 " --fingerprint [Namen]      \"Fingerabdrücke\" anzeigen\n"
 
-#: g10/g10.c:337
+#: g10/g10.c:341
 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:342
+#: g10/g10.c:346
 msgid "Usage: gpgm [options] [files] (-h for help)"
 msgstr "Syntax: gpgm [Optionen] [Dateien] (-h für Hilfe)"
 
-#: g10/g10.c:344
+#: g10/g10.c:348
 msgid "Usage: gpg [options] [files] (-h for help)"
 msgstr "Aufruf: gpg [Optionen] [Dateien] (-h für Hilfe)"
 
-#: g10/g10.c:349
+#: g10/g10.c:353
 msgid ""
 "Syntax: gpgm [options] [files]\n"
 "GnuPG maintenance utility\n"
@@ -554,7 +555,7 @@ msgstr ""
 "Syntax: gpgm [options] [files]\n"
 "GnuPG Wartungs-Hilfsprogramm\n"
 
-#: g10/g10.c:352
+#: g10/g10.c:356
 msgid ""
 "Syntax: gpg [options] [files]\n"
 "sign, check, encrypt or decrypt\n"
@@ -564,7 +565,7 @@ msgstr ""
 "Signieren, prüfen, verschlüsseln, entschlüsseln\n"
 "Die voreingestellte Operation ist abhängig von den Eingabedaten\n"
 
-#: g10/g10.c:358
+#: g10/g10.c:362
 msgid ""
 "\n"
 "Supported algorithms:\n"
@@ -572,161 +573,153 @@ msgstr ""
 "\n"
 "Unterstützte Verfahren:\n"
 
-#: g10/g10.c:433
+#: g10/g10.c:437
 msgid "usage: gpgm [options] "
 msgstr "Aufruf: gpgm [Optionen] "
 
-#: g10/g10.c:435
+#: g10/g10.c:439
 msgid "usage: gpg [options] "
 msgstr "Aufruf: gpg [Optionen] "
 
-#: g10/g10.c:476
+#: g10/g10.c:480
 msgid "conflicting commands\n"
 msgstr "Widersprüchliche Kommandos\n"
 
-#: g10/g10.c:614
+#: g10/g10.c:618
 #, c-format
 msgid "NOTE: no default option file '%s'\n"
 msgstr "Hinweis: Keine voreingestellte Optionendatei '%s' vorhanden\n"
 
-#: g10/g10.c:618
+#: g10/g10.c:622
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "Optionendatei '%s': %s\n"
 
-#: g10/g10.c:625
+#: g10/g10.c:629
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "Optionen werden aus '%s' gelesen\n"
 
-#: g10/g10.c:773
+#: g10/g10.c:782
 #, c-format
 msgid "%s is not a valid character set\n"
 msgstr "%s ist kein gültiger Zeichensatz.\n"
 
-#: g10/g10.c:807 g10/g10.c:819
+#: g10/g10.c:817 g10/g10.c:829
 msgid "selected cipher algorithm is invalid\n"
 msgstr "Das ausgewählte Verschlüsslungsverfahren ist ungültig\n"
 
-#: g10/g10.c:813 g10/g10.c:825
+#: g10/g10.c:823 g10/g10.c:835
 msgid "selected digest algorithm is invalid\n"
 msgstr "Das ausgewählte Hashverfahren ist ungültig\n"
 
-#: g10/g10.c:828
+#: g10/g10.c:838
 #, 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:830
+#: g10/g10.c:840
 msgid "completes-needed must be greater than 0\n"
 msgstr "completes-needed müssen größer als 0 sein\n"
 
-#: g10/g10.c:832
+#: g10/g10.c:842
 msgid "marginals-needed must be greater than 1\n"
 msgstr "marginals-needed müssen größer als 1 sein\n"
 
-#: g10/g10.c:834
+#: g10/g10.c:844
 msgid "max-cert-depth must be in range 1 to 255\n"
 msgstr "max-cert-depth muß im Bereich 1 bis 255 liegen\n"
 
-#: g10/g10.c:837
+#: g10/g10.c:847
 msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
 msgstr "Hinweis: Vom \"simple S2K\"-Modus (0) ist strikt abzuraten\n"
 
-#: g10/g10.c:841
+#: g10/g10.c:851
 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:924
+#: g10/g10.c:934
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
 msgstr "Die Trust-DB kann nicht initialisiert werden: %s\n"
 
-#: g10/g10.c:930
+#: g10/g10.c:940
 msgid "--store [filename]"
 msgstr "--store [Dateiname]"
 
-#: g10/g10.c:938
+#: g10/g10.c:948
 msgid "--symmetric [filename]"
 msgstr "--symmetric [Dateiname]"
 
-#: g10/g10.c:946
+#: g10/g10.c:956
 msgid "--encrypt [filename]"
 msgstr "--encrypt [Dateiname]"
 
-#: g10/g10.c:959
+#: g10/g10.c:969
 msgid "--sign [filename]"
 msgstr "--sign [Dateiname]"
 
-#: g10/g10.c:972
+#: g10/g10.c:982
 msgid "--sign --encrypt [filename]"
 msgstr "--sign --encrypt [Dateiname]"
 
-#: g10/g10.c:986
+#: g10/g10.c:996
 msgid "--clearsign [filename]"
 msgstr "--clearsign [Dateiname]"
 
-#: g10/g10.c:998
+#: g10/g10.c:1008
 msgid "--decrypt [filename]"
 msgstr "--decrypt [Dateiname]"
 
-#: g10/g10.c:1007
+#: g10/g10.c:1017
 msgid "--edit-key username [commands]"
 msgstr "--edit-key Username [Befehle]"
 
-#: g10/g10.c:1023
+#: g10/g10.c:1033
 msgid "--delete-secret-key username"
 msgstr "--delete-secret-key Username"
 
-#: g10/g10.c:1026
+#: g10/g10.c:1036
 msgid "--delete-key username"
 msgstr "--delete-key Benutzername"
 
-#: g10/encode.c:216 g10/g10.c:1049 g10/sign.c:301
+#: g10/encode.c:216 g10/g10.c:1059 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:1060
+#: g10/g10.c:1070
 msgid "-k[v][v][v][c] [userid] [keyring]"
 msgstr "-k[v][v][v][c] [Benutzername] [Keyring]"
 
-#: g10/g10.c:1116
+#: g10/g10.c:1127
 #, c-format
 msgid "dearmoring failed: %s\n"
 msgstr "Entfernen der ASCII-Hülle ist fehlgeschlagen: %s\n"
 
-#: g10/g10.c:1124
+#: g10/g10.c:1135
 #, c-format
 msgid "enarmoring failed: %s\n"
 msgstr "Anbringen der ASCII-Hülle ist fehlgeschlagen: %s\n"
 
-#: g10/g10.c:1190
+#: g10/g10.c:1201
 #, c-format
 msgid "invalid hash algorithm '%s'\n"
 msgstr "Ungültiges Hashverfahren '%s'\n"
 
-#: g10/g10.c:1269
+#: g10/g10.c:1280
 msgid "[filename]"
 msgstr "[Dateiname]"
 
-#: g10/g10.c:1273
+#: g10/g10.c:1284
 msgid "Go ahead and type your message ...\n"
 msgstr "Auf geht's - Botschaft eintippen ...\n"
 
-#: g10/decrypt.c:59 g10/g10.c:1276 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1287 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: "
@@ -786,7 +779,7 @@ msgstr "Fehler in der Nachsatzzeile\n"
 msgid "no valid RFC1991 or OpenPGP data found.\n"
 msgstr "Keine gültigen RFC1991- oder OpenPGP-Daten gefunden.\n"
 
-#: g10/pkclist.c:121
+#: g10/pkclist.c:138
 #, c-format
 msgid ""
 "No trust value assigned to %lu:\n"
@@ -795,7 +788,7 @@ msgstr ""
 "Es ist kein \"Owner trust\" für %lu definiert:\n"
 "%4u%c/%08lX %s \""
 
-#: g10/pkclist.c:131
+#: g10/pkclist.c:148
 msgid ""
 "Please decide how far you trust this user to correctly\n"
 "verify other users' keys (by looking at passports,\n"
@@ -818,25 +811,30 @@ msgstr ""
 " 4 = Ich vertraue ihm vollständig\n"
 " s = Bitte weitere Information anzeigen\n"
 
-#: g10/pkclist.c:140
+#: g10/pkclist.c:157
 msgid " m = back to the main menu\n"
 msgstr " m = Zurück zum Menü\n"
 
+#: g10/pkclist.c:159
+msgid " q = quit\n"
+msgstr " q = Beenden\n"
+
 # valid user replies (not including 1..4)
 #. a string with valid answers
-#: g10/pkclist.c:145
-msgid "sSmM"
-msgstr "sSmM"
+#: g10/pkclist.c:164
+#, fuzzy
+msgid "sSmMqQ"
+msgstr "sSmMqQ"
 
-#: g10/pkclist.c:149
+#: g10/pkclist.c:168
 msgid "Your decision? "
 msgstr "Ihre Auswahl? "
 
-#: g10/pkclist.c:169
+#: g10/pkclist.c:188
 msgid "Certificates leading to an ultimately trusted key:\n"
 msgstr "Zertifikate führen zu einem letztlich vertrauenswürdigen Schlüssel:\n"
 
-#: g10/pkclist.c:197
+#: g10/pkclist.c:221
 msgid ""
 "Could not find a valid trust path to the key.  Let's see whether we\n"
 "can assign some missing owner trust values.\n"
@@ -847,7 +845,7 @@ msgstr ""
 "ermitteln können.\n"
 "\n"
 
-#: g10/pkclist.c:219
+#: g10/pkclist.c:251
 msgid ""
 "No path leading to one of our keys found.\n"
 "\n"
@@ -855,7 +853,7 @@ msgstr ""
 "Kein Pfad führt zu einen unserer Schlüsseln.\n"
 "\n"
 
-#: g10/pkclist.c:221
+#: g10/pkclist.c:253
 msgid ""
 "No certificates with undefined trust found.\n"
 "\n"
@@ -863,7 +861,7 @@ msgstr ""
 "Keine Zertifikate mit undefinierten Vertrauen gefunden.\n"
 "\n"
 
-#: g10/pkclist.c:223
+#: g10/pkclist.c:255
 msgid ""
 "No trust values changed.\n"
 "\n"
@@ -871,33 +869,33 @@ msgstr ""
 "Keine \"trust\" Werte geändert.\n"
 "\n"
 
-#: g10/pkclist.c:238
+#: g10/pkclist.c:270
 #, c-format
 msgid "key %08lX: key has been revoked!\n"
 msgstr "Schlüssel %08lX: Schlüssel wurde widerrufen\n"
 
-#: g10/pkclist.c:244 g10/pkclist.c:335
+#: g10/pkclist.c:276 g10/pkclist.c:369
 msgid "Use this key anyway? "
 msgstr "Diesen Schlüssel trotzdem benutzen?"
 
-#: g10/pkclist.c:266
+#: g10/pkclist.c:298
 #, c-format
 msgid "%08lX: key has expired\n"
 msgstr "%08lX: Schlüssel ist verfallen!\n"
 
-#: g10/pkclist.c:272
+#: g10/pkclist.c:304
 #, c-format
 msgid "%08lX: no info to calculate a trust probability\n"
 msgstr ""
 "%08lX: Keine Infos zur Berechnung der Vertrauenswahrscheinlichkeit "
 "vorgefunden\n"
 
-#: g10/pkclist.c:288
+#: g10/pkclist.c:322
 #, c-format
 msgid "%08lX: We do NOT trust this key\n"
 msgstr "%08lX: Wir haben KEIN Vertrauen zu diesem Schlüssel!\n"
 
-#: g10/pkclist.c:294
+#: g10/pkclist.c:328
 #, c-format
 msgid ""
 "%08lX: It is not sure that this key really belongs to the owner\n"
@@ -906,19 +904,19 @@ msgstr ""
 "%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
+#: g10/pkclist.c:334
 msgid "This key probably belongs to the owner\n"
 msgstr ""
 "Dieser Schlüssel gehört uns (alldieweil wir den geheimen Schlüssel dazu "
 "haben)\n"
 
-#: g10/pkclist.c:305
+#: g10/pkclist.c:339
 msgid "This key belongs to us\n"
 msgstr ""
 "Dieser Schlüssel gehört uns (alldieweil wir den geheimen Schlüssel dazu "
 "haben)\n"
 
-#: g10/pkclist.c:330
+#: g10/pkclist.c:364
 msgid ""
 "It is NOT certain that the key belongs to its owner.\n"
 "If you *really* know what you are doing, you may answer\n"
@@ -929,55 +927,55 @@ msgstr ""
 "Wenn Sie *wirklich* wissen, was Sie tun, können Sie die nächste\n"
 "Frage mit ja beantworten\n"
 
-#: g10/pkclist.c:339
+#: g10/pkclist.c:373
 msgid "WARNING: Using untrusted key!\n"
 msgstr "WARNUNG: Ein Schlüssel ohne gesichertes Vertrauen wird benutzt!\n"
 
-#: g10/pkclist.c:375
+#: g10/pkclist.c:409
 msgid "WARNING: This key has been revoked by its owner!\n"
 msgstr "WARNUNG: Dieser Schlüssel wurde von seinem Besitzer widerrufen!\n"
 
-#: g10/pkclist.c:376
+#: g10/pkclist.c:410
 msgid "         This could mean that the signature is forgery.\n"
 msgstr "         Das könnte bedeuten, daß die Signatur gefälscht ist.\n"
 
-#: g10/pkclist.c:397
+#: g10/pkclist.c:431
 msgid "Note: This key has expired!\n"
 msgstr "Hinweis: Dieser Schlüssel ist verfallen!\n"
 
-#: g10/pkclist.c:404
+#: g10/pkclist.c:438
 msgid "WARNING: This key is not certified with a trusted signature!\n"
 msgstr "WARNUNG: Dieser Schlüssel trägt keine vertrauenswürdige Signatur!\n"
 
-#: g10/pkclist.c:406
+#: g10/pkclist.c:440
 msgid ""
 "         There is no indication that the signature belongs to the owner.\n"
 msgstr ""
 "         Es gibt keinen Hinweis, daß die Signatur wirklich dem vorgeblichen "
 "Besitzer gehört.\n"
 
-#: g10/pkclist.c:421
+#: g10/pkclist.c:456
 msgid "WARNING: We do NOT trust this key!\n"
 msgstr "WARNUNG: Wir haben KEIN Vertrauen zu diesem Schlüssel!\n"
 
-#: g10/pkclist.c:422
+#: g10/pkclist.c:457
 msgid "         The signature is probably a FORGERY.\n"
 msgstr "         Die Signatur ist wahrscheinlich eine FÄLSCHUNG.\n"
 
-#: g10/pkclist.c:429
+#: g10/pkclist.c:464
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
 msgstr ""
 "WARNUNG: Dieser Schlüssel ist nicht durch hinreichend vertrauenswürdige "
 "Signaturen zertifiziert!\n"
 
-#: g10/pkclist.c:432
+#: g10/pkclist.c:467
 msgid "         It is not certain that the signature belongs to the owner.\n"
 msgstr ""
 "         Es ist nicht sicher, daß die Signatur wirklich dem vorgeblichen "
 "Besitzer gehört.\n"
 
-#: g10/pkclist.c:477
+#: g10/pkclist.c:512
 msgid ""
 "You did not specify a user ID. (you may use \"-r\")\n"
 "\n"
@@ -985,25 +983,25 @@ msgstr ""
 "Sie gaben keine User-ID angegeben (Benutzen Sie die Option \"-r\").\n"
 "\n"
 
-#: g10/pkclist.c:482
+#: g10/pkclist.c:517
 msgid "Enter the user ID: "
 msgstr "Geben Sie die User-ID ein: "
 
-#: g10/pkclist.c:493
+#: g10/pkclist.c:528
 msgid "No such user ID.\n"
 msgstr "Keine solche User-ID vorhanden.\n"
 
-#: g10/pkclist.c:527 g10/pkclist.c:554
+#: g10/pkclist.c:562 g10/pkclist.c:589
 #, c-format
 msgid "%s: skipped: %s\n"
 msgstr "%s: übersprungen: %s\n"
 
-#: g10/pkclist.c:535
+#: g10/pkclist.c:570
 #, c-format
 msgid "%s: error checking key: %s\n"
 msgstr "%s: Fehler beim Prüfen des Schlüssels: %s\n"
 
-#: g10/pkclist.c:561
+#: g10/pkclist.c:596
 msgid "no valid addressees\n"
 msgstr "Keine gültigen Adressaten\n"
 
@@ -1026,8 +1024,8 @@ msgstr "   (%d) DSA und ElGamal (voreingestellt)\n"
 
 #: g10/keygen.c:391
 #, c-format
-msgid "   (%d) ElGamal (sign and encrypt)\n"
-msgstr "   (%d) ElGamal (signieren/beglaubigen und verschlüsseln)\n"
+msgid "   (%d) DSA (sign only)\n"
+msgstr "   (%d) DSA (nur signieren/beglaubigen)\n"
 
 #: g10/keygen.c:393
 #, c-format
@@ -1036,23 +1034,28 @@ msgstr "   (%d) ElGamal (nur verschl
 
 #: g10/keygen.c:394
 #, c-format
-msgid "   (%d) DSA (sign only)\n"
-msgstr "   (%d) DSA (nur signieren/beglaubigen)\n"
+msgid "   (%d) ElGamal (sign and encrypt)\n"
+msgstr "   (%d) ElGamal (signieren/beglaubigen und verschlüsseln)\n"
 
-#: g10/keygen.c:395
+#: g10/keygen.c:396
 #, c-format
 msgid "   (%d) ElGamal in a v3 packet\n"
 msgstr "   (%d) ElGamal in einem v3-Paket\n"
 
-#: g10/keygen.c:399
+#: g10/keygen.c:401
 msgid "Your selection? "
 msgstr "Ihre Auswahl? "
 
-#: g10/keygen.c:425
+#: 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
 msgid "Invalid selection.\n"
 msgstr "Ungültige Auswahl.\n"
 
-#: g10/keygen.c:437
+#: g10/keygen.c:444
 #, c-format
 msgid ""
 "About to generate a new %s keypair.\n"
@@ -1065,19 +1068,19 @@ msgstr ""
 "              standard Schlüssellänge ist 1024 Bit\n"
 "      größte sinnvolle Schlüssellänge ist 2048 Bit\n"
 
-#: g10/keygen.c:444
+#: g10/keygen.c:451
 msgid "What keysize do you want? (1024) "
 msgstr "Welche Schlüssellänge wünschen Sie? (1024) "
 
-#: g10/keygen.c:449
+#: g10/keygen.c:456
 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:451
+#: g10/keygen.c:458
 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:454
+#: g10/keygen.c:461
 msgid ""
 "Keysizes larger than 2048 are not suggested because\n"
 "computations take REALLY long!\n"
@@ -1085,11 +1088,11 @@ msgstr ""
 "Schlüssellängen größer als 2048 werden nicht empfohlen, da die\n"
 "Berechnungen dann WIRKLICH lange brauchen!\n"
 
-#: g10/keygen.c:457
+#: g10/keygen.c:464
 msgid "Are you sure that you want this keysize? "
 msgstr "Sind Sie sicher, daß Sie diese Schlüssellänge wünschen? "
 
-#: g10/keygen.c:458
+#: g10/keygen.c:465
 msgid ""
 "Okay, but keep in mind that your monitor and keyboard radiation is also very "
 "vulnerable to attacks!\n"
@@ -1097,21 +1100,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:466
+#: g10/keygen.c:473
 msgid "Do you really need such a large keysize? "
 msgstr "Brauchen Sie wirklich einen derartig langen Schlüssel? "
 
-#: g10/keygen.c:472
+#: g10/keygen.c:479
 #, c-format
 msgid "Requested keysize is %u bits\n"
 msgstr "Die verlangte Schlüssellänge beträgt %u Bit\n"
 
-#: g10/keygen.c:475 g10/keygen.c:479
+#: g10/keygen.c:482 g10/keygen.c:486
 #, c-format
 msgid "rounded up to %u bits\n"
 msgstr "aufgerundet auf %u Bit\n"
 
-#: g10/keygen.c:492
+#: g10/keygen.c:499
 msgid ""
 "Please specify how long the key should be valid.\n"
 "         0 = key does not expire\n"
@@ -1127,29 +1130,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:507
+#: g10/keygen.c:514
 msgid "Key is valid for? (0) "
 msgstr "Der Schlüssel bleibt wie lange gültig? (0) "
 
-#: g10/keygen.c:518
+#: g10/keygen.c:525
 msgid "invalid value\n"
 msgstr "Ungültiger Wert.\n"
 
-#: g10/keygen.c:523
+#: g10/keygen.c:530
 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:529
+#: g10/keygen.c:536
 #, c-format
 msgid "Key expires at %s\n"
 msgstr "Der Schlüssel verfällt am %s\n"
 
-#: g10/keygen.c:535
+#: g10/keygen.c:542
 msgid "Is this correct (y/n)? "
 msgstr "Ist dies richtig? (j/n) "
 
-#: g10/keygen.c:577
+#: g10/keygen.c:584
 msgid ""
 "\n"
 "You need a User-ID to identify your key; the software constructs the user "
@@ -1165,39 +1168,39 @@ msgstr ""
 "    \"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>\"\n"
 "\n"
 
-#: g10/keygen.c:588
+#: g10/keygen.c:595
 msgid "Real name: "
 msgstr "Ihr Name (\"Vorname Nachname\"): "
 
-#: g10/keygen.c:592
+#: g10/keygen.c:599
 msgid "Invalid character in name\n"
 msgstr "Ungültiges Zeichen im Namen\n"
 
-#: g10/keygen.c:594
+#: g10/keygen.c:601
 msgid "Name may not start with a digit\n"
 msgstr "Der Name darf nicht mit einer Ziffer beginnen.\n"
 
-#: g10/keygen.c:596
+#: g10/keygen.c:603
 msgid "Name must be at least 5 characters long\n"
 msgstr "Der Name muß min. 5 Zeichen lang sein.\n"
 
-#: g10/keygen.c:604
+#: g10/keygen.c:611
 msgid "Email address: "
 msgstr "E-Mail-Adresse: "
 
-#: g10/keygen.c:616
+#: g10/keygen.c:623
 msgid "Not a valid email address\n"
 msgstr "Diese E-Mail-Adresse ist ungültig\n"
 
-#: g10/keygen.c:624
+#: g10/keygen.c:631
 msgid "Comment: "
 msgstr "Kommentar: "
 
-#: g10/keygen.c:630
+#: g10/keygen.c:637
 msgid "Invalid character in comment\n"
 msgstr "Ungültiges Zeichen im Kommentar.\n"
 
-#: g10/keygen.c:650
+#: g10/keygen.c:657
 #, c-format
 msgid ""
 "You selected this USER-ID:\n"
@@ -1208,15 +1211,15 @@ msgstr ""
 "    \"%s\"\n"
 "\n"
 
-#: g10/keygen.c:653
+#: g10/keygen.c:660
 msgid "NnCcEeOoQq"
 msgstr "NnKkEeFfBb"
 
-#: g10/keygen.c:663
+#: g10/keygen.c:670
 msgid "Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? "
 msgstr "Ändern: (N)ame, (K)ommentar, (E)-Mail oder (F)ertig/(B)eenden? "
 
-#: g10/keygen.c:715
+#: g10/keygen.c:722
 msgid ""
 "You need a Passphrase to protect your secret key.\n"
 "\n"
@@ -1224,11 +1227,11 @@ msgstr ""
 "Sie benötigen ein Mantra, um den geheimen Schlüssel zu schützen.\n"
 "\n"
 
-#: g10/keyedit.c:389 g10/keygen.c:723
+#: g10/keyedit.c:389 g10/keygen.c:730
 msgid "passphrase not correctly repeated; try again.\n"
 msgstr "Mantra wurde nicht richtig wiederholt; noch einmal versuchen.\n"
 
-#: g10/keygen.c:729
+#: g10/keygen.c:736
 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"
@@ -1241,7 +1244,7 @@ msgstr ""
 "aufrufen.\n"
 "\n"
 
-#: g10/keygen.c:750
+#: g10/keygen.c:757
 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"
@@ -1252,34 +1255,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:820
+#: g10/keygen.c:827
 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:828
+#: g10/keygen.c:835
 msgid "DSA keypair will have 1024 bits.\n"
 msgstr "Der DSA Schlüssel wird 1024 Bits haben.\n"
 
-#: g10/keygen.c:834
+#: g10/keygen.c:841
 msgid "Key generation cancelled.\n"
 msgstr "Schlüsselerzeugung abgebrochen.\n"
 
-#: g10/keygen.c:844
+#: g10/keygen.c:851
 #, c-format
 msgid "writing public certificate to '%s'\n"
 msgstr "schreiben des öffentlichen Schlüssels nach '%s'\n"
 
-#: g10/keygen.c:845
+#: g10/keygen.c:852
 #, c-format
 msgid "writing secret certificate to '%s'\n"
 msgstr "schreiben des geheimen Schlüssels nach '%s'\n"
 
-#: g10/keygen.c:922
+#: g10/keygen.c:929
 msgid "public and secret key created and signed.\n"
 msgstr "Öffentlichen und geheimen Schlüssel erzeugt und signiert.\n"
 
-#: g10/keygen.c:924
+#: g10/keygen.c:931
 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"
@@ -1288,12 +1291,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:938 g10/keygen.c:1023
+#: g10/keygen.c:945 g10/keygen.c:1030
 #, c-format
 msgid "Key generation failed: %s\n"
 msgstr "Schlüsselerzeugung fehlgeschlagen: %s\n"
 
-#: g10/keygen.c:1001
+#: g10/keygen.c:1008
 msgid "Really create? "
 msgstr "Wirklich erzeugen? "
 
@@ -1319,11 +1322,28 @@ msgid "reading from '%s'\n"
 msgstr "Lesen von '%s'\n"
 
 #: g10/encode.c:397
-#, c-format
-msgid "%s encrypted for: %s\n"
+#, fuzzy, c-format
+msgid "%s/%s encrypted for: %s\n"
 msgstr "%s verschlüsselt für: %s\n"
 
-#: g10/export.c:162
+#: 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: kein öffentlicher Schüssel für vertrauenswürdigen Schlüssel "
+"- übersprungen\n"
+
+#: g10/export.c:174
 msgid "WARNING: nothing exported\n"
 msgstr "WARNUNG: Nichts exportiert\n"
 
@@ -1341,7 +1361,7 @@ msgid "using secondary key %08lX instead of primary key %08lX\n"
 msgstr ""
 "der Zweitschlüssel %08lX wird anstelle des Hauptschlüssels %08lX verwendet\n"
 
-#: g10/import.c:129 g10/trustdb.c:1166
+#: g10/import.c:129 g10/trustdb.c:1180
 #, c-format
 msgid "can't open file: %s\n"
 msgstr "Kann die Datei nicht öffnen: %s\n"
@@ -1351,12 +1371,12 @@ msgstr "Kann die Datei nicht 
 msgid "skipping block of type %d\n"
 msgstr "überspringe den Block vom Typ %d\n"
 
-#: g10/import.c:152 g10/trustdb.c:1425 g10/trustdb.c:1494
+#: g10/import.c:152 g10/trustdb.c:1474 g10/trustdb.c:1543
 #, c-format
 msgid "%lu keys so far processed\n"
 msgstr "%lu Schlüssel bislang bearbeitet\n"
 
-#: g10/import.c:157 g10/trustdb.c:1242
+#: g10/import.c:157 g10/trustdb.c:1256
 #, c-format
 msgid "read error: %s\n"
 msgstr "Lesefehler: %s\n"
@@ -1439,7 +1459,7 @@ msgstr "Schl
 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:563
+#: g10/import.c:359 g10/openfile.c:105 g10/sign.c:205 g10/sign.c:592
 #, c-format
 msgid "writing to '%s'\n"
 msgstr "Schreiben nach '%s'\n"
@@ -1468,12 +1488,14 @@ msgstr "Schl
 #, c-format
 msgid "key %08lX: can't locate original keyblock: %s\n"
 msgstr ""
-"Schlüssel %08lX: der lokale originale Schlüsselblocks 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 Schlüsselblocks: %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"
@@ -2066,11 +2088,32 @@ 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\n"
+"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"
 msgstr "dieses Public-Key Verfahren %d kann nicht benutzt werden\n"
 
+#: g10/parse-packet.c:801
+#, c-format
+msgid "subpacket of type %d has critical bit set\n"
+msgstr ""
+
 #: g10/passphrase.c:141
 msgid ""
 "\n"
@@ -2094,20 +2137,20 @@ msgstr "Geben Sie das Mantra ein: "
 msgid "Repeat passphrase: "
 msgstr "Geben Sie das Mantra nochmal ein: "
 
-#: g10/plaintext.c:102
+#: g10/plaintext.c:103
 msgid "data not saved; use option \"--output\" to save it\n"
 msgstr ""
 "Daten wurden nicht gespeichert; verwenden Sie dafür die Option \"--output\"\n"
 
-#: g10/plaintext.c:215
+#: g10/plaintext.c:216
 msgid "Please enter name of data file: "
 msgstr "Bitte geben Sie den Namen der Datendatei ein: "
 
-#: g10/plaintext.c:236
+#: g10/plaintext.c:237
 msgid "reading stdin ...\n"
 msgstr "lese stdin ...\n"
 
-#: g10/plaintext.c:299
+#: g10/plaintext.c:300
 #, c-format
 msgid "can't open signed data '%s'\n"
 msgstr "kann signierte Datei '%s' nicht öffnen.\n"
@@ -2139,7 +2182,7 @@ msgstr "Schutzverfahren %d wird nicht unterst
 msgid "Invalid passphrase; please try again ...\n"
 msgstr "Ungültiges Mantra; versuchen Sie's doch noch einmal ...\n"
 
-#: g10/seckey-cert.c:215
+#: g10/seckey-cert.c:216
 msgid "WARNING: Weak key detected - please change passphrase again.\n"
 msgstr ""
 "WARNUNG: Unsicherer Schlüssel entdeckt -\n"
@@ -2163,12 +2206,16 @@ msgstr ""
 msgid "NOTE: signature key expired %s\n"
 msgstr "Hinweis: Schlüssel der Signatur ist verfallen am %s.\n"
 
+#: g10/sig-check.c:226
+msgid "assuming bad signature due to an unknown critical bit\n"
+msgstr ""
+
 #: g10/sign.c:69
 #, c-format
 msgid "%s signature from: %s\n"
 msgstr "%s Unterschrift von: %s\n"
 
-#: g10/sign.c:200 g10/sign.c:558
+#: g10/sign.c:200 g10/sign.c:587
 #, c-format
 msgid "can't create %s: %s\n"
 msgstr "%s kann nicht erzeugt werden: %s\n"
@@ -2307,167 +2354,171 @@ msgstr "%s: konnte einen Satz nicht Nullen: %s\n"
 msgid "%s: failed to append a record: %s\n"
 msgstr "%s: konnte Satz nicht anhängen: %s\n"
 
-#: g10/trustdb.c:134
+#: g10/trustdb.c:142
 msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n"
 msgstr ""
 "Die \"Trust\"-Datenbank ist beschädigt; verwenden Sie \"gpgm "
 "--fix-trustdb\".\n"
 
-#: g10/trustdb.c:147
+#: g10/trustdb.c:155
 #, c-format
 msgid "trust record %lu, req type %d: read failed: %s\n"
 msgstr "trust record %lu, req type %d: read failed: %s\n"
 
-#: g10/trustdb.c:162
+#: g10/trustdb.c:170
 #, c-format
 msgid "trust record %lu, type %d: write failed: %s\n"
 msgstr "trust record %lu, type %d: write failed: %s\n"
 
-#: g10/trustdb.c:176
+#: g10/trustdb.c:184
 #, c-format
 msgid "trust record %lu: delete failed: %s\n"
 msgstr "Vertrauenssatz %lu: löschen fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:190
+#: g10/trustdb.c:198
 #, c-format
 msgid "trust db: sync failed: %s\n"
 msgstr "\"Trust-DB\": sync fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:319
+#: g10/trustdb.c:327
 #, c-format
 msgid "error reading dir record for LID %lu: %s\n"
 msgstr "Fehler beim Lesen des Dir-Satzes für LID %lu: %s\n"
 
-#: g10/trustdb.c:326
+#: g10/trustdb.c:334
 #, c-format
 msgid "lid %lu: expected dir record, got type %d\n"
 msgstr "lid %lu: Dir-Satz erwartet, aber es kam Typ %d\n"
 
-#: g10/trustdb.c:331
+#: g10/trustdb.c:339
 #, c-format
 msgid "no primary key for LID %lu\n"
 msgstr "Kein Hauptschlüssel für LID %lu\n"
 
-#: g10/trustdb.c:336
+#: g10/trustdb.c:344
 #, c-format
 msgid "error reading primary key for LID %lu: %s\n"
 msgstr "Fehler beim Lesen den Hauptschlüssels der LID %lu: %s\n"
 
-#: g10/trustdb.c:412
+#: g10/trustdb.c:420
 #, c-format
 msgid "chained sigrec %lu has a wrong owner\n"
 msgstr "Verketteter Signatursatz %lu hat einen falschen Besitzer\n"
 
-#: g10/trustdb.c:455
+#: g10/trustdb.c:463
 #, c-format
 msgid "'%s' is not a valid long keyID\n"
 msgstr "'%s' ist keine gültige lange Schlüssel-ID\n"
 
-#: g10/trustdb.c:490
+#: g10/trustdb.c:498
 #, c-format
 msgid "key %08lX: no public key for trusted key - skipped\n"
-msgstr "Schlüssel %08lX: kein öffentlicher Schüssel für vertrauenswürdigen Schlüssel - übersprungen\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
+#: g10/trustdb.c:507 g10/trustdb.c:565
 #, c-format
 msgid "key %08lX: can't put it into the trustdb\n"
 msgstr "Schlüssel %08lX kann nicht in die \"trustdb\" eingefügt werden\n"
 
-#: g10/trustdb.c:504 g10/trustdb.c:563
+#: g10/trustdb.c:512 g10/trustdb.c:571
 #, c-format
 msgid "key %08lX: query record failed\n"
 msgstr "Schlüssel %08lX: Satzabfrage fehlgeschlagen\n"
 
-#: g10/trustdb.c:509 g10/trustdb.c:572
+#: g10/trustdb.c:517 g10/trustdb.c:580
 #, c-format
 msgid "key %08lX: already in trusted key table\n"
 msgstr "Schlüssel %08lX: Ist bereits in geheimer Schlüsseltabelle\n"
 
-#: g10/trustdb.c:512 g10/trustdb.c:575
+#: g10/trustdb.c:520 g10/trustdb.c:583
 #, c-format
 msgid "key %08lX: accepted as trusted key.\n"
 msgstr "Schlüssel %08lX: Akzeptiert als vertrauenswürdiger Schlüssel.\n"
 
-#: g10/trustdb.c:528
+#: g10/trustdb.c:536
 #, c-format
 msgid "NOTE: secret key %08lX is NOT protected.\n"
 msgstr "HINWEIS: Geheimer Schlüssel %08lX ist NICHT geschützt.\n"
 
-#: g10/trustdb.c:540
+#: g10/trustdb.c:548
 #, c-format
 msgid "key %08lX: secret key without public key - skipped\n"
-msgstr "Schlüssel %08lX: geheimer Schlüssel, aber ohne öffentlichen Schlüssel - übersprungen\n"
+msgstr ""
+"Schlüssel %08lX: geheimer Schlüssel, aber ohne öffentlichen Schlüssel - "
+"übersprungen\n"
 
-#: g10/trustdb.c:547
+#: g10/trustdb.c:555
 #, c-format
 msgid "key %08lX: secret and public key don't match\n"
 msgstr ""
 "Schlüssel %08lX: geheimer und öffentlicher Schlüssel passen nicht zusammen.\n"
 
-#: g10/trustdb.c:583
+#: g10/trustdb.c:591
 #, c-format
 msgid "enumerate secret keys failed: %s\n"
 msgstr "enum_secret_keys fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:766
+#: g10/trustdb.c:774
 #, c-format
 msgid "lid %lu: read dir record failed: %s\n"
 msgstr "lid %lu: Lesen des Verz.Satzes fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:775
+#: g10/trustdb.c:783
 #, c-format
 msgid "lid %lu: read key record failed: %s\n"
 msgstr "lid %lu: Lesen des Schl..Satzes fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:785
+#: g10/trustdb.c:793
 #, c-format
 msgid "lid %lu: read uid record failed: %s\n"
 msgstr "lid %lu: Lesen des UserID-Satzes fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:794
+#: g10/trustdb.c:802
 #, c-format
 msgid "lid %lu: read pref record failed: %s\n"
 msgstr "lid %lu: Lesen des Pref.Satzes fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:804
+#: g10/trustdb.c:812
 #, c-format
 msgid "lid %lu: read sig record failed: %s\n"
 msgstr "lid %lu: Lesen des Sig.Satzes fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:999
+#: g10/trustdb.c:1013
 msgid "Ooops, no keys\n"
 msgstr "Huch, keine Schlüssel\n"
 
-#: g10/trustdb.c:1003
+#: g10/trustdb.c:1017
 msgid "Ooops, no user ids\n"
 msgstr "Huch, keine User-IDs\n"
 
-#: g10/trustdb.c:1074 g10/trustdb.c:1092
+#: g10/trustdb.c:1088 g10/trustdb.c:1106
 #, c-format
 msgid "user '%s' read problem: %s\n"
 msgstr "User '%s' Leseproblem: %s\n"
 
-#: g10/trustdb.c:1077 g10/trustdb.c:1095
+#: g10/trustdb.c:1091 g10/trustdb.c:1109
 #, c-format
 msgid "user '%s' list problem: %s\n"
 msgstr "User '%s' Listenproblem: %s\n"
 
-#: g10/trustdb.c:1085 g10/trustdb.c:1300
+#: g10/trustdb.c:1099 g10/trustdb.c:1346
 #, c-format
 msgid "user '%s' not found: %s\n"
 msgstr "Benutzer '%s' nicht gefunden: %s\n"
 
-#: g10/trustdb.c:1087 g10/trustdb.c:1302
+#: g10/trustdb.c:1101 g10/trustdb.c:1348
 #, c-format
 msgid "problem finding '%s' in trustdb: %s\n"
 msgstr "Problem, '%s' in der Trust-DB zu finden: %s\n"
 
-#: g10/trustdb.c:1090
+#: g10/trustdb.c:1104
 #, c-format
 msgid "user '%s' not in trustdb\n"
 msgstr "User '%s' ist nicht in der trustdb\n"
 
-#: g10/trustdb.c:1125
+#: g10/trustdb.c:1139
 #, c-format
 msgid ""
 "# List of assigned trustvalues, created %s\n"
@@ -2476,361 +2527,365 @@ msgstr ""
 "# Liste der zugewisenen \"trustvalues\", erzeugt am %s\n"
 "# (Verwenden Sie \"gpgm --import-ownertrust\" um sie wieder einzuspielen)\n"
 
-#: g10/trustdb.c:1131
+#: g10/trustdb.c:1145
 msgid "directory record w/o primary key\n"
 msgstr "Verzeichnis-Satz ohne Hauptschlüssel\n"
 
-#: g10/trustdb.c:1138
+#: g10/trustdb.c:1152
 #, c-format
 msgid "error reading key record: %s\n"
 msgstr "Fehler beim Lesen des Schl.Satzes: %s\n"
 
-#: g10/trustdb.c:1178
+#: g10/trustdb.c:1192
 msgid "line too long\n"
 msgstr "Zeile zu lang\n"
 
-#: g10/trustdb.c:1186
+#: g10/trustdb.c:1200
 msgid "error: missing colon\n"
 msgstr "Fehler: Fehlender Doppelpunkt\n"
 
-#: g10/trustdb.c:1191
+#: g10/trustdb.c:1205
 msgid "error: invalid fingerprint\n"
 msgstr "Fehler: ungültiger Fingerabdruck\n"
 
-#: g10/trustdb.c:1195
+#: g10/trustdb.c:1209
 msgid "error: no ownertrust value\n"
 msgstr "Fehler: Keine \"Owner trust\" Werte\n"
 
-#: g10/trustdb.c:1209
+#: g10/trustdb.c:1223
 #, c-format
 msgid "LID %lu: changing trust from %u to %u\n"
 msgstr "LID %lu: Ändern des 'Trusts' von %u auf %u\n"
 
-#: g10/trustdb.c:1212
+#: g10/trustdb.c:1226
 #, c-format
 msgid "LID %lu: setting trust to %u\n"
 msgstr "LID %lu: Setze 'Trust' auf %u\n"
 
-#: g10/trustdb.c:1220
+#: g10/trustdb.c:1234
 msgid "key not in trustdb, searching ring.\n"
 msgstr "Schlüssel ist nicht in der trustdb, Schl.bund wird durchsucht.\n"
 
-#: g10/trustdb.c:1223
+#: g10/trustdb.c:1237
 #, c-format
 msgid "key not in ring: %s\n"
 msgstr "Schlüssel ist nicht im Schlüsselbund: %s\n"
 
-#: g10/trustdb.c:1227
+#: g10/trustdb.c:1241
 msgid "Oops: key is now in trustdb???\n"
 msgstr "Huch: Schlüssel ist ja gar nicht in der Trust-DB?\n"
 
 #. update the ownertrust
-#: g10/trustdb.c:1232
+#: g10/trustdb.c:1246
 #, c-format
 msgid "insert trust record failed: %s\n"
 msgstr "'trust record' einfügen fehlgeschlagen: %s\n"
 
 #. error
-#: g10/trustdb.c:1238
+#: g10/trustdb.c:1252
 #, c-format
 msgid "error finding dir record: %s\n"
 msgstr "Fehler beim Auffinden des Verz.Satzes: %s\n"
 
-#: g10/trustdb.c:1305
+#: g10/trustdb.c:1351
 #, c-format
 msgid "user '%s' not in trustdb - inserting\n"
 msgstr "User '%s' ist nich in der 'Trust'-Datenbank - wird eingefügt\n"
 
-#: g10/trustdb.c:1308
+#: g10/trustdb.c:1354
 #, c-format
 msgid "failed to put '%s' into trustdb: %s\n"
 msgstr "konnte '%s' nicht in die 'Trust'-Datenbank hineintun: %s\n"
 
-#: g10/trustdb.c:1355
+#: g10/trustdb.c:1404
 #, c-format
 msgid "%s: keyblock read problem: %s\n"
 msgstr "%s: Schlüsselblock Leseproblem: %s\n"
 
-#: g10/trustdb.c:1369
+#: g10/trustdb.c:1418
 #, c-format
 msgid "%s: update failed: %s\n"
 msgstr "%s: Änderung fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:1372
+#: g10/trustdb.c:1421
 #, c-format
 msgid "%s: updated\n"
 msgstr "%s: geändert\n"
 
-#: g10/trustdb.c:1374
+#: g10/trustdb.c:1423
 #, c-format
 msgid "%s: okay\n"
 msgstr "%s: In Ordnung\n"
 
-#: g10/trustdb.c:1389
+#: g10/trustdb.c:1438
 #, c-format
 msgid "lid %lu: dir record w/o key - skipped\n"
 msgstr "lid %lu: Dir-Satz ohne Schlüssel - übergangen\n"
 
-#: g10/trustdb.c:1402
+#: g10/trustdb.c:1451
 #, c-format
 msgid "lid %lu: keyblock not found: %s\n"
 msgstr "lid %lu: Schlüsselblock nicht gefunden: %s\n"
 
-#: g10/trustdb.c:1411 g10/trustdb.c:1480
+#: g10/trustdb.c:1460 g10/trustdb.c:1529
 #, c-format
 msgid "lid %lu: update failed: %s\n"
 msgstr "lid %lu: Änderung fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:1417 g10/trustdb.c:1486
+#: g10/trustdb.c:1466 g10/trustdb.c:1535
 #, c-format
 msgid "lid %lu: updated\n"
 msgstr "lid %lu: geändert\n"
 
-#: g10/trustdb.c:1421 g10/trustdb.c:1490
+#: g10/trustdb.c:1470 g10/trustdb.c:1539
 #, c-format
 msgid "lid %lu: okay\n"
 msgstr "lid %lu: In Ordnung\n"
 
-#: g10/trustdb.c:1428 g10/trustdb.c:1496
+#: g10/trustdb.c:1477 g10/trustdb.c:1545
 #, c-format
 msgid "%lu keys processed\n"
 msgstr "%lu Schlüssel bearbeitet\n"
 
-#: g10/trustdb.c:1430
+#: g10/trustdb.c:1479
 #, c-format
 msgid "\t%lu keys skipped\n"
 msgstr "\t%lu Schlüssel übersprungen\n"
 
-#: g10/trustdb.c:1432 g10/trustdb.c:1498
+#: g10/trustdb.c:1481 g10/trustdb.c:1547
 #, c-format
 msgid "\t%lu keys with errors\n"
 msgstr "\t%lu Schlüssel mit Fehlern\n"
 
-#: g10/trustdb.c:1434 g10/trustdb.c:1500
+#: g10/trustdb.c:1483 g10/trustdb.c:1549
 #, c-format
 msgid "\t%lu keys updated\n"
 msgstr "\t%lu Schlüssel geändert\n"
 
-#: g10/trustdb.c:1464
+#: g10/trustdb.c:1513
 #, c-format
 msgid "lid ?: insert failed: %s\n"
 msgstr "lid ?: Einfügen fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:1469
+#: g10/trustdb.c:1518
 #, c-format
 msgid "lid %lu: insert failed: %s\n"
 msgstr "lid %lu: Einfügen fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:1475
+#: g10/trustdb.c:1524
 #, c-format
 msgid "lid %lu: inserted\n"
 msgstr "lid %lu: eingefügt\n"
 
-#: g10/trustdb.c:1502
+#: g10/trustdb.c:1551
 #, c-format
 msgid "\t%lu keys inserted\n"
 msgstr "\t%lu Schlüssel eingefügt\n"
 
-#: g10/trustdb.c:1505
+#: g10/trustdb.c:1554
 #, c-format
 msgid "enumerate keyblocks failed: %s\n"
 msgstr "enumerate Schlüsselblock fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:1550
+#: g10/trustdb.c:1599
 #, c-format
 msgid "check_trust: search dir record failed: %s\n"
 msgstr "check_trust: Suche nach Dir-Satz fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:1557
+#: g10/trustdb.c:1606
 #, c-format
 msgid "key %08lX: insert trust record failed: %s\n"
 msgstr "Schlüssel %08lX: 'trust record' einfügen fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:1561
+#: g10/trustdb.c:1610
 #, c-format
 msgid "key %08lX.%lu: inserted into trustdb\n"
 msgstr "Schlüssel %08lX.%lu: in \"trustdb\" eingefügt\n"
 
-#: g10/trustdb.c:1569
+#: g10/trustdb.c:1618
 #, c-format
 msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
 msgstr ""
 "Schlüssel %08lX.%lu: wurde in der Zukunft erzeugt (Zeitreise oder Uhren "
 "stimmen nicht überein)\n"
 
-#: g10/trustdb.c:1576
+#: g10/trustdb.c:1625
 #, c-format
 msgid "key %08lX.%lu: expired at %s\n"
 msgstr "Schlüssel %08lX.%lu: verfallen am %s\n"
 
-#: g10/trustdb.c:1584
+#: g10/trustdb.c:1633
 #, c-format
 msgid "key %08lX.%lu: trust check failed: %s\n"
 msgstr "Schlüssel %08lX.%lu: Vertrauensprüfung fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:1753 g10/trustdb.c:1782 g10/trustdb.c:2521
+#: g10/trustdb.c:1820 g10/trustdb.c:1849 g10/trustdb.c:2588
 msgid "WARNING: can't yet handle long pref records\n"
 msgstr "WARNUNG: Lange 'Pref'-Records können noch nicht benutzt werden\n"
 
-#: g10/trustdb.c:1804
+#: g10/trustdb.c:1871
 #, c-format
 msgid "get_dir_record: search_record failed: %s\n"
 msgstr "get_dir_record: search_record fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:1867
+#: g10/trustdb.c:1934
 #, c-format
 msgid "NOTE: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
 msgstr "Hinweis: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
 
-#: g10/trustdb.c:1871
+#: g10/trustdb.c:1938
 #, c-format
 msgid "NOTE: sig rec %lu[%d] in hintlist of %lu but not marked\n"
 msgstr "Hinweis: sig rec %lu[%d] in hintlist of %lu but not marked\n"
 
 #. we need the dir record
-#: g10/trustdb.c:1878
+#: g10/trustdb.c:1945
 #, c-format
 msgid "sig rec %lu[%d] in hintlist of %lu does not point to a dir record\n"
 msgstr "sig rec %lu[%d] in hintlist of %lu does not point to a dir record\n"
 
-#: g10/trustdb.c:1884
+#: g10/trustdb.c:1951
 #, c-format
 msgid "lid %lu: no primary key\n"
 msgstr "lid %lu: kein Hauptschlüssel\n"
 
-#: g10/trustdb.c:1917
+#: g10/trustdb.c:1984
 #, c-format
 msgid "lid %lu: user id not found in keyblock\n"
 msgstr "lid %lu: User-ID im Schlüsselblock nicht gefunden\n"
 
-#: g10/trustdb.c:1921
+#: g10/trustdb.c:1988
 #, c-format
 msgid "lid %lu: user id without signature\n"
 msgstr "lid %lu: User-ID ohne Signatur\n"
 
-#: g10/trustdb.c:1928
+#: g10/trustdb.c:1995
 #, c-format
 msgid "lid %lu: self-signature in hintlist\n"
 msgstr "lid %lu: Eigenbeglaubigung in 'hintlist'\n"
 
-#: g10/trustdb.c:1939 g10/trustdb.c:2658 g10/trustdb.c:2742
+#: g10/trustdb.c:2006 g10/trustdb.c:2725 g10/trustdb.c:2809
 msgid "Valid certificate revocation"
 msgstr "Gültiger Zerifikat-Widerruf"
 
-#: g10/trustdb.c:1940 g10/trustdb.c:2659 g10/trustdb.c:2743
+#: g10/trustdb.c:2007 g10/trustdb.c:2726 g10/trustdb.c:2810
 msgid "Good certificate"
 msgstr "Korrektes Zertifikat"
 
-#: g10/trustdb.c:1949
+#: g10/trustdb.c:2016
 msgid "very strange: no public key\n"
 msgstr "sehr seltsam: kein öffentlicher Schlüssel\n"
 
-#: g10/trustdb.c:1997
+#: g10/trustdb.c:2064
 #, c-format
 msgid "hintlist %lu[%d] of %lu does not point to a dir record\n"
 msgstr "hintlist %lu[%d] of %lu zeigt nicht auf einen 'dir record'\n"
 
-#: g10/trustdb.c:2003
+#: g10/trustdb.c:2070
 #, c-format
 msgid "lid %lu does not have a key\n"
 msgstr "lid %lu hat keinen Schlüssel\n"
 
-#: g10/trustdb.c:2013
+#: g10/trustdb.c:2080
 #, c-format
 msgid "lid %lu: can't get keyblock: %s\n"
 msgstr "lid %lu: Schlüsselblock nicht verfügbar: %s\n"
 
-#: g10/trustdb.c:2070 g10/trustdb.c:2984
+#: g10/trustdb.c:2137 g10/trustdb.c:3051
 #, c-format
 msgid "tdbio_search_dir failed: %s\n"
 msgstr "tdbio_search_dir fehlgeschlagen: %s\n"
 
-#: g10/trustdb.c:2223
+#: g10/trustdb.c:2290
 #, c-format
 msgid "key %08lX.%lu: Good subkey binding\n"
 msgstr "Schlüssel %08lX.%lu: Korrekte Unterschlüssel-Anbindung\n"
 
-#: g10/trustdb.c:2229 g10/trustdb.c:2271
+#: g10/trustdb.c:2296 g10/trustdb.c:2338
 #, c-format
 msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
 msgstr "Schlüssel %08lX.%lu: Ungültige Unterschlüssel-Anbindung\n"
 
-#: g10/trustdb.c:2244
+#: g10/trustdb.c:2311
 #, c-format
 msgid "key %08lX.%lu: Valid key revocation\n"
 msgstr "Schlüssel %08lX.%lu: Gültiger Schlüsselwiderruf\n"
 
-#: g10/trustdb.c:2250
+#: g10/trustdb.c:2317
 #, c-format
 msgid "key %08lX.%lu: Invalid key revocation: %s\n"
 msgstr "Schlüssel %08lX.%lu: Ungültiger Schlüsselwiderruf: %s\n"
 
-#: g10/trustdb.c:2265
+#: g10/trustdb.c:2332
 #, c-format
 msgid "key %08lX.%lu: Valid subkey revocation\n"
 msgstr "Schlüssel %08lX.%lu: Gültiger Unterschlüsselwiderruf\n"
 
-#: g10/trustdb.c:2365
+#: g10/trustdb.c:2432
 msgid "Good self-signature"
 msgstr "Korrekte Eigenbeglaubigung"
 
-#: g10/trustdb.c:2376
+#: g10/trustdb.c:2443
 msgid "Invalid self-signature"
 msgstr "Ungültige Eigenbeglaubigung"
 
-#: g10/trustdb.c:2386
+#: g10/trustdb.c:2453
 msgid "Valid user ID revocation skipped due to a newer self signature\n"
-msgstr "Gültiger User-ID-Widerruf ignoriert, da eine neuere Eigenbeglaubigung vorliegt\n"
+msgstr ""
+"Gültiger User-ID-Widerruf ignoriert, da eine neuere Eigenbeglaubigung "
+"vorliegt\n"
 
-#: g10/trustdb.c:2393
+#: g10/trustdb.c:2460
 msgid "Valid user ID revocation\n"
 msgstr "Gültiger User-ID-Widerruf\n"
 
-#: g10/trustdb.c:2400
+#: g10/trustdb.c:2467
 msgid "Invalid user ID revocation"
 msgstr "Ungültiger User-ID-Widerruf"
 
-#: g10/trustdb.c:2484
+#: g10/trustdb.c:2551
 msgid "Too many preferences"
 msgstr "Zu viele Einstellungen"
 
-#: g10/trustdb.c:2498
+#: g10/trustdb.c:2565
 msgid "Too many preference items"
 msgstr "Zu viele Angaben zur Bevorzugung"
 
-#: g10/trustdb.c:2637
+#: g10/trustdb.c:2704
 msgid "Duplicated certificate - deleted"
 msgstr "Doppelte Zertifikate - entfernt"
 
-#: g10/trustdb.c:2670
+#: g10/trustdb.c:2737
 msgid "Hmmm, public key lost?"
 msgstr "Hmmm, öffentlicher Schüssel verloren?"
 
-#: g10/trustdb.c:2680 g10/trustdb.c:2763
+#: g10/trustdb.c:2747 g10/trustdb.c:2830
 msgid "Invalid certificate revocation"
 msgstr "Ungültiger Zertifikatswiderruf"
 
-#: g10/trustdb.c:2681 g10/trustdb.c:2764
+#: g10/trustdb.c:2748 g10/trustdb.c:2831
 msgid "Invalid certificate"
 msgstr "Ungültiges Zertifikat"
 
-#: g10/trustdb.c:2696
+#: g10/trustdb.c:2763
 #, c-format
 msgid "uid %08lX.%lu/%02X%02X: has shadow dir %lu but is not yet marked.\n"
-msgstr "uid %08lX.%lu/%02X%02X: hat \"shadow-dir\" %lu, aber ist noch nicht markiert.\n"
+msgstr ""
+"uid %08lX.%lu/%02X%02X: hat \"shadow-dir\" %lu, aber ist noch nicht "
+"markiert.\n"
 
-#: g10/trustdb.c:2710
+#: g10/trustdb.c:2777
 #, c-format
 msgid "sig record %lu[%d] points to wrong record.\n"
 msgstr "Signatursatz %lu[%d] zeigt auf falschen Satz.\n"
 
 #. that should never happen
-#: g10/trustdb.c:2954
+#: g10/trustdb.c:3021
 #, c-format
 msgid "insert_trust_record: keyblock not found: %s\n"
 msgstr "insert_trust_record: Schlüsselblock nicht gefunden: %s\n"
 
-#: g10/trustdb.c:2972
+#: g10/trustdb.c:3039
 msgid "did not use primary key for insert_trust_record()\n"
 msgstr "Für insert_trust_record() wurde nicht der Hauptschlüssel benutzt\n"
 
@@ -2927,38 +2982,40 @@ msgstr ""
 "Trotz %d-fachen Versuch konnte die Erzeugung eines unsicheren Schlüssels für "
 "sym.Verschlüsselung nicht vermieden werden!\n"
 
+# "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."
 #. 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."
+#: g10/helptext.c:48
 msgid "edit_ownertrust.value"
 msgstr ""
-"SIE müssen hier einen Wert eingeben. Dieser Wert wird niemals an eine Dritte\n"
+"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\"."
+# "If you want to use this revoked key anyway, answer \"yes\"."
+#: g10/helptext.c:54
 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\"."
+# "If you want to use this untrusted key anyway, answer \"yes\"."
+#: g10/helptext.c:58
 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."
+# "Enter the user id of the addresse to whom you want to send the message."
+#: g10/helptext.c:62
 msgid "pklist.user_id.enter"
-msgstr "Geben Sie die User-ID dessen ein, an den Sie die Botschaft senden wollen."
+msgstr ""
+"Geben Sie die User-ID dessen ein, an den Sie die Botschaft senden wollen."
 
-#: g10/helptext.c:63
+#: g10/helptext.c:66
 msgid "keygen.algo"
 msgstr ""
 "Wählen Sie die zu verwendende Methode aus.\n"
@@ -2988,8 +3045,39 @@ msgstr ""
 "Schlüssel ist nicht mit anderen Programmen nach der OpenPGP-Spezifikation\n"
 "verträglich."
 
-#: g10/helptext.c:80
-#"Enter the size of the key"
+#: g10/helptext.c:82
+#, fuzzy
+msgid "keygen.algo.elg_se"
+msgstr ""
+"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."
+
+# "Enter the size of the key"
+#: g10/helptext.c:89
 msgid "keygen.size"
 msgstr ""
 "Wählen Sie die gewünschte Schlüssellänge.\n"
@@ -3003,45 +3091,46 @@ msgstr ""
 "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\""
+# "Answer \"yes\" or \"no\""
+#: g10/helptext.c:93
 msgid "keygen.size.huge.okay"
 msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
 
-#: g10/helptext.c:89
+#: g10/helptext.c:98
 msgid "keygen.size.large.okay"
 msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
 
-#: g10/helptext.c:94
+#: g10/helptext.c:103
 msgid "keygen.valid"
 msgstr "Geben Sie den erforderlichen Wert ein"
 
-#: g10/helptext.c:98
+#: g10/helptext.c:107
 msgid "keygen.valid.okay"
 msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
 
-#: g10/helptext.c:103
 # "Enter the name of the key holder"
+#: g10/helptext.c:112
 msgid "keygen.name"
 msgstr "Geben Sie den Namen des Schlüsselinhabers ein"
 
-#: g10/helptext.c:108
-#"please enter an optional but highly suggested email address"
+# "please enter an optional but highly suggested email address"
+#: g10/helptext.c:117
 msgid "keygen.email"
-msgstr "Geben Sie eine E-Mail-Adresse ein. Dies ist zwar nicht notwendig,\n"
+msgstr ""
+"Geben Sie eine E-Mail-Adresse ein. Dies ist zwar nicht notwendig,\n"
 "aber empfehlenswert."
 
-#: g10/helptext.c:112
 # "Please enter an optional comment"
+#: g10/helptext.c:121
 msgid "keygen.comment"
 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."
+# "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."
+#: g10/helptext.c:126
 msgid "keygen.userid.cmd"
 msgstr ""
 "N  um den Namen zu ändern.\n"
@@ -3050,90 +3139,96 @@ msgstr ""
 "F  um mit der Schlüsselerzeugung fortzusetzen.\n"
 "B  um die Schlüsselerzeugung abbrechen."
 
-#: g10/helptext.c:126
 # "Answer \"yes\" (or just \"y\") if it is okay to generate the sub key."
+#: g10/helptext.c:135
 msgid "keygen.sub.okay"
-msgstr "Geben Sie \"Ja\" (oder nur \"j\") ein, um den Unterschlüssel zu erzeugen."
+msgstr ""
+"Geben Sie \"Ja\" (oder nur \"j\") ein, um den Unterschlüssel zu erzeugen."
 
-#: g10/helptext.c:130
 # "Answer \"yes\" or \"no\""
+#: g10/helptext.c:139
 msgid "sign_uid.okay"
 msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
 
-#: g10/helptext.c:135
 #  "Answer \"yes\" or \"no\""
+#: g10/helptext.c:144
 msgid "change_passwd.empty.okay"
 msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
 
-#: g10/helptext.c:140
 # "Please enter \"help\" to see the list of commands."
+#: g10/helptext.c:149
 msgid "keyedit.cmd"
 msgstr "Geben Sie \"help\" ein, um die Liste der Befehle einzusehen."
 
-#: g10/helptext.c:144
 # "Answer \"yes\" or \"no\""
+#: g10/helptext.c:153
 msgid "keyedit.save.okay"
 msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
 
-#: g10/helptext.c:149
+#: g10/helptext.c:158
 msgid "keyedit.cancel.okay"
 msgstr "Geben Sie \"Ja\" oder \"Nein\" ein"
 
-#: g10/helptext.c:153
 # "Answer \"yes\" is you want to sign ALL the user IDs"
+#: g10/helptext.c:162
 msgid "keyedit.sign_all.okay"
 msgstr "Geben Sie \"Ja\" (oder nur \"j\") ein, um alle User-IDs zu beglaubigen"
 
-#: g10/helptext.c:157
 # "Answer \"yes\" if you really want to delete this user ID.\n"
 # "All ceritifcates are then also lost!"
+#: g10/helptext.c:166
 msgid "keyedit.remove.uid.okay"
-msgstr "Geben Sie \"Ja\" (oder nur \"j\") ein, um diese User-ID zu LÖSCHEN.\n"
+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:162
 # "Answer \"yes\" if it is okay to delete the subkey"
+#: g10/helptext.c:171
 msgid "keyedit.remove.subkey.okay"
-msgstr "Geben Sie \"Ja\" (oder nur \"j\") ein, um diesen Unterschlüssel zu löschen"
+msgstr ""
+"Geben Sie \"Ja\" (oder nur \"j\") ein, um diesen Unterschlüssel zu löschen"
 
 # ################################
 # ####### Help msgids ############
 # ################################
-#: g10/helptext.c:166
+#: g10/helptext.c:175
 msgid "passphrase.enter"
 msgstr ""
 "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"
+"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 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:173
+#: g10/helptext.c:182
 msgid "passphrase.repeat"
 msgstr ""
 "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 das Mantra akzeptiert."
 
-#: g10/helptext.c:177
 # "Give the name fo the file to which the signature applies"
+#: g10/helptext.c:186
 msgid "detached_signature.filename"
-msgstr "Geben Sie den Namen der Datei an, zu dem die abgetrennte Unterschrift gehört"
+msgstr ""
+"Geben Sie den Namen der Datei an, zu dem die abgetrennte Unterschrift gehört"
 
-#: g10/helptext.c:181
 # "Answer \"yes\" if it is okay to overwrite the file"
+#: g10/helptext.c:190
 msgid "openfile.overwrite.okay"
 msgstr "Geben Sie \"ja\" ein, wenn Sie die Datei überschreiben möchten"
 
-#: g10/helptext.c:195
+#: g10/helptext.c:204
 msgid "No help available"
 msgstr "Keine Hilfe vorhanden."
 
-#: g10/helptext.c:207
+#: g10/helptext.c:216
 #, c-format
 msgid "No help available for '%s'"
 msgstr "Keine Hilfe für '%s' vorhanden."
index d52e11c..a7d8c27 100644 (file)
@@ -5,7 +5,7 @@
 # I also got inspiration from it.po by Marco d'Itri <md@linux.it>
 msgid ""
 msgstr ""
-"POT-Creation-Date: 1998-12-10 20:11+0100\n"
+"POT-Creation-Date: 1998-12-17 18:30+0100\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Date: 1998-11-13 10:49:25+0100\n"
 "From: Urko Lusa <ulusa@lacueva.ddns.org>\n"
@@ -211,12 +211,12 @@ msgstr "
 msgid "you found a bug ... (%s:%d)\n"
 msgstr "Ha encontrado Vd. un bug... (%s:%d)\n"
 
-#: cipher/random.c:412
+#: cipher/random.c:406
 #, fuzzy
 msgid "WARNING: using insecure random number generator!!\n"
 msgstr "Aviso: ¡se está usando un generador de números aleatorios inseguro!\n"
 
-#: cipher/random.c:413
+#: cipher/random.c:407
 msgid ""
 "The random number generator is only a kludge to let\n"
 "it run - it is in no way a strong RNG!\n"
@@ -230,7 +230,7 @@ msgstr ""
 "¡NO USE NINGÚN DATO GENERADO POR ESTE PROGRAMA!\n"
 "\n"
 
-#: cipher/rndlinux.c:116
+#: cipher/rndlinux.c:118
 #, c-format
 msgid ""
 "\n"
@@ -242,7 +242,7 @@ msgstr ""
 "otro trabajo para que el sistema pueda recolectar más entropía\n"
 "(se necesitan %d bytes más).\n"
 
-#: g10/g10.c:159
+#: g10/g10.c:160
 msgid ""
 "@Commands:\n"
 " "
@@ -250,123 +250,123 @@ msgstr ""
 "@Comandos:\n"
 " "
 
-#: g10/g10.c:162
+#: g10/g10.c:163
 msgid "|[file]|make a signature"
 msgstr "|[file]|hace una firma"
 
-#: g10/g10.c:163
+#: g10/g10.c:164
 msgid "|[file]|make a clear text signature"
 msgstr "|[file]|hace una firma en texto claro"
 
-#: g10/g10.c:164
+#: g10/g10.c:165
 msgid "make a detached signature"
 msgstr "hace una firma separada"
 
-#: g10/g10.c:165
+#: g10/g10.c:166
 msgid "encrypt data"
 msgstr "cifra datos"
 
-#: g10/g10.c:166
+#: g10/g10.c:167
 msgid "encryption only with symmetric cipher"
 msgstr "cifra sólo con un cifrado simétrico"
 
-#: g10/g10.c:167
+#: g10/g10.c:168
 msgid "store only"
 msgstr "sólo almacenar"
 
-#: g10/g10.c:168
+#: g10/g10.c:169
 msgid "decrypt data (default)"
 msgstr "descifra datos (predefinido)"
 
-#: g10/g10.c:169
+#: g10/g10.c:170
 msgid "verify a signature"
 msgstr "verifica una firma"
 
-#: g10/g10.c:171
+#: g10/g10.c:172
 msgid "list keys"
 msgstr "lista las claves"
 
-#: g10/g10.c:172
+#: g10/g10.c:173
 msgid "list keys and signatures"
 msgstr "lista las claves y firmas"
 
-#: g10/g10.c:173
+#: g10/g10.c:174
 msgid "check key signatures"
 msgstr "comprueba las firmas de las claves"
 
-#: g10/g10.c:174
+#: g10/g10.c:175
 msgid "list keys and fingerprints"
 msgstr "lista las claves y huellas dactilares"
 
-#: g10/g10.c:175
+#: g10/g10.c:176
 msgid "list secret keys"
 msgstr "lista las claves secretas"
 
-#: g10/g10.c:177
+#: g10/g10.c:178
 msgid "generate a new key pair"
 msgstr "genera un nuevo par de claves"
 
-#: g10/g10.c:179
+#: g10/g10.c:180
 msgid "remove key from the public keyring"
 msgstr "elimina la clave del anillo público"
 
-#: g10/g10.c:181
+#: g10/g10.c:182
 msgid "sign or edit a key"
 msgstr "firma o modifica una clave"
 
-#: g10/g10.c:182
+#: g10/g10.c:183
 msgid "generate a revocation certificate"
 msgstr "genera un certificado de revocación"
 
-#: g10/g10.c:184
+#: g10/g10.c:185
 msgid "export keys"
 msgstr "exporta las claves"
 
-#: g10/g10.c:187
+#: g10/g10.c:188
 msgid "import/merge keys"
 msgstr "importa/fusiona las claves"
 
-#: g10/g10.c:189
+#: g10/g10.c:190
 msgid "list only the sequence of packets"
 msgstr "lista sólo la secuencia de paquetes"
 
-#: g10/g10.c:192
+#: g10/g10.c:193
 msgid "export the ownertrust values"
 msgstr "exporta los valores de confianza"
 
-#: g10/g10.c:194
+#: g10/g10.c:195
 msgid "import ownertrust values"
 msgstr "importa los valores de confianza"
 
-#: g10/g10.c:196
+#: g10/g10.c:197
 msgid "|[NAMES]|update the trust database"
 msgstr "|[NOMBRES]|actualiza la base de datos de confianza"
 
-#: g10/g10.c:198
+#: g10/g10.c:199
 msgid "|[NAMES]|check the trust database"
 msgstr "|[NOMBRES]|comprueba la base de datos de confianza"
 
-#: g10/g10.c:199
+#: g10/g10.c:200
 msgid "fix a corrupted trust database"
 msgstr "arregla una base de datos de confianza dañada"
 
-#: g10/g10.c:200
+#: g10/g10.c:201
 msgid "De-Armor a file or stdin"
 msgstr "quita la armadura de un fichero o stdin"
 
-#: g10/g10.c:201
+#: g10/g10.c:202
 msgid "En-Armor a file or stdin"
 msgstr "crea la armadura a un fichero o stdin"
 
-#: g10/g10.c:202
+#: g10/g10.c:203
 msgid "|algo [files]|print message digests"
 msgstr "|algo [files]|imprime resúmenes de mensaje"
 
-#: g10/g10.c:203
+#: g10/g10.c:204
 msgid "print all message digests"
 msgstr "imprime todos los resúmenes de mensaje"
 
-#: g10/g10.c:210
+#: g10/g10.c:211
 msgid ""
 "@\n"
 "Options:\n"
@@ -376,145 +376,145 @@ msgstr ""
 "Opciones:\n"
 " "
 
-#: g10/g10.c:212
+#: g10/g10.c:213
 msgid "create ascii armored output"
 msgstr "crea una salida ascii con armadura"
 
-#: g10/g10.c:214
+#: g10/g10.c:215
 msgid "use this user-id to sign or decrypt"
 msgstr "usa este usuario para firmar o descifrar"
 
-#: g10/g10.c:215
+#: g10/g10.c:216
 msgid "use this user-id for encryption"
 msgstr "usa este usuario para cifrar"
 
-#: g10/g10.c:216
+#: g10/g10.c:217
 msgid "|N|set compress level N (0 disables)"
 msgstr "|N|establece nivel de compresión N (0 no comprime)"
 
-#: g10/g10.c:218
+#: g10/g10.c:219
 msgid "use canonical text mode"
 msgstr "usa modo de texto canónico"
 
-#: g10/g10.c:220
+#: g10/g10.c:221
 msgid "use as output file"
 msgstr "usa como fichero de salida"
 
-#: g10/g10.c:221
+#: g10/g10.c:222
 msgid "verbose"
 msgstr "prolijo"
 
-#: g10/g10.c:222
+#: g10/g10.c:223
 msgid "be somewhat more quiet"
 msgstr ""
 
-#: g10/g10.c:223
+#: g10/g10.c:224
 msgid "force v3 signatures"
 msgstr "fuerza firmas v3"
 
 #. { oDryRun, "dry-run",   0, N_("do not make any changes") },
-#: g10/g10.c:225
+#: g10/g10.c:226
 msgid "batch mode: never ask"
 msgstr "proceso por lotes: nunca preguntar"
 
-#: g10/g10.c:226
+#: g10/g10.c:227
 msgid "assume yes on most questions"
 msgstr "asume \"sí\" en casi todas las preguntas"
 
-#: g10/g10.c:227
+#: g10/g10.c:228
 msgid "assume no on most questions"
 msgstr "asume \"no\" en casi todas las preguntas"
 
-#: g10/g10.c:228
+#: g10/g10.c:229
 msgid "add this keyring to the list of keyrings"
 msgstr "añade este anillo a la lista de anillos"
 
-#: g10/g10.c:229
+#: g10/g10.c:230
 msgid "add this secret keyring to the list"
 msgstr "añade este anillo secreto a la lista"
 
-#: g10/g10.c:230
+#: g10/g10.c:231
 msgid "|NAME|use NAME as default secret key"
 msgstr "|NOMBRE|usa NOMBRE como clave secreta por defecto"
 
-#: g10/g10.c:231
+#: g10/g10.c:232
 #, fuzzy
 msgid "|NAME|set terminal charset to NAME"
 msgstr "|NOMBRE|usa el algoritmo de cifrado NOMBRE"
 
-#: g10/g10.c:232
+#: g10/g10.c:233
 msgid "read options from file"
 msgstr "lee opciones del fichero"
 
-#: g10/g10.c:234
+#: g10/g10.c:235
 msgid "set debugging flags"
 msgstr "establece los parámetros de depuración"
 
-#: g10/g10.c:235
+#: g10/g10.c:236
 msgid "enable full debugging"
 msgstr "habilita depuración completa"
 
-#: g10/g10.c:236
+#: g10/g10.c:237
 msgid "|FD|write status info to this FD"
 msgstr "|DF|escribe información de estado en descriptor DF"
 
-#: g10/g10.c:237
+#: g10/g10.c:238
 msgid "do not write comment packets"
 msgstr "no escribe paquetes de comentario"
 
-#: g10/g10.c:238
+#: g10/g10.c:239
 msgid "(default is 1)"
 msgstr "(por defecto es 1)"
 
-#: g10/g10.c:239
+#: g10/g10.c:240
 msgid "(default is 3)"
 msgstr "(por defecto es 3)"
 
-#: g10/g10.c:241
+#: g10/g10.c:242
 msgid "|KEYID|ulimately trust this key"
 msgstr ""
 
-#: g10/g10.c:242
+#: g10/g10.c:243
 msgid "|FILE|load extension module FILE"
 msgstr "|FICHERO|carga módulo de extensiones FICHERO"
 
-#: g10/g10.c:243
+#: g10/g10.c:244
 msgid "emulate the mode described in RFC1991"
 msgstr "emula el modo descrito en la RFC1991"
 
-#: g10/g10.c:244
+#: g10/g10.c:245
 msgid "|N|use passphrase mode N"
 msgstr "|N|usa modo de contraseña N"
 
-#: g10/g10.c:246
+#: g10/g10.c:247
 msgid "|NAME|use message digest algorithm NAME for passphrases"
 msgstr ""
 "|NOMBRE|usa algoritmo de resumen de mensaje NOMBRE\n"
 "para las contraseñas"
 
-#: g10/g10.c:248
+#: g10/g10.c:249
 msgid "|NAME|use cipher algorithm NAME for passphrases"
 msgstr ""
 "|NOMBRE|usa el algoritmo de cifrado NOMBRE para las\n"
 "contraseñas"
 
-#: g10/g10.c:250
+#: g10/g10.c:251
 msgid "|NAME|use cipher algorithm NAME"
 msgstr "|NOMBRE|usa el algoritmo de cifrado NOMBRE"
 
-#: g10/g10.c:251
+#: g10/g10.c:252
 msgid "|NAME|use message digest algorithm NAME"
 msgstr "|NOMBRE|usa algoritmo de resumen de mensaje NOMBRE"
 
-#: g10/g10.c:252
+#: g10/g10.c:253
 msgid "|N|use compress algorithm N"
 msgstr "|N|usa el algoritmo de compresión N"
 
-#: g10/g10.c:253
+#: g10/g10.c:254
 msgid "throw keyid field of encrypted packets"
 msgstr "elimina el campo keyid de los paquetes cifrados"
 
-#: g10/g10.c:261
+#: g10/g10.c:262
 msgid ""
 "@\n"
 "Examples:\n"
@@ -534,19 +534,19 @@ msgstr ""
 " --list-keys [nombres]      muestra las claves\n"
 " --fingerprint [nombres]    muestra las huellas dactilares\n"
 
-#: g10/g10.c:339
+#: g10/g10.c:341
 msgid "Please report bugs to <gnupg-bugs@gnu.org>.\n"
 msgstr "Por favor, informe de posibles \"bugs\" a <gnupg-bugs@gnu.org>.\n"
 
-#: g10/g10.c:344
+#: g10/g10.c:346
 msgid "Usage: gpgm [options] [files] (-h for help)"
 msgstr "Uso: gpgm [opciones] [ficheros] (-h para ayuda)"
 
-#: g10/g10.c:346
+#: g10/g10.c:348
 msgid "Usage: gpg [options] [files] (-h for help)"
 msgstr "Uso: gpg [opciones] [ficheros] (-h para ayuda)"
 
-#: g10/g10.c:351
+#: g10/g10.c:353
 msgid ""
 "Syntax: gpgm [options] [files]\n"
 "GnuPG maintenance utility\n"
@@ -554,7 +554,7 @@ msgstr ""
 "Sintaxis: gpgm [opciones] [ficheros]\n"
 "Utilidad de mantenimiento de GnuPG\n"
 
-#: g10/g10.c:354
+#: g10/g10.c:356
 msgid ""
 "Syntax: gpg [options] [files]\n"
 "sign, check, encrypt or decrypt\n"
@@ -564,7 +564,7 @@ msgstr ""
 "firma, comprueba, cifra o descifra\n"
 "la operación por defecto depende del tipo de datos de entrada\n"
 
-#: g10/g10.c:360
+#: g10/g10.c:362
 msgid ""
 "\n"
 "Supported algorithms:\n"
@@ -572,151 +572,151 @@ msgstr ""
 "\n"
 "Algoritmos soportados:\n"
 
-#: g10/g10.c:435
+#: g10/g10.c:437
 msgid "usage: gpgm [options] "
 msgstr "uso: gpgm [opciones] "
 
-#: g10/g10.c:437
+#: g10/g10.c:439
 msgid "usage: gpg [options] "
 msgstr "uso: gpg [opciones] "
 
-#: g10/g10.c:478
+#: g10/g10.c:480
 msgid "conflicting commands\n"
 msgstr "comandos incompatibles\n"
 
-#: g10/g10.c:616
+#: g10/g10.c:618
 #, fuzzy, c-format
 msgid "NOTE: no default option file '%s'\n"
 msgstr "nota: no existe fichero de opciones predefinido '%s'\n"
 
-#: g10/g10.c:620
+#: g10/g10.c:622
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "fichero de opciones '%s': %s\n"
 
-#: g10/g10.c:627
+#: g10/g10.c:629
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "leyendo opciones desde '%s'\n"
 
-#: g10/g10.c:776
+#: g10/g10.c:782
 #, fuzzy, c-format
 msgid "%s is not a valid character set\n"
 msgstr "Caracter no válido en el comentario\n"
 
-#: g10/g10.c:810 g10/g10.c:822
+#: g10/g10.c:817 g10/g10.c:829
 msgid "selected cipher algorithm is invalid\n"
 msgstr "el algoritmo de cifra seleccionado no es válido\n"
 
-#: g10/g10.c:816 g10/g10.c:828
+#: g10/g10.c:823 g10/g10.c:835
 msgid "selected digest algorithm is invalid\n"
 msgstr "el algoritmo de resumen seleccionado no es válido\n"
 
-#: g10/g10.c:831
+#: g10/g10.c:838
 #, c-format
 msgid "compress algorithm must be in range %d..%d\n"
 msgstr "el algoritmo de compresión debe estar en el rango %d-%d\n"
 
-#: g10/g10.c:833
+#: g10/g10.c:840
 msgid "completes-needed must be greater than 0\n"
 msgstr "completes-needed debe ser mayor que 0\n"
 
-#: g10/g10.c:835
+#: g10/g10.c:842
 msgid "marginals-needed must be greater than 1\n"
 msgstr "marginals-needed debe ser mayor que 1\n"
 
-#: g10/g10.c:837
+#: g10/g10.c:844
 msgid "max-cert-depth must be in range 1 to 255\n"
 msgstr ""
 
-#: g10/g10.c:840
+#: g10/g10.c:847
 #, fuzzy
 msgid "NOTE: simple S2K mode (0) is strongly discouraged\n"
 msgstr "nota: el modo S2K simple (0) no es nada recomendable\n"
 
-#: g10/g10.c:844
+#: g10/g10.c:851
 msgid "invalid S2K mode; must be 0, 1 or 3\n"
 msgstr "modo S2K incorrecto; debe ser 0, 1 o 3\n"
 
-#: g10/g10.c:927
+#: g10/g10.c:934
 #, c-format
 msgid "failed to initialize the TrustDB: %s\n"
 msgstr "inicialización de la base de datos de confianza '%s' fallida\n"
 
-#: g10/g10.c:933
+#: g10/g10.c:940
 msgid "--store [filename]"
 msgstr "--store [nombre_fichero]"
 
-#: g10/g10.c:941
+#: g10/g10.c:948
 msgid "--symmetric [filename]"
 msgstr "--symmetric [nombre_fichero]"
 
-#: g10/g10.c:949
+#: g10/g10.c:956
 msgid "--encrypt [filename]"
 msgstr "--encrypt [nombre_fichero]"
 
-#: g10/g10.c:962
+#: g10/g10.c:969
 msgid "--sign [filename]"
 msgstr "--sign [nombre_fichero]"
 
-#: g10/g10.c:975
+#: g10/g10.c:982
 msgid "--sign --encrypt [filename]"
 msgstr "--sign --encrypt [nombre_fichero]"
 
-#: g10/g10.c:989
+#: g10/g10.c:996
 msgid "--clearsign [filename]"
 msgstr "--clearsign [nombre_fichero]"
 
-#: g10/g10.c:1001
+#: g10/g10.c:1008
 msgid "--decrypt [filename]"
 msgstr "--decrypt [nombre_fichero]"
 
-#: g10/g10.c:1010
+#: g10/g10.c:1017
 #, fuzzy
 msgid "--edit-key username [commands]"
 msgstr "--edit-key nombre_usuario"
 
-#: g10/g10.c:1026
+#: g10/g10.c:1033
 msgid "--delete-secret-key username"
 msgstr "--delete-secret-key nombre_usuario"
 
-#: g10/g10.c:1029
+#: g10/g10.c:1036
 msgid "--delete-key username"
 msgstr "--delete-key nombre_usuario"
 
-#: g10/encode.c:216 g10/g10.c:1052 g10/sign.c:301
+#: g10/encode.c:216 g10/g10.c:1059 g10/sign.c:301
 #, c-format
 msgid "can't open %s: %s\n"
 msgstr "no puede abrirse '%s': %s\n"
 
-#: g10/g10.c:1063
+#: g10/g10.c:1070
 msgid "-k[v][v][v][c] [userid] [keyring]"
 msgstr "-k[v][v][v][c] [id_usuario] [anillo]"
 
-#: g10/g10.c:1120
+#: g10/g10.c:1127
 #, c-format
 msgid "dearmoring failed: %s\n"
 msgstr "eliminación de armadura fallida: %s\n"
 
-#: g10/g10.c:1128
+#: g10/g10.c:1135
 #, c-format
 msgid "enarmoring failed: %s\n"
 msgstr "creación de armadura fallida: %s\n"
 
-#: g10/g10.c:1194
+#: g10/g10.c:1201
 #, c-format
 msgid "invalid hash algorithm '%s'\n"
 msgstr "algoritmo de distribución no válido '%s'\n"
 
-#: g10/g10.c:1273
+#: g10/g10.c:1280
 msgid "[filename]"
 msgstr "[nombre_fichero]"
 
-#: g10/g10.c:1277
+#: g10/g10.c:1284
 msgid "Go ahead and type your message ...\n"
 msgstr ""
 
-#: g10/decrypt.c:59 g10/g10.c:1280 g10/verify.c:66
+#: g10/decrypt.c:59 g10/g10.c:1287 g10/verify.c:66
 #, c-format
 msgid "can't open '%s'\n"
 msgstr "no puede abrirse '%s'\n"
@@ -780,7 +780,7 @@ msgstr ""
 msgid "no valid RFC1991 or OpenPGP data found.\n"
 msgstr "RFC1991 no válida o datos OpenPGP no encontrados\n"
 
-#: g10/pkclist.c:121
+#: g10/pkclist.c:138
 #, fuzzy, c-format
 msgid ""
 "No trust value assigned to %lu:\n"
@@ -789,7 +789,7 @@ msgstr ""
 "No hay confianza definida para el propietario %lu:\n"
 "%4u%c/%08lX %s \""
 
-#: g10/pkclist.c:131
+#: g10/pkclist.c:148
 msgid ""
 "Please decide how far you trust this user to correctly\n"
 "verify other users' keys (by looking at passports,\n"
@@ -811,24 +811,29 @@ msgstr ""
 " 4 = Me fío completamente\n"
 " i = Mostrar más información\n"
 
-#: g10/pkclist.c:140
+#: g10/pkclist.c:157
 msgid " m = back to the main menu\n"
 msgstr " m = volver al menú principal\n"
 
+#: g10/pkclist.c:159
+msgid " q = quit\n"
+msgstr ""
+
 #. a string with valid answers
-#: g10/pkclist.c:145
-msgid "sSmM"
-msgstr "iImM"
+#: g10/pkclist.c:164
+#, fuzzy
+msgid "sSmMqQ"
+msgstr "iImMqQ"
 
-#: g10/pkclist.c:149
+#: g10/pkclist.c:168
 msgid "Your decision? "
 msgstr "Su decisión: "
 
-#: g10/pkclist.c:169
+#: g10/pkclist.c:188
 msgid "Certificates leading to an ultimately trusted key:\n"
 msgstr ""
 
-#: g10/pkclist.c:197
+#: g10/pkclist.c:221
 msgid ""
 "Could not find a valid trust path to the key.  Let's see whether we\n"
 "can assign some missing owner trust values.\n"
@@ -838,19 +843,19 @@ msgstr ""
 "si es posible asignar algunos valores de confianza perdidos.\n"
 "\n"
 
-#: g10/pkclist.c:219
+#: g10/pkclist.c:251
 msgid ""
 "No path leading to one of our keys found.\n"
 "\n"
 msgstr ""
 
-#: g10/pkclist.c:221
+#: g10/pkclist.c:253
 msgid ""
 "No certificates with undefined trust found.\n"
 "\n"
 msgstr ""
 
-#: g10/pkclist.c:223
+#: g10/pkclist.c:255
 #, fuzzy
 msgid ""
 "No trust values changed.\n"
@@ -859,46 +864,46 @@ msgstr ""
 "No se cambió ningún valor de confianza.\n"
 "\n"
 
-#: g10/pkclist.c:238
+#: g10/pkclist.c:270
 #, fuzzy, c-format
 msgid "key %08lX: key has been revoked!\n"
 msgstr "clave %08lX: aceptada como clave secreta.\n"
 
-#: g10/pkclist.c:244 g10/pkclist.c:335
+#: g10/pkclist.c:276 g10/pkclist.c:369
 msgid "Use this key anyway? "
 msgstr "¿Usar esta clave de todas formas? "
 
-#: g10/pkclist.c:266
+#: g10/pkclist.c:298
 #, fuzzy, c-format
 msgid "%08lX: key has expired\n"
 msgstr "Nota: ¡Esta clave está caducada!\n"
 
-#: g10/pkclist.c:272
+#: g10/pkclist.c:304
 #, c-format
 msgid "%08lX: no info to calculate a trust probability\n"
 msgstr ""
 
-#: g10/pkclist.c:288
+#: g10/pkclist.c:322
 #, fuzzy, c-format
 msgid "%08lX: We do NOT trust this key\n"
 msgstr "ATENCIÓN: ¡Esta firma NO es de confianza!\n"
 
-#: g10/pkclist.c:294
+#: g10/pkclist.c:328
 #, c-format
 msgid ""
 "%08lX: It is not sure that this key really belongs to the owner\n"
 "but it is accepted anyway\n"
 msgstr ""
 
-#: g10/pkclist.c:300
+#: g10/pkclist.c:334
 msgid "This key probably belongs to the owner\n"
 msgstr ""
 
-#: g10/pkclist.c:305
+#: g10/pkclist.c:339
 msgid "This key belongs to us\n"
 msgstr ""
 
-#: g10/pkclist.c:330
+#: g10/pkclist.c:364
 msgid ""
 "It is NOT certain that the key belongs to its owner.\n"
 "If you *really* know what you are doing, you may answer\n"
@@ -910,51 +915,51 @@ msgstr ""
 "\"sí\" a la siguiente pregunta.\n"
 "\n"
 
-#: g10/pkclist.c:339
+#: g10/pkclist.c:373
 msgid "WARNING: Using untrusted key!\n"
 msgstr "ATENCIÓN: ¡Usando una clave no fiable!\n"
 
-#: g10/pkclist.c:375
+#: g10/pkclist.c:409
 msgid "WARNING: This key has been revoked by its owner!\n"
 msgstr "ATENCIÓN: ¡Esta clave ha sido revocada por su propietario!\n"
 
-#: g10/pkclist.c:376
+#: g10/pkclist.c:410
 msgid "         This could mean that the signature is forgery.\n"
 msgstr "          Esto puede significar que la firma está falsificada.\n"
 
-#: g10/pkclist.c:397
+#: g10/pkclist.c:431
 msgid "Note: This key has expired!\n"
 msgstr "Nota: ¡Esta clave está caducada!\n"
 
-#: g10/pkclist.c:404
+#: g10/pkclist.c:438
 msgid "WARNING: This key is not certified with a trusted signature!\n"
 msgstr ""
 "ATENCIÓN: ¡Esta clave no está certificada por una firma de confianza!\n"
 
-#: g10/pkclist.c:406
+#: g10/pkclist.c:440
 msgid ""
 "         There is no indication that the signature belongs to the owner.\n"
 msgstr "         No hay indicios de que la firma pertenezca al propietario.\n"
 
-#: g10/pkclist.c:421
+#: g10/pkclist.c:456
 msgid "WARNING: We do NOT trust this key!\n"
 msgstr "ATENCIÓN: ¡Esta firma NO es de confianza!\n"
 
-#: g10/pkclist.c:422
+#: g10/pkclist.c:457
 msgid "         The signature is probably a FORGERY.\n"
 msgstr "         La firma es probablemente una FALSIFICACIÓN.\n"
 
-#: g10/pkclist.c:429
+#: g10/pkclist.c:464
 msgid ""
 "WARNING: This key is not certified with sufficiently trusted signatures!\n"
 msgstr ""
 "AVISO: ¡Esta clave no está certificada con suficientes firmas de confianza!\n"
 
-#: g10/pkclist.c:432
+#: g10/pkclist.c:467
 msgid "         It is not certain that the signature belongs to the owner.\n"
 msgstr "         No es seguro que la firma pertenezca al propietario.\n"
 
-#: g10/pkclist.c:477
+#: g10/pkclist.c:512
 msgid ""
 "You did not specify a user ID. (you may use \"-r\")\n"
 "\n"
@@ -962,25 +967,25 @@ msgstr ""
 "No se ha especificado un ID de usuario (puede usar \"-r\")\n"
 "\n"
 
-#: g10/pkclist.c:482
+#: g10/pkclist.c:517
 msgid "Enter the user ID: "
 msgstr "Introduzca el ID de usuario: "
 
-#: g10/pkclist.c:493
+#: g10/pkclist.c:528
 msgid "No such user ID.\n"
 msgstr "ID de usuario inexistente.\n"
 
-#: g10/pkclist.c:527 g10/pkclist.c:554
+#: g10/pkclist.c:562 g10/pkclist.c:589
 #, c-format
 msgid "%s: skipped: %s\n"
 msgstr "%s: ignorado: %s\n"
 
-#: g10/pkclist.c:535
+#: g10/pkclist.c:570
 #, c-format
 msgid "%s: error checking key: %s\n"
 msgstr "%s: error comprobando la clave: %s\n"
 
-#: g10/pkclist.c:561
+#: g10/pkclist.c:596
 msgid "no valid addressees\n"
 msgstr "no hay direcciones válidas\n"
 
@@ -1341,7 +1346,7 @@ msgstr ""
 msgid "using secondary key %08lX instead of primary key %08lX\n"
 msgstr "usando clave secundaria %08lX en vez de clave primaria %08lX\n"
 
-#: g10/import.c:129 g10/trustdb.c:1166
+#: g10/import.c:129 g10/trustdb.c:1180
 #, c-format
 msgid "can't open file: %s\n"
 msgstr "no puede abrirse el fichero: %s\n"
@@ -1351,12 +1356,12 @@ msgstr "no puede abrirse el fichero: %s\n"
 msgid "skipping block of type %d\n"
 msgstr "ignorando bloque de tipo %d\n"
 
-#: g10/import.c:152 g10/trustdb.c:1425 g10/trustdb.c:1494
+#: g10/import.c:152 g10/trustdb.c:1474 g10/trustdb.c:1543
 #, c-format
 msgid "%lu keys so far processed\n"
 msgstr ""
 
-#: g10/import.c:157 g10/trustdb.c:1242
+#: g10/import.c:157 g10/trustdb.c:1256
 #, c-format
 msgid "read error: %s\n"
 msgstr "error de lectura: %s\n"
@@ -1439,7 +1444,7 @@ msgstr "clave %08lX: clave p
 msgid "no default public keyring\n"
 msgstr "no hay anillo público por defecto\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:592
 #, c-format
 msgid "writing to '%s'\n"
 msgstr "escribiendo en '%s'\n"
@@ -2089,6 +2094,11 @@ msgstr ""
 msgid "can't handle public key algorithm %d\n"
 msgstr "no puede bloquearse el anillo público: %s\n"
 
+#: g10/parse-packet.c:801
+#, c-format
+msgid "subpacket of type %d has critical bit set\n"
+msgstr ""
+
 #: g10/passphrase.c:141
 msgid ""
 "\n"
@@ -2114,19 +2124,19 @@ msgstr "Introduzca contrase
 msgid "Repeat passphrase: "
 msgstr "Repita contraseña: "
 
-#: g10/plaintext.c:102
+#: g10/plaintext.c:103
 msgid "data not saved; use option \"--output\" to save it\n"
 msgstr "datos no grabados; use la opción \"--output\" para grabarlos\n"
 
-#: g10/plaintext.c:215
+#: g10/plaintext.c:216
 msgid "Please enter name of data file: "
 msgstr "Introduzca el nombre del fichero de datos: "
 
-#: g10/plaintext.c:236
+#: g10/plaintext.c:237
 msgid "reading stdin ...\n"
 msgstr ""
 
-#: g10/plaintext.c:299
+#: g10/plaintext.c:300
 #, c-format
 msgid "can't open signed data '%s'\n"
 msgstr "imposible abrir datos firmados '%s'\n"
@@ -2182,12 +2192,16 @@ msgstr ""
 msgid "NOTE: signature key expired %s\n"
 msgstr "atención: firma de la clave caducada el %s\n"
 
+#: g10/sig-check.c:226
+msgid "assuming bad signature due to an unknown critical bit\n"
+msgstr ""
+
 #: g10/sign.c:69
 #, fuzzy, c-format
 msgid "%s signature from: %s\n"
 msgstr "Firma INCORRECTA de \""
 
-#: g10/sign.c:200 g10/sign.c:564
+#: g10/sign.c:200 g10/sign.c:587
 #, fuzzy, c-format
 msgid "can't create %s: %s\n"
 msgstr "no puede abrirse '%s': %s\n"
@@ -2326,540 +2340,540 @@ msgstr ""
 msgid "%s: failed to append a record: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:134
+#: g10/trustdb.c:142
 msgid "The trust DB is corrupted; please run \"gpgm --fix-trust-db\".\n"
 msgstr ""
 "La base de datos de confianza está dañada. Por favor, ejecute\n"
 "\"gpgm --fix-trust-db\".\n"
 
-#: g10/trustdb.c:147
+#: g10/trustdb.c:155
 #, c-format
 msgid "trust record %lu, req type %d: read failed: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:162
+#: g10/trustdb.c:170
 #, c-format
 msgid "trust record %lu, type %d: write failed: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:176
+#: g10/trustdb.c:184
 #, fuzzy, c-format
 msgid "trust record %lu: delete failed: %s\n"
 msgstr "actualización de la clave secreta fallida: %s\n"
 
-#: g10/trustdb.c:190
+#: g10/trustdb.c:198
 #, fuzzy, c-format
 msgid "trust db: sync failed: %s\n"
 msgstr "actualización de confianza fallida: %s\n"
 
-#: g10/trustdb.c:319
+#: g10/trustdb.c:327
 #, c-format
 msgid "error reading dir record for LID %lu: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:326
+#: g10/trustdb.c:334
 #, c-format
 msgid "lid %lu: expected dir record, got type %d\n"
 msgstr ""
 
-#: g10/trustdb.c:331
+#: g10/trustdb.c:339
 #, c-format
 msgid "no primary key for LID %lu\n"
 msgstr ""
 
-#: g10/trustdb.c:336
+#: g10/trustdb.c:344
 #, fuzzy, c-format
 msgid "error reading primary key for LID %lu: %s\n"
 msgstr "error creando contraseña: %s\n"
 
-#: g10/trustdb.c:412
+#: g10/trustdb.c:420
 #, c-format
 msgid "chained sigrec %lu has a wrong owner\n"
 msgstr ""
 
-#: g10/trustdb.c:455
+#: g10/trustdb.c:463
 #, fuzzy, c-format
 msgid "'%s' is not a valid long keyID\n"
 msgstr "Caracter no válido en el comentario\n"
 
-#: g10/trustdb.c:490
+#: g10/trustdb.c:498
 #, fuzzy, c-format
 msgid "key %08lX: no public key for trusted key - skipped\n"
 msgstr "clave %08lX: clave secreta sin clave pública - ignorada\n"
 
-#: g10/trustdb.c:499 g10/trustdb.c:557
+#: g10/trustdb.c:507 g10/trustdb.c:565
 #, c-format
 msgid "key %08lX: can't put it into the trustdb\n"
 msgstr "clave %08lX: imposible incluirla en la base de datos de confianza\n"
 
-#: g10/trustdb.c:504 g10/trustdb.c:563
+#: g10/trustdb.c:512 g10/trustdb.c:571
 #, c-format
 msgid "key %08lX: query record failed\n"
 msgstr "clave %08lX: petición de registro fallida\n"
 
-#: g10/trustdb.c:509 g10/trustdb.c:572
+#: g10/trustdb.c:517 g10/trustdb.c:580
 #, fuzzy, c-format
 msgid "key %08lX: already in trusted key table\n"
 msgstr "clave %08lX: ya está en la tabla secreta\n"
 
-#: g10/trustdb.c:512 g10/trustdb.c:575
+#: g10/trustdb.c:520 g10/trustdb.c:583
 #, fuzzy, c-format
 msgid "key %08lX: accepted as trusted key.\n"
 msgstr "clave %08lX: aceptada como clave secreta.\n"
 
-#: g10/trustdb.c:528
+#: g10/trustdb.c:536
 #, fuzzy, c-format
 msgid "NOTE: secret key %08lX is NOT protected.\n"
 msgstr "Esta clave no está protegida.\n"
 
-#: g10/trustdb.c:540
+#: g10/trustdb.c:548
 #, c-format
 msgid "key %08lX: secret key without public key - skipped\n"
 msgstr "clave %08lX: clave secreta sin clave pública - ignorada\n"
 
-#: g10/trustdb.c:547
+#: g10/trustdb.c:555
 #, c-format
 msgid "key %08lX: secret and public key don't match\n"
 msgstr "clave %08lX: las claves pública y secreta no se corresponden\n"
 
-#: g10/trustdb.c:583
+#: g10/trustdb.c:591
 #, fuzzy, c-format
 msgid "enumerate secret keys failed: %s\n"
 msgstr "enum_secret_keys fallido: %s\n"
 
-#: g10/trustdb.c:766
+#: g10/trustdb.c:774
 #, fuzzy, c-format
 msgid "lid %lu: read dir record failed: %s\n"
 msgstr "clave %08lX: inserción del registro de confianza fallida: %s\n"
 
-#: g10/trustdb.c:775
+#: g10/trustdb.c:783
 #, fuzzy, c-format
 msgid "lid %lu: read key record failed: %s\n"
 msgstr "clave %08lX: inserción del registro de confianza fallida: %s\n"
 
-#: g10/trustdb.c:785
+#: g10/trustdb.c:793
 #, fuzzy, c-format
 msgid "lid %lu: read uid record failed: %s\n"
 msgstr "clave %08lX: inserción del registro de confianza fallida: %s\n"
 
-#: g10/trustdb.c:794
+#: g10/trustdb.c:802
 #, fuzzy, c-format
 msgid "lid %lu: read pref record failed: %s\n"
 msgstr "clave %08lX: inserción del registro de confianza fallida: %s\n"
 
-#: g10/trustdb.c:804
+#: g10/trustdb.c:812
 #, fuzzy, c-format
 msgid "lid %lu: read sig record failed: %s\n"
 msgstr "clave %08lX: inserción del registro de confianza fallida: %s\n"
 
-#: g10/trustdb.c:999
+#: g10/trustdb.c:1013
 msgid "Ooops, no keys\n"
 msgstr ""
 
-#: g10/trustdb.c:1003
+#: g10/trustdb.c:1017
 #, fuzzy
 msgid "Ooops, no user ids\n"
 msgstr "lista clave e identificativos de usuario"
 
-#: g10/trustdb.c:1074 g10/trustdb.c:1092
+#: g10/trustdb.c:1088 g10/trustdb.c:1106
 #, c-format
 msgid "user '%s' read problem: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:1077 g10/trustdb.c:1095
+#: g10/trustdb.c:1091 g10/trustdb.c:1109
 #, c-format
 msgid "user '%s' list problem: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:1085 g10/trustdb.c:1300
+#: g10/trustdb.c:1099 g10/trustdb.c:1346
 #, fuzzy, c-format
 msgid "user '%s' not found: %s\n"
 msgstr "%s: usuario no encontrado\n"
 
-#: g10/trustdb.c:1087 g10/trustdb.c:1302
+#: g10/trustdb.c:1101 g10/trustdb.c:1348
 #, c-format
 msgid "problem finding '%s' in trustdb: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:1090
+#: g10/trustdb.c:1104
 #, c-format
 msgid "user '%s' not in trustdb\n"
 msgstr ""
 
-#: g10/trustdb.c:1125
+#: g10/trustdb.c:1139
 #, c-format
 msgid ""
 "# List of assigned trustvalues, created %s\n"
 "# (Use \"gpgm --import-ownertrust\" to restore them)\n"
 msgstr ""
 
-#: g10/trustdb.c:1131
+#: g10/trustdb.c:1145
 msgid "directory record w/o primary key\n"
 msgstr ""
 
-#: g10/trustdb.c:1138
+#: g10/trustdb.c:1152
 #, fuzzy, c-format
 msgid "error reading key record: %s\n"
 msgstr "%s: error comprobando la clave: %s\n"
 
-#: g10/trustdb.c:1178
+#: g10/trustdb.c:1192
 msgid "line too long\n"
 msgstr ""
 
-#: g10/trustdb.c:1186
+#: g10/trustdb.c:1200
 msgid "error: missing colon\n"
 msgstr ""
 
-#: g10/trustdb.c:1191
+#: g10/trustdb.c:1205
 #, fuzzy
 msgid "error: invalid fingerprint\n"
 msgstr "muestra huella digital"
 
-#: g10/trustdb.c:1195
+#: g10/trustdb.c:1209
 #, fuzzy
 msgid "error: no ownertrust value\n"
 msgstr "exporta los valores de confianza"
 
-#: g10/trustdb.c:1209
+#: g10/trustdb.c:1223
 #, c-format
 msgid "LID %lu: changing trust from %u to %u\n"
 msgstr ""
 
-#: g10/trustdb.c:1212
+#: g10/trustdb.c:1226
 #, c-format
 msgid "LID %lu: setting trust to %u\n"
 msgstr ""
 
-#: g10/trustdb.c:1220
+#: g10/trustdb.c:1234
 msgid "key not in trustdb, searching ring.\n"
 msgstr ""
 
-#: g10/trustdb.c:1223
+#: g10/trustdb.c:1237
 #, fuzzy, c-format
 msgid "key not in ring: %s\n"
 msgstr "no puede escribirse el anillo: %s\n"
 
-#: g10/trustdb.c:1227
+#: g10/trustdb.c:1241
 msgid "Oops: key is now in trustdb???\n"
 msgstr ""
 
 #. update the ownertrust
-#: g10/trustdb.c:1232
+#: g10/trustdb.c:1246
 #, fuzzy, c-format
 msgid "insert trust record failed: %s\n"
 msgstr "clave %08lX: inserción del registro de confianza fallida: %s\n"
 
 #. error
-#: g10/trustdb.c:1238
+#: g10/trustdb.c:1252
 #, fuzzy, c-format
 msgid "error finding dir record: %s\n"
 msgstr "eliminación de armadura fallida: %s\n"
 
-#: g10/trustdb.c:1305
+#: g10/trustdb.c:1351
 #, c-format
 msgid "user '%s' not in trustdb - inserting\n"
 msgstr ""
 
-#: g10/trustdb.c:1308
+#: g10/trustdb.c:1354
 #, fuzzy, c-format
 msgid "failed to put '%s' into trustdb: %s\n"
 msgstr "inicialización de la base de datos de confianza '%s' fallida\n"
 
-#: g10/trustdb.c:1355
+#: g10/trustdb.c:1404
 #, c-format
 msgid "%s: keyblock read problem: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:1369
+#: g10/trustdb.c:1418
 #, fuzzy, c-format
 msgid "%s: update failed: %s\n"
 msgstr "actualización fallida: %s\n"
 
-#: g10/trustdb.c:1372
+#: g10/trustdb.c:1421
 #, c-format
 msgid "%s: updated\n"
 msgstr ""
 
-#: g10/trustdb.c:1374
+#: g10/trustdb.c:1423
 #, c-format
 msgid "%s: okay\n"
 msgstr ""
 
-#: g10/trustdb.c:1389
+#: g10/trustdb.c:1438
 #, c-format
 msgid "lid %lu: dir record w/o key - skipped\n"
 msgstr ""
 
-#: g10/trustdb.c:1402
+#: g10/trustdb.c:1451
 #, fuzzy, c-format
 msgid "lid %lu: keyblock not found: %s\n"
 msgstr "clave %08lX: clave pública no encontrada: %s\n"
 
-#: g10/trustdb.c:1411 g10/trustdb.c:1480
+#: g10/trustdb.c:1460 g10/trustdb.c:1529
 #, fuzzy, c-format
 msgid "lid %lu: update failed: %s\n"
 msgstr "actualización fallida: %s\n"
 
-#: g10/trustdb.c:1417 g10/trustdb.c:1486
+#: g10/trustdb.c:1466 g10/trustdb.c:1535
 #, c-format
 msgid "lid %lu: updated\n"
 msgstr ""
 
-#: g10/trustdb.c:1421 g10/trustdb.c:1490
+#: g10/trustdb.c:1470 g10/trustdb.c:1539
 #, c-format
 msgid "lid %lu: okay\n"
 msgstr ""
 
-#: g10/trustdb.c:1428 g10/trustdb.c:1496
+#: g10/trustdb.c:1477 g10/trustdb.c:1545
 #, c-format
 msgid "%lu keys processed\n"
 msgstr ""
 
-#: g10/trustdb.c:1430
+#: g10/trustdb.c:1479
 #, fuzzy, c-format
 msgid "\t%lu keys skipped\n"
 msgstr "%s: ignorado: %s\n"
 
-#: g10/trustdb.c:1432 g10/trustdb.c:1498
+#: g10/trustdb.c:1481 g10/trustdb.c:1547
 #, fuzzy, c-format
 msgid "\t%lu keys with errors\n"
 msgstr "Error de escritura"
 
-#: g10/trustdb.c:1434 g10/trustdb.c:1500
+#: g10/trustdb.c:1483 g10/trustdb.c:1549
 #, c-format
 msgid "\t%lu keys updated\n"
 msgstr ""
 
-#: g10/trustdb.c:1464
+#: g10/trustdb.c:1513
 #, fuzzy, c-format
 msgid "lid ?: insert failed: %s\n"
 msgstr "actualización de la clave secreta fallida: %s\n"
 
-#: g10/trustdb.c:1469
+#: g10/trustdb.c:1518
 #, fuzzy, c-format
 msgid "lid %lu: insert failed: %s\n"
 msgstr "actualización de la clave secreta fallida: %s\n"
 
-#: g10/trustdb.c:1475
+#: g10/trustdb.c:1524
 #, c-format
 msgid "lid %lu: inserted\n"
 msgstr ""
 
-#: g10/trustdb.c:1502
+#: g10/trustdb.c:1551
 #, c-format
 msgid "\t%lu keys inserted\n"
 msgstr ""
 
-#: g10/trustdb.c:1505
+#: g10/trustdb.c:1554
 #, fuzzy, c-format
 msgid "enumerate keyblocks failed: %s\n"
 msgstr "enum_secret_keys fallido: %s\n"
 
-#: g10/trustdb.c:1550
+#: g10/trustdb.c:1599
 #, fuzzy, c-format
 msgid "check_trust: search dir record failed: %s\n"
 msgstr "clave %08lX: inserción del registro de confianza fallida: %s\n"
 
-#: g10/trustdb.c:1557
+#: g10/trustdb.c:1606
 #, c-format
 msgid "key %08lX: insert trust record failed: %s\n"
 msgstr "clave %08lX: inserción del registro de confianza fallida: %s\n"
 
-#: g10/trustdb.c:1561
+#: g10/trustdb.c:1610
 #, c-format
 msgid "key %08lX.%lu: inserted into trustdb\n"
 msgstr "clave %08lX.%lu: incluida en la base de datos de confianza\n"
 
-#: g10/trustdb.c:1569
+#: g10/trustdb.c:1618
 #, c-format
 msgid "key %08lX.%lu: created in future (time warp or clock problem)\n"
 msgstr ""
 "clave %08lX.%lu: creada en el futuro (salto en el tiempo o\n"
 "problemas con el reloj)\n"
 
-#: g10/trustdb.c:1576
+#: g10/trustdb.c:1625
 #, c-format
 msgid "key %08lX.%lu: expired at %s\n"
 msgstr "clave %08lX.%lu: caducada el %s\n"
 
-#: g10/trustdb.c:1584
+#: g10/trustdb.c:1633
 #, c-format
 msgid "key %08lX.%lu: trust check failed: %s\n"
 msgstr "clave %08lX.%lu: comprobación de confianza fallida: %s\n"
 
-#: g10/trustdb.c:1753 g10/trustdb.c:1782 g10/trustdb.c:2521
+#: g10/trustdb.c:1820 g10/trustdb.c:1849 g10/trustdb.c:2588
 msgid "WARNING: can't yet handle long pref records\n"
 msgstr ""
 
-#: g10/trustdb.c:1804
+#: g10/trustdb.c:1871
 #, fuzzy, c-format
 msgid "get_dir_record: search_record failed: %s\n"
 msgstr "actualización de la clave secreta fallida: %s\n"
 
-#: g10/trustdb.c:1867
+#: g10/trustdb.c:1934
 #, c-format
 msgid "NOTE: sig rec %lu[%d] in hintlist of %lu but marked as checked\n"
 msgstr ""
 
-#: g10/trustdb.c:1871
+#: g10/trustdb.c:1938
 #, c-format
 msgid "NOTE: sig rec %lu[%d] in hintlist of %lu but not marked\n"
 msgstr ""
 
 #. we need the dir record
-#: g10/trustdb.c:1878
+#: g10/trustdb.c:1945
 #, c-format
 msgid "sig rec %lu[%d] in hintlist of %lu does not point to a dir record\n"
 msgstr ""
 
-#: g10/trustdb.c:1884
+#: g10/trustdb.c:1951
 #, c-format
 msgid "lid %lu: no primary key\n"
 msgstr ""
 
-#: g10/trustdb.c:1917
+#: g10/trustdb.c:1984
 #, c-format
 msgid "lid %lu: user id not found in keyblock\n"
 msgstr ""
 
-#: g10/trustdb.c:1921
+#: g10/trustdb.c:1988
 #, fuzzy, c-format
 msgid "lid %lu: user id without signature\n"
 msgstr "clave %08lX: no hay id de usuario para la firma\n"
 
-#: g10/trustdb.c:1928
+#: g10/trustdb.c:1995
 #, c-format
 msgid "lid %lu: self-signature in hintlist\n"
 msgstr ""
 
-#: g10/trustdb.c:1939 g10/trustdb.c:2658 g10/trustdb.c:2742
+#: g10/trustdb.c:2006 g10/trustdb.c:2725 g10/trustdb.c:2809
 #, fuzzy
 msgid "Valid certificate revocation"
 msgstr "Certificado incorrecto"
 
-#: g10/trustdb.c:1940 g10/trustdb.c:2659 g10/trustdb.c:2743
+#: g10/trustdb.c:2007 g10/trustdb.c:2726 g10/trustdb.c:2810
 #, fuzzy
 msgid "Good certificate"
 msgstr "Certificado incorrecto"
 
-#: g10/trustdb.c:1949
+#: g10/trustdb.c:2016
 msgid "very strange: no public key\n"
 msgstr ""
 
-#: g10/trustdb.c:1997
+#: g10/trustdb.c:2064
 #, c-format
 msgid "hintlist %lu[%d] of %lu does not point to a dir record\n"
 msgstr ""
 
-#: g10/trustdb.c:2003
+#: g10/trustdb.c:2070
 #, c-format
 msgid "lid %lu does not have a key\n"
 msgstr ""
 
-#: g10/trustdb.c:2013
+#: g10/trustdb.c:2080
 #, c-format
 msgid "lid %lu: can't get keyblock: %s\n"
 msgstr ""
 
-#: g10/trustdb.c:2070 g10/trustdb.c:2984
+#: g10/trustdb.c:2137 g10/trustdb.c:3051
 #, fuzzy, c-format
 msgid "tdbio_search_dir failed: %s\n"
 msgstr "eliminación de armadura fallida: %s\n"
 
-#: g10/trustdb.c:2223
+#: g10/trustdb.c:2290
 #, fuzzy, c-format
 msgid "key %08lX.%lu: Good subkey binding\n"
 msgstr "clave %08lX: no hay id de usuario\n"
 
-#: g10/trustdb.c:2229 g10/trustdb.c:2271
+#: g10/trustdb.c:2296 g10/trustdb.c:2338
 #, fuzzy, c-format
 msgid "key %08lX.%lu: Invalid subkey binding: %s\n"
 msgstr "clave %08lX: no hay ids de usuario válidos\n"
 
-#: g10/trustdb.c:2244
+#: g10/trustdb.c:2311
 #, fuzzy, c-format
 msgid "key %08lX.%lu: Valid key revocation\n"
 msgstr "clave %08lX.%lu: caducada el %s\n"
 
-#: g10/trustdb.c:2250
+#: g10/trustdb.c:2317
 #, fuzzy, c-format
 msgid "key %08lX.%lu: Invalid key revocation: %s\n"
 msgstr "clave %08lX: clave pública no encontrada: %s\n"
 
-#: g10/trustdb.c:2265
+#: g10/trustdb.c:2332
 #, fuzzy, c-format
 msgid "key %08lX.%lu: Valid subkey revocation\n"
 msgstr "clave %08lX: no hay ids de usuario válidos\n"
 
-#: g10/trustdb.c:2365
+#: g10/trustdb.c:2432
 #, fuzzy
 msgid "Good self-signature"
 msgstr "[autofirma]"
 
-#: g10/trustdb.c:2376
+#: g10/trustdb.c:2443
 #, fuzzy
 msgid "Invalid self-signature"
 msgstr "clave %08lX: autofirma no válida\n"
 
-#: g10/trustdb.c:2386
+#: g10/trustdb.c:2453
 msgid "Valid user ID revocation skipped due to a newer self signature\n"
 msgstr ""
 
-#: g10/trustdb.c:2393
+#: g10/trustdb.c:2460
 #, fuzzy
 msgid "Valid user ID revocation\n"
 msgstr "Elección no válida.\n"
 
-#: g10/trustdb.c:2400
+#: g10/trustdb.c:2467
 #, fuzzy
 msgid "Invalid user ID revocation"
 msgstr "Elección no válida.\n"
 
-#: g10/trustdb.c:2484
+#: g10/trustdb.c:2551
 #, fuzzy
 msgid "Too many preferences"
 msgstr "muestra preferencias"
 
-#: g10/trustdb.c:2498
+#: g10/trustdb.c:2565
 msgid "Too many preference items"
 msgstr ""
 
-#: g10/trustdb.c:2637
+#: g10/trustdb.c:2704
 msgid "Duplicated certificate - deleted"
 msgstr ""
 
-#: g10/trustdb.c:2670
+#: g10/trustdb.c:2737
 #, fuzzy
 msgid "Hmmm, public key lost?"
 msgstr "Clave pública incorrecta"
 
-#: g10/trustdb.c:2680 g10/trustdb.c:2763
+#: g10/trustdb.c:2747 g10/trustdb.c:2830
 #, fuzzy
 msgid "Invalid certificate revocation"
 msgstr "Certificado incorrecto"
 
-#: g10/trustdb.c:2681 g10/trustdb.c:2764
+#: g10/trustdb.c:2748 g10/trustdb.c:2831
 #, fuzzy
 msgid "Invalid certificate"
 msgstr "Certificado incorrecto"
 
-#: g10/trustdb.c:2696
+#: g10/trustdb.c:2763
 #, c-format
 msgid "uid %08lX.%lu/%02X%02X: has shadow dir %lu but is not yet marked.\n"
 msgstr ""
 
-#: g10/trustdb.c:2710
+#: g10/trustdb.c:2777
 #, c-format
 msgid "sig record %lu[%d] points to wrong record.\n"
 msgstr ""
 
 #. that should never happen
-#: g10/trustdb.c:2954
+#: g10/trustdb.c:3021
 #, fuzzy, c-format
 msgid "insert_trust_record: keyblock not found: %s\n"
 msgstr "clave %08lX: clave secreta no encontrada: %s\n"
 
-#: g10/trustdb.c:2972
+#: g10/trustdb.c:3039
 msgid "did not use primary key for insert_trust_record()\n"
 msgstr ""
 
@@ -2959,123 +2973,123 @@ msgstr ""
 "intentos!\n"
 
 #. begin of list
-#: g10/helptext.c:45
+#: g10/helptext.c:48
 msgid "edit_ownertrust.value"
 msgstr ""
 
-#: g10/helptext.c:51
+#: g10/helptext.c:54
 msgid "revoked_key.override"
 msgstr ""
 
-#: g10/helptext.c:55
+#: g10/helptext.c:58
 msgid "untrusted_key.override"
 msgstr ""
 
-#: g10/helptext.c:59
+#: g10/helptext.c:62
 msgid "pklist.user_id.enter"
 msgstr ""
 
-#: g10/helptext.c:63
+#: g10/helptext.c:66
 msgid "keygen.algo"
 msgstr ""
 
-#: g10/helptext.c:79
+#: g10/helptext.c:82
 msgid "keygen.algo.elg_se"
 msgstr ""
 
-#: g10/helptext.c:86
+#: g10/helptext.c:89
 msgid "keygen.size"
 msgstr ""
 
-#: g10/helptext.c:90
+#: g10/helptext.c:93
 msgid "keygen.size.huge.okay"
 msgstr ""
 
-#: g10/helptext.c:95
+#: g10/helptext.c:98
 msgid "keygen.size.large.okay"
 msgstr ""
 
-#: g10/helptext.c:100
+#: g10/helptext.c:103
 msgid "keygen.valid"
 msgstr ""
 
-#: g10/helptext.c:104
+#: g10/helptext.c:107
 msgid "keygen.valid.okay"
 msgstr ""
 
-#: g10/helptext.c:109
+#: g10/helptext.c:112
 msgid "keygen.name"
 msgstr ""
 
-#: g10/helptext.c:114
+#: g10/helptext.c:117
 msgid "keygen.email"
 msgstr ""
 
-#: g10/helptext.c:118
+#: g10/helptext.c:121
 msgid "keygen.comment"
 msgstr ""
 
-#: g10/helptext.c:123
+#: g10/helptext.c:126
 msgid "keygen.userid.cmd"
 msgstr ""
 
-#: g10/helptext.c:132
+#: g10/helptext.c:135
 msgid "keygen.sub.okay"
 msgstr ""
 
-#: g10/helptext.c:136
+#: g10/helptext.c:139
 msgid "sign_uid.okay"
 msgstr ""
 
-#: g10/helptext.c:141
+#: g10/helptext.c:144
 msgid "change_passwd.empty.okay"
 msgstr ""
 
-#: g10/helptext.c:146
+#: g10/helptext.c:149
 msgid "keyedit.cmd"
 msgstr ""
 
-#: g10/helptext.c:150
+#: g10/helptext.c:153
 msgid "keyedit.save.okay"
 msgstr ""
 
-#: g10/helptext.c:155
+#: g10/helptext.c:158
 msgid "keyedit.cancel.okay"
 msgstr ""
 
-#: g10/helptext.c:159
+#: g10/helptext.c:162
 msgid "keyedit.sign_all.okay"
 msgstr ""
 
-#: g10/helptext.c:163
+#: g10/helptext.c:166
 msgid "keyedit.remove.uid.okay"
 msgstr ""
 
-#: g10/helptext.c:168
+#: g10/helptext.c:171
 msgid "keyedit.remove.subkey.okay"
 msgstr ""
 
-#: g10/helptext.c:172
+#: g10/helptext.c:175
 msgid "passphrase.enter"
 msgstr ""
 
-#: g10/helptext.c:179
+#: g10/helptext.c:182
 msgid "passphrase.repeat"
 msgstr ""
 
-#: g10/helptext.c:183
+#: g10/helptext.c:186
 msgid "detached_signature.filename"
 msgstr ""
 
-#: g10/helptext.c:187
+#: g10/helptext.c:190
 msgid "openfile.overwrite.okay"
 msgstr ""
 
-#: g10/helptext.c:201
+#: g10/helptext.c:204
 msgid "No help available"
 msgstr "Ayuda no disponible"
 
-#: g10/helptext.c:213
+#: g10/helptext.c:216
 #, c-format
 msgid "No help available for '%s'"
 msgstr "Ayuda no disponible para '%s'"
index dbc8e41..22914c2 100644 (file)
--- a/po/fr.po
+++ b/